2015-04-07 8 views
1

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

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 
    } 
    }}}