如何从NetBIOS获得当前计算机的PowerShell (又名“short”)域名?
$ENV:USERDOMAIN显示当前用户的域,但我想要当前机器是其成员的域。
我发现你可以这么做,在VBScript中非常容易,但是很明显,ADSystemInfo使用起来不太好在PowerShell。
更新
下面是我的最后一个解决方案,它包含了使用NTDomain的建议,但是过滤到了当前机器的域中
$wmiDomain = Get-WmiObject Win32_NTDomain -Filter "DnsForestName = '$( (Get-WmiObject Win32_ComputerSystem).Domain)'"
$domain = $wmiDomain.DomainName
发布于 2011-04-27 04:37:31
在大多数情况下,默认的NetBIOS域名是DNS域名中最多前15个字节的最左边标签(NetBIOS名称的限制为15字节)。在安装Active期间,可以更改NetBIOS域名,但不能更改。
Windows对象提供WIN32_ComputerSystem计算机上的信息
PS C:\> Get-WmiObject Win32_ComputerSystem
Domain : WORKGROUP
Manufacturer : Hewlett-Packard
Model : HP EliteBook 8530w (XXXXXXXXX)
Name : ABCHPP2
PrimaryOwnerName : ABC
TotalPhysicalMemory : 4190388224
因此,域名由:
PS C:\> (gwmi WIN32_ComputerSystem).Domain
但是在域安装中,给出了DNS名称。在本例中,您可以使用nbtstat -n
命令查找NetBIOS域名,其显示方式为<DOMAIN><1B>
。
PowerShell命令可以是:
nbtstat -n | Select-String -Pattern "^ *(.*) *<1B>.*$" | % {$_ -replace '^ *(.*) *<1B>.*$','$1'}
下面是另一种使用WMI的方法
PS C:\> (gwmi Win32_NTDomain).DomainName
发布于 2013-01-31 03:56:41
使用env:
通过PowerShell获取环境设置
NetBIOS:$env:userdomain
FQDN:$env:userdnsdomain
要查看所有值,请执行以下操作:
dir env: (no $)
发布于 2011-10-20 13:24:30
import-module activedirectory
(Get-ADDomain -Identity (Get-WmiObject Win32_ComputerSystem).Domain).NetBIOSName
https://stackoverflow.com/questions/5798096
复制相似问题