2010-12-10 47 views
18

有沒有一種簡單的方法和快速的方式來找出本地計算機是否加入到PowerShell的域?如何查找本地計算機是否在域中?

我發現很多關於獲取當前工作組或域的內容,但沒有清楚地表明如何確定它是否是工作組或域。在調用一些Active Directory相關的東西之前,只需要在工作組計算機上等待很長時間後才能發現超時,就可以找到它。

[System.DirectoryServices.ActiveDirectory.Domain] :: GetCurrentDomain()需要很長時間才能在工作組計算機上失敗,WMI Win32_ComputerSystem顯示名稱,但不顯示該名稱是否爲真實域。

/每

回答

30

的Win32_ComputerSystem具有PartOfDomain屬性,指示計算機是否是加入域或沒有。還有一個工作組屬性 - 如果該計算機位於域上,該屬性應該爲空。

實施例:

if ((gwmi win32_computersystem).partofdomain -eq $true) { 
    write-host -fore green "I am domain joined!" 
} else { 
    write-host -fore red "Ooops, workgroup!" 
} 
0

這是簡單的。因爲如果一臺計算機不在域中,默認userdomain是本地計算機

if ($env:computername -eq $env:userdomain) { echo " no AD domain" } 
else { echo "must be in AD"} 
+2

如果用戶使用本地帳戶登錄或是內置系統帳戶,則這不起作用。當用戶和計算機不在同一個域中時,這在多域環境中也會失敗。 – CoinEnablers 2016-04-16 21:07:55

相關問題