Powershell - selecione e atualize um atributo “on the fly”

0

Estou tentando procurar usuários do AD que tenham um atributo nulo ("terminalservicesprofilepath") e atualizar esse atributo no mesmo comando.

Eu posso selecionar os usuários, mas como atualizar o atributo "on the fly"?

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)} 
    
por crypto-learner 20.03.2015 / 17:34

1 resposta

1

Infelizmente, isso não é tão simples quanto pipilar para o Set-ADUser. Tente isso como um script:

$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()
}

Deixe-me saber se isso funciona para você!

    
por 21.03.2015 / 17:52