1

Я пытаюсь запустить скрипт перезапуска для списка компьютеров, где он использует WMIC, чтобы проверить, вошли ли пользователи в систему: WMIC /NODE: "workstation_name" COMPUTERSYSTEM GET USERNAME а затем использовать psshutdown если никто не вошел в систему. Я обнаружил, что если у компьютера несколько IP-адресов, он часто подключается к одной из других подсетей и возвращает ERROR: Description = The RPC server is unavailable. заставляя скрипт думать, что никто не вошел в систему, и перезапустить систему. Вот проблемный компьютер:

C:\>nslookup HOSTNAME
Server:  DHCP_SERVER
Address:  10.0.0.10
Name:    HOSTNAME.NET.LOCAL
Addresses:  100.1.1.30
          192.168.1.45
          172.1.1.6


C:\>ping HOSTNAME

Pinging HOSTNAME.NET.LOCAL [172.1.1.6] with 32 bytes of data:
Request timed out.
Request timed out.

Поэтому я думаю, что WMIC выбирает один из двух других IP-адресов из DNS и пытается подключиться, используя те, где в качестве psshutdown использует NETBIOS или другой сервис для выдачи завершения и доволен этим.

У меня вопрос, есть ли способ использовать WMIC, чтобы заставить его использовать определенную подсеть, или заставить его искать IP-адреса перед выполнением команд? Использовать имена хостов намного проще, поскольку их можно просто экспортировать из AD или аналогичных, и я бы предпочел не преобразовывать все в использование IP-адресов.

Я собираюсь исследовать некоторые самостоятельно, но это может быть порядок IP-адресов в самом компьютере имеет значение.

0