Как обновить атрибут AD Info, чтобы список групп, из которых пользователь был удален?

У меня есть этот сценарий, который будет только перечислять группы пользователей на экране ISE, где данные могут быть скопированы и вставлены в другом месте, но я пытаюсь получить имена членов группы, записанные на вкладке "Телефонные заметки" (или поле "Информация"). Далее я думаю, что их, вероятно, нужно превратить в строковые значения, поскольку я получаю ошибки о недопустимых свойствах нескольких свойств. Вот то, что я пытался, но я продолжаю получать ошибки. Спасибо

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 }

1 ответ

Решение

Я понял это. Они хотели сначала выписать группы пользователей с ограниченным доступом, а затем удалить их. Я сделал это следующим образом, и этот код включает точку с запятой, поэтому, если пользователь возвращается, все, что вам нужно сделать, чтобы добавить их обратно во все группы, - это скопировать и вставить их из вывода, хранящегося в вкладке "Телефоны" в поле "Примечания". Я также использовал урезанную версию этого для экспорта групп пользователей, чтобы ускорить дублирование групп пользователей, чтобы они соответствовали другим в той же команде. Надеюсь, это кому-нибудь поможет.

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
  }
  }}}
Другие вопросы по тегам