2015-04-07 58 views
1

我有這個腳本,將只列出ISE屏幕上的數據可以複製和粘貼到其他地方的用戶組,但我試圖讓組成員名稱寫入電話備註選項卡(或信息字段)。我在想接下來可能需要把它們轉換成字符串值,因爲我得到了不允許的多屬性錯誤。這是我一直在嘗試,但我不斷收到錯誤。謝謝如何更新AD信息屬性到列表組用戶已被刪除?

Import-Module ActiveDirectory 

$Users= Import-csv "C:\Scripts\UsersSAM-DisplayName.csv" 
ForEach ($User in $Users) { 
    $SamAccountName=$User.SamAccountName 
    $DisplayName=$User.DisplayName 
    $TableFormat= @{E={$_.Name};L="$($DisplayName) - $($SamAccountName)"} 
Get-ADUser -Identity $SamAccountName -Properties MemberOf | % {$_.MemberOf } | % {Get-ADGroup -Identity $_ } | % { Set-ADUser -Identity $SamAccountName -add @{info="$_.name"}} | Select Name | 
Format-Table $TableFormat } 

回答

0

我想通了。他們想要先寫出一個終止的用戶組,然後刪除這些用戶組。我是這樣做的,這個代碼包含了分號,所以如果用戶回來了,你只需要將它們添加回所有組中就可以複製並粘貼存儲在電話選項卡,註釋字段中的輸出。我還使用了一個微調版本來導出用戶的組,以加速複製用戶的組,以便它們與同一團隊中的其他人相匹配。希望這可以幫助某人。

Import-csv "$Terms" | % { 
    $user = Get-ADUser -LDAPFilter ("(sAMAccountName=" + $_.samaccountname + ")") -Properties samaccountname,enabled,name,memberof,distinguishedname,info 

#Grab all user group names 
    $user | ForEach-Object { 
    $grps = $_.MemberOf | Get-ADGroup | ForEach-Object {$_.Name} | Sort-Object 
    $arec = $_.Name,$_.SamAccountName 
    $aline = ($grps -join ";") 

#Add info to Notes field Telephone Tab  
    Get-ADPrincipalGroupMembership -Identity $user | %{ 
    If ($_.SamAccountName -ne "Domain Users") { 
    $Userinfo=$user.info 
    Set-ADUser $User -replace @{info= "$Userinfo | $a | Terminated via automated process | $aline"} 

#Remove User Groups Process in Telephones Tab Notes Field. 
    Remove-ADPrincipalGroupMembership -Identity $user -MemberOf $_.SamAccountName -Confirm:$false 
    (" "+ $a +" [" + $User.samaccountname + "], Removed from group [" + $_.samaccountname + "]. ") | Out-File -FilePath $ErrorLog -Append 
    } 
    }}} 
相關問題