Мне нужно определить имя хоста удаленной системы Windows. Типичные методы на основе DNS в моей ситуации не работают.
ping -a 1.1.1.1
nslookup 1.1.1.1
nbtstat -a -n 1.1.1.1
В идеале, чтобы определить, какое имя машины утверждает ее собственное имя хоста (по сравнению с тем, что она сообщала в какой-то момент), я хотел бы напрямую запросить систему.
Поскольку служба RDP доступна на удаленных компьютерах, есть ли способ запросить у службы RDP имя хоста?
(Поскольку я не знаю, чей это компьютер, этот запрос должен быть ненавязчивым для конечного пользователя ...)
Если ваш клиент - Windows 7 или новее, вы можете получить эту информацию с помощью WMI как JimB упоминает с однострочным Powershell:
Get-WmiObject win32_computersystem -ComputerName 192.168.161.5 | Select-Object Name
должен работать с клиентами под управлением Windows Server 2003 или новее.
Если вы хотите, чтобы он был строкой, а не объектом,
Get-WmiObject win32_computersystem -ComputerName 192.168.161.108 | %{$_.Name}
Я бы подключился к удаленному компьютеру через wmi и использовал win32_computer system.name. EG (gwmi win32_computersystem -компьютер 192.168.1.1). Имя
Если вы предпочитаете что-то более графическое, есть отличная утилита под названием NetScan (и, IMHO, с лучшими функциями, чем у других подобных утилит).
Большим преимуществом этой утилиты является то, что она может добавлять столбцы с результатами запросов WMI.
Он поставляется с некоторыми предварительно созданными запросами WMI, но вы можете добавить их сколько угодно.
Вам нужен простой запрос - ВЫБЕРИТЕ CSName FROM Win32_OperatingSystem.
Попробуйте утилиту IP-сканера, например Angry IP Scanner, и посмотрите, сможет ли она запросить у сервера имя хоста. Я знаю, что в Angry есть столбец для имени хоста, и я часто (но не всегда) вижу, что он заполняется.