Pracuji na skriptu PowerShell pro import velkého počtu uživatelů do služby AD.
Jednou z položek je přidání uživatelů do bezpečnostních skupin AD podle čísla jejich programu. Většinou to funguje dobře, pokud něco špatně nenapíšu nebo nedojde k jiné jednoduché lidské chybě. Máme však 2 bezpečnostní skupiny, do kterých musí být přidáni všichni, a zatímco Add-ADGroupMember
u jedné funguje bezvadně, druhou skupinu nemůže najít. Toto je skript, který používám:
$Users = Import-Csv "C:\PSScripts\Create\users.csv" foreach ($User in $Users) { $AccountName = $User.firstname + "." + $User.lastname $Program = $User.Program $HomeDrive = 'H:' $UserRoot = '\twgeneral\homedrive\' $HomeDirectory = $UserRoot+$AccountName Set-ADUser $AccountName -HomeDrive $HomeDrive -HomeDirectory $HomeDirectory If ($AccountName -eq $AccountName) { Add-ADGroupMember -Identity "ALL_USERS" -Member $Accountname } If ($AccountName -eq $AccountName) { Add-ADGroupMember -Identity "000-All users" -Member $Accountname }}
A vrací se mi tato chyba:
Add-ADGroupMember : Cannot find an object with identity: '000-All users' under: 'DC=*****,CD=local'.At C:\psscripts\create\Groups.ps1:15 char:23+ {ADD-ADGroupMember <<<< -Identity "000-All users" -Member $Accountname + CategoryInfo : ObjectNotFound: <000-All users:ADGroup> , ADIdentityNotFoundException + FullyQualifiedErrorId : Cannot find an object with identity: '000-All users' under: 'DC=*****,DC=local'.,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Přesto mohu přidávat uživatele do skupiny 000-Všichni uživatelé pomocí grafického rozhraní ADUC.
Podobně spouštím skript, který předchází tomuto skriptu, a vytvářím uživatele se SAM; Display Name; Exch. E-mail Account; Password; a konkrétní OU v rámci domény a provede se bez chyb, mohu přejít do grafického rozhraní a vidět uživatele přesně tam, kde mají být, se všemi příslušnými konfigurovanými údaji, přesto někteří uživatelé vrací stejnou chybu „objekt nenalezen“, když se pokusím spustit část skriptu skupin, která FUNGUJE, skupinu ALL_USERS. Konkrétně se jedná o uživatele, kteří mají příjmení s pomlčkou, například: Markiem-Chalmers nebo Tatem-Brown.
Vím, že syntaxe Add-ADGroupMember
je správná, protože jsem zkopíroval a vložil z předchozího řetězce, který se spustí správně, pouze se změní název skupiny z ALL_USERS na 000-Všichni uživatelé, a dvakrát, třikrát, čtyřikrát jsem zkontroloval, že je pravopis správný. Za jakoukoli pomoc budu velmi vděčný!