我們組織中的某些用戶尚未在AD中配置配置文件路徑。 (下遠程桌面服務配置文件)powershell - AD用戶沒有配置文件路徑
我想這一切的用戶,所以我在PowerShell中寫了:
的「如果($ TermianlPath -eq $空)」的檢查沒有按」牛逼付出一切......
有人能幫助嗎?
謝謝。
我們組織中的某些用戶尚未在AD中配置配置文件路徑。 (下遠程桌面服務配置文件)powershell - AD用戶沒有配置文件路徑
我想這一切的用戶,所以我在PowerShell中寫了:
的「如果($ TermianlPath -eq $空)」的檢查沒有按」牛逼付出一切......
有人能幫助嗎?
謝謝。
有一個與你正在嘗試做的兩個問題。
$Userinfo
沒有將每個廣告屬性公開爲屬性。默認情況下,PowerShell允許您請求不存在的變量屬性而不會出錯。
你正在尋找的屬性是not called TerminalServicesProfilePath
in Server 2008+。如果你看一下ADSI編輯或其他方式,你會看到這些屬性
msTSAllowLogon
msTSHomeDirectory
msTSHomeDrive
msTSProfilePath
....
那麼你應該做這涉及這將返回配置文件路徑或空,如果它不存在。
$userInfo.psbase.InvokeGet("msTSProfilePath")
使用這樣的事情應該工作
Get-ADUser -Filter * |
Where-Object{
-not ([ADSI]"LDAP://$($_.DistinguishedName)").psbase.InvokeGet("msTSProfilePath")
} | ForEach-Object{
Write-Host "User $($_.SamAccountName) has no Terminal path." -ForegroundColor Cyan
}
where子句允許不具備設置爲傳承管道中的配置文件路徑的任何用戶。
PowerShell是一個有點奇怪以$空。很多時候,可以返回的東西不是一個$ null,而是一個空字符串。嘗試檢查$ null和「」。
此外,而不是使用兩個空引號「」,您可以使用[字符串] :: IsNullOrEmpty(),以及用於這可能是一個字符串的任何變量。
你要查詢哪個版本的服務器? – Matt