Dav*_*ner 17 powershell wmi netbios active-directory
如何从PowerShell获取当前计算机的NetBIOS(又名"简称")域名?
$ ENV:USERDOMAIN显示当前用户的域,但我想要当前计算机所属的域.
我发现你可以在VBScript中很容易地做到这一点,但显然在PowerShell中使用ADSystemInfo并不是很好.
更新
这是我的最终解决方案,其中包含使用Win32_NTDomain的建议,但过滤到当前计算机的域
$wmiDomain = Get-WmiObject Win32_NTDomain -Filter "DnsForestName = '$( (Get-WmiObject Win32_ComputerSystem).Domain)'"
$domain = $wmiDomain.DomainName
Run Code Online (Sandbox Code Playgroud)
JPB*_*anc 20
在大多数情况下,默认NetBIOS域名是DNS域名中最左边的标签,最多15个字节(NetBIOS名称的限制为15个字节).在安装Active Directory期间可能会更改NetBIOS域名,但无法更改.
WIN32_ComputerSystem WMI对象在Windows计算机上提供信息
PS C:\> Get-WmiObject Win32_ComputerSystem
Domain : WORKGROUP
Manufacturer : Hewlett-Packard
Model : HP EliteBook 8530w (XXXXXXXXX)
Name : ABCHPP2
PrimaryOwnerName : ABC
TotalPhysicalMemory : 4190388224
Run Code Online (Sandbox Code Playgroud)
所以域名由下式给出:
PS C:\> (gwmi WIN32_ComputerSystem).Domain
Run Code Online (Sandbox Code Playgroud)
但在域安装中,会给出DNS名称.在这种情况下,您可以使用nbtstat -n命令查找显示如下的NetBIOS域名<DOMAIN><1B>.
PowerShell命令可能是:
nbtstat -n | Select-String -Pattern "^ *(.*) *<1B>.*$" | % {$_ -replace '^ *(.*) *<1B>.*$','$1'}
Run Code Online (Sandbox Code Playgroud)
这是使用WMI的另一种方式
PS C:\> (gwmi Win32_NTDomain).DomainName
Run Code Online (Sandbox Code Playgroud)
小智 9
用于env:通过PowerShell获取环境设置
的NetBIOS: $env:userdomain
FQDN: $env:userdnsdomain
要查看所有值:
dir env: (no $)
Run Code Online (Sandbox Code Playgroud)
小智 5
import-module activedirectory
(Get-ADDomain -Identity (Get-WmiObject Win32_ComputerSystem).Domain).NetBIOSName
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59079 次 |
| 最近记录: |