如何查找本地计算机是否在域中?

时间:2010-12-10 12:59:42

标签: powershell

是否有一种简单且快速的方式来确定本地计算机是否已使用PowerShell加入域?

我发现很多关于获取当前工作组OR域的内容,但没有明确指示如何知道它是否真的是工作组或域。只是想在调用一些Active Directory相关的东西之前找到它,这些东西只会在工作组计算机上等待很长时间后才会超时。

[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()方法在工作组计算机上失败之前需要很长时间,而WMI类Win32_ComputerSystem显示名称但不是真实域名。

3 个答案:

答案 0 :(得分:35)

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!"
}

答案 1 :(得分:1)

这很简单。可行,因为如果计算机不在域中,则默认用户域是本地计算机

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

答案 2 :(得分:0)

也许在PowerShell中键入'Systeminfo'并在'Domain'下查看?