У меня есть небольшой кусочек кода, который мне приходилось выполнять на уровне года, и я хотел, чтобы он выполнялся в цикле do while, чтобы кода было не так много. Идея в том, что код будет сохранять переменную со строкой и int
то есть .. год1 год2 год3 и так далее.
Основная проблема заключается в том, что он работает, если я просто запускаю его в обычном цикле for, поэтому я не могу понять, почему он не работает.
$searchbase1 = 'OU=test 1,OU=USR,DC=contoso,DC=local'
$searchbase2 = 'OU=test 2,OU=USR,DC=contoso,DC=local'
$searchbase3 = 'OU=test 3,OU=USR,DC=contoso,DC=local'
$searchbase4 = 'OU=test 4,OU=USR,DC=contoso,DC=local'
$searchbase5 = 'OU=test 5,OU=USR,DC=contoso,DC=local'
$searchbase6 = 'OU=test 6,OU=USR,DC=contoso,DC=local'
$searchbaser = 'OU=test r,OU=USR,DC=contoso,DC=local'
$searchbases = 'OU=del,OU=USR,DC=contoso,DC=local'
$yr1 = Get-ADUser -Filter * -searchbase $searchbaser -Properties *
$yr2 = Get-ADUser -Filter * -searchbase $searchbase1 -Properties *
$yr3 = Get-ADUser -Filter * -searchbase $searchbase2 -Properties *
$yr4 = Get-ADUser -Filter * -searchbase $searchbase3 -Properties *
$yr5 = Get-ADUser -Filter * -searchbase $searchbase4 -Properties *
$yr6 = Get-ADUser -Filter * -searchbase $searchbase5 -Properties *
$yr7 = Get-ADUser -Filter * -searchbase $searchbase6 -Properties *
$yr8 = Get-ADUser -Filter * -searchbase $searchbases -Properties *
$elem=0
do
{
$elem+=1
$yr='test'+'$elem'
ForEach ($ADUser in $yr)
{
$homeDirectory = "\\dc1\database\$($ADUser.sAMAccountname)"
$homeDrive = "H"
Set-ADUser -Identity $ADUser.sAMAccountname -Replace @{HomeDirectory=$homeDirectory}
Set-ADUser -Identity $ADUser.sAMAccountname -Replace @{HomeDrive=$homeDrive}
Set-ADUser -Identity $ADUser.sAMAccountname –scriptPath “Student.bat”
if ($homeDirectory){}else{mkdir $homeDirectory}
}
}
while($elem -le 8)