Saya mencoba menjalankan skrip restart terhadap daftar komputer, di mana ia menggunakan WMIC untuk melihat apakah pengguna login: WMIC /NODE: "workstation_name" COMPUTERSYSTEM GET USERNAME
dan kemudian gunakan psshutdown
jika tidak ada yang login. Apa yang saya temukan, adalah jika komputer memiliki beberapa alamat IP, itu akan sering terhubung ke salah satu dari subnet yang berbeda, dan kembali ERROR: Description = The RPC server is unavailable.
menyebabkan skrip berpikir tidak ada yang login, dan restart sistem. Berikut ini komputer yang bermasalah:
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.
Jadi tebakan terbaik saya adalah bahwa WMIC memilih salah satu dari 2 IP lain dari DNS dan mencoba untuk menghubungkan menggunakan itu, sedangkan psshutdown menggunakan NETBIOS atau layanan lain untuk mengeluarkan shutdown dan senang dengan itu.
Pertanyaan saya adalah, apakah ada cara untuk menggunakan WMIC untuk memaksanya menggunakan subnet tertentu, atau memaksanya untuk mencari IP sebelum menjalankan perintah? Jauh lebih mudah untuk menggunakan nama host, karena mereka hanya dapat diekspor dari AD atau serupa, dan saya benar-benar lebih suka tidak harus mengubah semuanya menjadi menggunakan IP.
Saya akan menyelidiki beberapa sendiri, tetapi mungkin urutan IP di komputer itu sendiri penting.