0

我試圖刪除AD組成員資格的帳戶已被禁用,但不知道如何正確合併cmdlet的用戶列表。這是我嘗試...Powershell 2.0 - 刪除組成員的已禁用帳戶列表

Import-CSV T:\temp\users.csv | ForEach-Object {Get-ADPrincipalGroupMembership -Identity $_.member | ForEach-Object {Remove-ADPrincipalGroupMembership -Identity $_.member -MemberOf SamAccountName}} 

users.csv(以下文件內容)

member 
testuser1 
testuser2 
testuser3 

我得到以下信息...

Remove-ADPrincipalGroupMembership : Cannot convert 'Microsoft.ActiveDirectory.Management.ADPropertyValueCollection' to 
the type 'Microsoft.ActiveDirectory.Management.ADPrincipal' required by parameter 'Identity'. Specified method is not s 
upported. 
At line:1 char:160 
+ Import-CSV T:\temp\users.csv | ForEach-Object {Get-ADPrincipalGroupMembership -Identity $_.member | ForEach-Object {R 
emove-ADPrincipalGroupMembership -Identity <<<< $_.member -MemberOf SamAccountName}} 
    + CategoryInfo   : InvalidArgument: (:) [Remove-ADPrincipalGroupMembership], ParameterBindingException 
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.RemoveADPrincipalGro 
    upMembership 

回答

2

它通常是一個好主意還提供了您正在操作的數據樣本(在這種情況下,users.csv的內容看起來像),因爲解決問題的關鍵可能在於您正在閱讀的數據但是,在這種情況下,我相信我可以看到沒有看到數據就絆倒了你。

請記住,在流水線的每個階段中,將設置流水線上一階段中每個對象的值($ _)。 $ _。會員在整個管道中沒有一致的值。

在第二階段,ForEach-Object {Get-ADPrincipalGroupMembership -Identity $_.member,$ _。member評估爲CSV文件的「成員」列的值。在第三階段,ForEach-Object {Remove-ADPrincipalGroupMembership -Identity $_.member -MemberOf SamAccountName},它評估爲從第二階段傳遞的組對象的成員屬性。這些對象沒有成員屬性,所以$ _。member爲空。

你可以做的是在第一的foreach對象過濾器的開始捕獲從CSV文件中的值(用戶名,我相信?)它變成一個變量,並用其作爲-Identity說法:

Import-Csv T:\temp\users.csv | %{ 
    $user = $_.member 
    Get-ADPrincipalGroupMembership -Identity $user | %{ 
    Remove-ADPrincipalGroupMembership -Identity $user -MemberOf $_.SamAccountName 
    } 
} 

另外,還要注意的參數-memberof應該$ _ SAM帳戶。在PowerShell中3.0,以下給你每一組的SAM帳戶屬性:

Get-ADPrincipalGroupMembership -Identity $user | % SamAccountName 

然而,在腳本塊,你需要$ _ SAM帳戶。在PowerShell 2.0中(正如您標記了這個問題),您根本不能使用裸露的屬性名稱。

+0

非常好!這工作!並且,謝謝你的明確解釋。 – user2731132

+0

如果查找相同的解決方案,請使用users.csv更新後面的文章以供他人蔘考。謝謝你,阿迪因巴爾 – user2731132

+0

@ user2731132每當你的問題是在StackOverflow上回答,而不是發佈評論感謝回答者(這往往最終被MODS得到刪除),請註明答案最點擊綠色解決了一個問題,「接受」查馬克的回答左側:meta.stackoverflow.com/help/someone-answers。另外,當你接受答案時,你獲得+2代表。 ) –

相關問題