Писано-переписано уже, а все-таки спокойней, когда работает свое. Пара скриптов: возвращающий к жизни мертвую программу и показывающий IP и MAC установленных сетевых карт (когда-то мне это было нужно, чтобы не объяснять клиенту, как посмотреть ipconfig /all или лезть в настройки TCP/IP и там смотреть всплывающий title).
check_process.js
var exe = "notepad.exe";
var exec = "c:\\windows\\notepad.exe"; // ONLY DOS-style directory names! Progra~1 etc.! No spaces!
var ExecHidden = 0;
var ExecMinimized = 2;
var ExecMaximized = 3;
var ExecDefaultWindow = 5;
var ExecMinimizedZ = 6;
// Which window state to use
var ExecParam = ExecMinimized;
var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;
var FoundIt = false;
var objWMIService = GetObject("winmgmts:\\\\.\\root\\CIMV2");
var colItems = objWMIService.ExecQuery("SELECT Description FROM Win32_Process", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
var objItem = enumItems.item();
if (objItem.Description.toLowerCase() == exe.toLowerCase())
FoundIt = true;
}
if (FoundIt)
{
WScript.Echo(exe + " is already running");
}
else
{
var shell = new ActiveXObject("WScript.Shell");
shell.run(exec, ExecParam, true);
}
ip-mac.js
var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;
var objWMIService = GetObject("winmgmts:\\\\.\\root\\CIMV2");
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE AdapterType = 'Ethernet 802.3'", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
var objItem = enumItems.item();
var AdapterInfo = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " + objItem.Index, "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
var enumAdapterItems = new Enumerator(AdapterInfo);
for (; !enumAdapterItems.atEnd(); enumAdapterItems.moveNext()) {
var Adapter = enumAdapterItems.item();
var IP;
try { IP = (Adapter.IPAddress.toArray()).join(", "); }
catch(e) { IP = "null"; }
}
if (IP != "null")
WScript.Echo(objItem.Name + '\n\nIP: ' + IP + '\nMAC: ' + objItem.MACAddress);
}
Highlighted using
highlight.js