2016-05-18 36 views
0

我正試圖將PS腳本放在一起,以便將計算機自動添加到不屬於另一組的組中。PowerShell腳本將計算機添加到不屬於另一個組的組中?

在這種情況下,將所有計算機添加到不屬於group_a的group_b中。

這是我試過..

#get list of computers from group_a 
$tpmobjects = Get-ADGroupMember -Identity "group_a" | Select name 
#add computers to group_b that are not in group_a 
Get-ADComputer -Filter {SamAccountName -notlike $tpmobjects} | Foreach-Object { Add-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf "group_b" } 

錯誤我得到的是...

Get-ADComputer : Type: 'System.Object[]' is not supported for extended attribute 'SamAccountName'. 
At line:2 char:1 
+ Get-ADComputer -Filter {SamAccountName -notlike $tpmobjects}... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Get-ADComputer], ArgumentException 
    + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADComputer 

任何人有辦法做到這一點?

謝謝。

回答

0

會發生什麼,Get-ADGroupMember返回多個對象,-Filter參數不支持匹配多個對象。

這種情況有解決多種方式,但最簡單的就是簡單地從Get-ADGroupMember的輸出與Where-Object過濾:

$Computers = Get-ADGroupMember group_a |Where-Object {$_.objectClass -eq 'computer'} 

你也不必在ForEach-ObjectAdd-ADPrincipalGroupMembership,它的管道輸入,並一個ADComputer對象可以直接綁定到-Identity參數沒有問題:

$Computers |Add-ADPrincipalGroupMembership -MemberOf group_a 
相關問題