Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何查找本地计算机是否在域中?_Powershell - Fatal编程技术网

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

Powershell 如何查找本地计算机是否在域中?,powershell,Powershell,是否有一种简单而快速的方法来确定本地计算机是否已通过PowerShell加入域 我发现了很多关于获取当前工作组或域的信息,但是没有明确的指示如何知道它是否真的是一个工作组或域。只是想在调用一些与Active Directory相关的东西之前了解一下这一点,这些东西在工作组计算机上等待很长时间后才会超时 [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()方法在工作组计算机上发生故障需要很长时间,WMI类Win3

是否有一种简单而快速的方法来确定本地计算机是否已通过PowerShell加入域

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


[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
方法在工作组计算机上发生故障需要很长时间,WMI类
Win32\u ComputerSystem
显示名称,但如果它是真实域则不显示名称。

Win32\u ComputerSystem
有一个
PartOfDomain
属性,指示计算机是否加入域。还有一个工作组属性-如果计算机位于域上,则该属性应为空

例如:

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

这很简单。因为如果计算机不在域中,则默认的userdomain是本地计算机

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

可能在PowerShell中键入“Systeminfo”并在“Domain”下查找?

如果用户使用本地帐户或内置系统帐户登录,则此操作无效。在多域环境中,当用户和计算机不在同一个域中时,此操作也会失败。我的意思是您可以,但在PowerShell中以编程方式实现此操作的方法比解析
systeminfo
的输出要好得多。