我想返回我正在运行的计算机的域的简称。我不想要 $env:USERDOMAIN
因为那是用户登录的域,这可能与机器所在的域不同。如果我这样做(gwmi win32_computersystem).Domain
这让我得到了 FQDN,但我想要类似的东西来返回短名称(NETBIOS 名称?)。我目前正在解析 FQDN,但我知道这会在以后导致错误。
我没有安装 Active Directory 模块,而且公司政策禁止我安装它,所以我不能简单地使用 (Get-ADDomain).NetBIOSName
从那个模块。
最佳答案
您应该能够通过以下代码使用 ADSystemInfo COM 对象来实现此目的,而不会出现 WMI 对象 Win32_NTDomain 中固有的延迟:
$ADSystemInfo = New-Object -ComObject "ADSystemInfo"
$ADSystemInfo.GetType().InvokeMember("DomainShortName", "GetProperty", $null, $ADSystemInfo, $null)
此 COM 对象还提供其他与 AD 相关的属性:https://docs.microsoft.com/en-us/windows/win32/adsi/iadsadsysteminfo-property-methods
关于powershell - 如何找出我所在的域名的简称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21284114/