powershell - 如何找出我所在的域名的简称?

标签 powershell powershell-2.0

我想返回我正在运行的计算机的域的简称。我不想要 $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/

相关文章:

json - 如何将 JSON(字符串数据)传递给 PowerShell?

PowerShell 从远程 PC 删除桌面项目

powershell - 如何在 powershell 中枚举哈希值,其中值是字符串数组

powershell - 如何从命令行运行 Powershell 脚本并将目录作为参数传递

ruby-on-rails - 在 Windows 7 上的 powershell 中运行后台进程(尤其是 Rails)

powershell - foreach 语句中的多个类似值

powershell - 无法删除所有 Azure 网站连接字符串

powershell - Start-Job - 实时检索输出

powershell - 结果只显示一列?

node.js - 在 nodejs 中执行长时间运行的 powershell 脚本