Я пишу пакетный скрипт, в котором я должен различать системы Windows и Non-Windows (Linux, MAC OS, Switches, Xerox Machines и т.д.).
Алгоритм:
if (it is a Windows System)
then
do this
end if
Для этого я пытаюсь воспользоваться командой nbtstat
. По моим сведениям, когда nbtstat -A [IP Address]
выполняется, если [IP Address]
является системой Windows, он отображает вывод следующим образом:
>nbtstat -A 172.22.73.15
Local Area Connection:
Node IpAddress: [172.22.73.15] Scope Id: []
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
MANDAR-PC <00> UNIQUE Registered
DOMAIN <00> GROUP Registered
MANDAR-PC <20> UNIQUE Registered
DOMAIN <1E> GROUP Registered
MAC Address = 00-1E-0B-9D-DD-E9
Для системы, отличной от Windows, выход будет выглядеть следующим образом:
>nbtstat -A 172.22.246.51
Local Area Connection:
Node IpAddress: [172.22.73.15] Scope Id: []
Host not found.
Как я могу использовать nbtstat
или любую другую команду, чтобы различать Windows и другие системы?
nbtstat -A 172.22.246.51 | find /i "Host not found." >nul 2>&1 && ( echo not a windows ) || (echo windows)
?