我正在尝试寻找具有空属性(“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()
}
请让我知道这是否对你有用!