Определение hostname Windows машины путём получения информации из реестра

Бывает так, что в большой сети творится хаос, и часто бывает так, что ДНС-сервер выдаёт чушь по сопоставлению имени и IP-адреса. Столкнувшись с такой бедой, пришлось быстро на коленке написать скриптец, который вытаскивает инфо из реестра, в данном случае hostname, последний залогинившийся пользователь, вендор железки, параметры прокси сервера, ну и параметры автозагрузки системы :smile3:
Проверялось всё на Win7/Server2008 R2
Собственно сам скриптец:


#!/bin/sh

#Detect hostname in domain for Windows7/Windows2008R2
host="$1"
login_pass=DOMAIN_NAME\\USER%\PASSWORD
### Windows 7/2008 registry section ###
    rpc_cmd="net rpc registry enumerate"
    reg_cname="HKLM\\SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ActiveComputerName"
    reg_uname="HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI"
    reg_hwinfo="HKLM\\SYSTEM\\CurrentControlSet\\Control\\SystemInformation"
    reg_proxy="HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
    reg_autorun="HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
### Windows 7/2008 execute section###
cname=`$rpc_cmd $reg_cname -I $host -U $login_pass | grep  -A 2 ComputerName | tail -1 | sed -r 's/^[^"]+//' | sed -r 's/\"//g'`
uname=`$rpc_cmd $reg_uname -I $host -U $login_pass | grep -A 2 Value | sed '11!d' | sed -r 's/\"//g' | sed -r 's/^[Value = ]+//g'`
hwinfo=`$rpc_cmd $reg_hwinfo -I $host -U $login_pass | grep -A 2 Value | sed '15!d' | sed -r 's/\"//g' | sed -r 's/^[Value = ]+//g'`
proxy=`$rpc_cmd $reg_proxy -I $host -U $login_pass | grep -A 2 Value | sed '23!d' | sed -r 's/\"//g' | sed -r 's/^[Value = ]+//g'`
autorun=`$rpc_cmd $reg_autorun -I $host -U $login_pass | grep -A 2 "C:" | sed -r 's/\"//g' | sed -r 's/^[Name = ]+//g' | sed -r 's/^[Valuename = ]+//g' | sed -r 's/^[--]+//g' | sed '/^$/d'`
### Output section ####
echo
echo =============== Host Information =================
echo HOSTNAME     = "$cname"
echo LAST_LOGON   = "$uname"
echo HARDWARE     = "$hwinfo"
echo PROXY_SERVER = "$proxy"
echo ==================================================
echo
echo =============== Autorun Software =================
echo "$autorun"
echo ==================================================

Правим строчку login_pass=DOMAIN_NAME\USER%\PASSWORD под свой домен, логин и пароль (знак % после юзернейма оставляем!)

Используем так:

alex@localhost:/home/alex/Downloads/Scripts$ ./script.sh 192.168.1.250

Есть мысля дописать условия по определению ОС, ибо ветки реестров везде разные, но пока лениво :sarcastic: