Я пытаюсь найти пользователей AD, которые имеют нулевой атрибут ("Terminalservicesprofilepath"), и обновить этот атрибут в той же команде.

Я могу выбрать пользователей, но как обновить атрибут "на лету"?

Get-ADUser -Filter {(ObjectClass -eq "user") -and (Enabled -eq $true)} -server $DC[1] -Properties * | select SAMAccountName,displayName,DistinguishedName,Mail,Homemdb,@{Name="TSP";Expression={([adsi]("LDAP://$($_.distinguishedName)")).psbase.InvokeGet("terminalservicesprofilepath")}} | where {($_.DistinguishedName -match ".OU=USERS.") -and ($_.TSP -eq $null)} 

1 ответ1

1

К сожалению, это не так просто, как передать Set-ADUser. Попробуйте это как скрипт:

$users = Get-ADUser -Filter {(Enabled -eq $true)} -server $DC[1] -Properties * -SearchBase "OU=Users,DC=<Domain>,DC=<TLD>" | Select-Object SAMAccountName,DisplayName,DistinguishedName,Mail,Homemdb,@{Name="TSP";Expression={([adsi]("LDAP://$($users.distinguishedName)")).psbase.InvokeGet("terminalservicesprofilepath")}
$nullTSP = Where-Object {$_.TSP -eq $null} 

foreach ($TSP in $nullTSP) {
    $TSP.DistinguisedName.psbase.Invokeset("terminalservicesprofilepath","\\<server>\<share>\")
    $TSP.DistinguishedName.setinfo()
}

Дайте мне знать, если это работает для вас!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .