如何更新AD信息属性到列表组用户已被删除?
问题描述:
我有这个脚本,将只列出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 }
答
我想通了。他们想要先写出一个终止的用户组,然后删除这些用户组。我是这样做的,这个代码包含了分号,所以如果用户回来了,你只需要将它们添加回所有组中就可以复制并粘贴存储在电话选项卡,注释字段中的输出。我还使用了一个微调版本来导出用户的组,以加速复制用户的组,以便它们与同一团队中的其他人相匹配。希望这可以帮助某人。
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
}
}}}