Powershell - “动态”选择并更新属性

Powershell - “动态”选择并更新属性

我正在尝试寻找具有空属性(“terminalservicesprofilepath”)的 AD 用户并在同一命令中更新此属性。

我可以选择用户,但如何“动态”更新属性?

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

不幸的是,这并不像通过管道传输到 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()
}

请让我知道这是否对你有用!

相关内容