我正在使用PowerShell腳本將大量用戶導入到AD中。Add-ADGroupMember找不到具有標識的對象
其中一項是根據用戶的程序編號將用戶添加到AD安全組中。大多數情況下,這是行之有效的,除非我拼錯了某些東西或其他簡單的人爲錯誤。但是,我們有兩個安全組必須添加到每個安全組,而Add-ADGroupMember
完美適用於其中一個,它無法找到另一個組。這是我使用的腳本:
$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
}
}
而且我得到這個錯誤返回:
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> [Add-ADGroupMember], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Cannot find an object with identity: '000-All users' under: 'DC=*****,DC=local'.,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
然而,我可以使用ADUC圖形界面將用戶添加到000-所有用戶組。
同樣,我在這之前運行腳本,用SAM創建用戶;顯示名稱; EXCH。電子郵件帳戶;密碼;和特定的OU,並且它沒有錯誤地執行,我可以進入圖形界面並且看到用戶在哪裏應該配置所有相關的細節,但是一些用戶返回相同的'沒有找到的對象'當我嘗試執行可以工作的組腳本的一部分時出錯,ALL_USERS組。具體來說,它是用戶姓氏連字符,例如:Markiem-Chalmers或Tatem-Brown。
我知道Add-ADGroupMember
的語法是正確的,因爲我從前面的字符串中複製並粘貼了該字符串,該字符串正確執行,只將該組的名稱從ALL_USERS更改爲000-所有用戶,並且我已經雙倍,三重,四重檢查拼寫是否正確。任何幫助將不勝感激!
您可以驗證「000-所有用戶」是有問題的組的SAMAccountName嗎?你有沒有嘗試過使用組的DN? – Kohlbrr 2014-11-03 17:13:14
哦,男孩,我現在覺得有點愚蠢。將組名改爲win2k之前,馬上處理。與連字符的姓氏用戶一樣,它截斷姓氏,並截斷字符。這導致了另一個問題 - 我無法進入並更改超過50人的姓氏,以便它正確執行腳本。我如何修改腳本來提取csv中列出的全名,而不是截斷的win2k版本?我認爲通過指定'$ accountname'作爲用戶的名和姓在csv的相應列中指定? – Hekmari 2014-11-03 17:43:28