Как выглядит код PowerShell для поиска определенной учетной записи пользователя в комплексной структуре организационных единиц OU и создания такой записи, если она отсутствует?nnУ меня была глобальная структура OU, где каждой организационной единице Lab требовалась определенная учетная запись. Там был ряд OU для географических регионов; в рамках этих регионов каждое подразделение Lab имело свою организационную единицу OU с дочерней OU, которая называлась Users. Каждое подразделение Lab именовалось по местоположению как LAB<location>, и я хотел, чтобы каждая учетная запись называлась <location>EXP-ECHUB. Для некоторых регионов уже была учетная запись, поэтому код в листинге надо было проверить на наличие учетной записи, и, если таковой не существовало, требовалось создать ее (используя отдельную команду, которую вы можете заменить простой командой создания новой учетной записи пользователя New-ADUser). Обратите внимание, что я просматриваю каждый верхний уровень OU для проверки и что ниже расположен только один уровеньn
$RootDomain = "DC=itfb,DC=ru"nn$TopLevelLABs = "АРАС", "EMEAV'NA'V'SA"nn#Find each LABnnforeach ($TopLevelLAB in $TopLevelLABs) tnn/Find the child OUsnn$LABs = Get-ADOrganizationalUnit -SearchBase "OU=$TopLevelLAB,$RootDomain" -filter * -SearchScope OneLevelnn#Look for each LAB foreach ($LAB in $LABs)nn{nn$ECHUB = $null /Checking for a Hub account $ECHUB = get-aduser -SearchBase "OU=Users,$($LAB. DistinguishedName)" -Filter {name -like *ECHUB'} if($ECHUB -ne $null)nn{nnWrite-Output "$($LAB.Name) has account already"nn}nnElsenn{nnWrite-Output "*** $($LAB.Name) needs an account so creating ***''nn$HubFirstName = $LAB.Name.Replace("LAB","") + "EXP" Write-Output "*** Creating $HubFirstName-ECHUB ***" New-OneLABSpecUser $HubFirstl\lame ECHUB $($LAB.nnName) "Hub Account"nn}nn}nn}