Mog*_*Mog 8 powershell hostname
我正在尝试编写一个脚本,该脚本依赖于知道某个网段上计算机的名称,但是我发现的所有脚本都依赖于 DNS 查询,该查询仅以几台机器的名称进行回复。例如:
[System.Net.Dns]::GetHostbyAddress($IPAddress)
Run Code Online (Sandbox Code Playgroud)
我也试过使用
Ping -a $ipaddress
Run Code Online (Sandbox Code Playgroud)
但这通常也无法返回机器名称。有没有办法直接询问主机它的名字是什么以及在 AD 中可能需要什么级别的权限才能获得响应?
提前致谢。
小智 9
[System.Net.DNS]::GetHostByAddress()(now [System.Net.DNS]::GetHostEntry()) 不仅依赖于 DNS,尽管它的名称如此。它还将检查本地C:\Windows\System32\Drivers\etc\hosts文件中是否有本地配置的条目。
直接 dns vianslookup找不到名称:
PS C:\Users\Tim> nslookup 192.168.1.50
Server: dns03
Address: 192.168.2.103
*** rpi03 can't find 192.168.1.50: Non-existent domain
Run Code Online (Sandbox Code Playgroud)
然而, gethostentry() 仍然找到名称:
PS C:\Users\Tim> [system.net.dns]::gethostentry('192.168.1.50')
HostName Aliases AddressList
-------- ------- -----------
localentry {} {192.168.1.50}
Run Code Online (Sandbox Code Playgroud)
命令:
wmic.exe /node:10.20.30.40 OS get CSName /format:list
Run Code Online (Sandbox Code Playgroud)
整个子网的批处理文件:
for /L %%z in (1,1,254) do wmic.exe /node:10.20.30.%%z OS get CSName /format:list 2>NUL
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以尝试使用以下命令: Invoke-Command -computername $computer {Get-Item HKLM:\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName} 活动计算机名称等于您的 DNS 名称(当然没有后缀)
| 归档时间: |
|
| 查看次数: |
46109 次 |
| 最近记录: |