Тема: WSH, JS: Базовая информация об ОС, процессах, программах
Указанный ниже код создает файл с информацией о
1. названии, версии и разрядности ОС
2. имени текущего пользователя
3. логических разделах дисков
4. запущенных процессах
5. установленных программах
6. модели ПК
var FSO = fso = WScript.CreateObject("Scripting.FileSystemObject");
var WshShell = WScript.CreateObject("WScript.Shell");
Enumerator.prototype.toArray = function ()
{
var Result = [];
for (;!this.atEnd();this.moveNext())
Result.push(this.item())
return Result;
}
function CreateTextFile(Path)
{
Path = WshShell.ExpandEnvironmentStrings(Path);
return fso.OpenTextFile(Path, 2, 1)
}
function isFile(Path)
{
return fso.FileExists(Path);
}
function WMIQuery(Moniker, Query)
{
var Service = GetObject(Moniker),
Items = Service.ExecQuery(Query);
return new Enumerator(Items).toArray();
return true;
}
function DetectWindowsVersion()
{
var Windows = WMIQuery("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2", "Select * from Win32_OperatingSystem" );
var Processor = WMIQuery("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2", "Select * from Win32_Processor" );
return Windows[0].Caption+"\t"+Windows[0].Version+"\t"+Processor[0].AddressWidth+"bit";
}
function GetUserName()
{
try{return "CurrentUser\t"+WScript.CreateObject("WScript.NetWork").UserName;}catch(e){return "CurrentUser\tUnknown";}
}
function GetDrives()
{
var D = (new Enumerator(FSO.Drives).toArray().toString().replace(/A:,/,"").replace(/:/g,":\\").split(","));
var Drives=[];
for (var i=0; i<D.length; i++)
{
try {
if (FSO.GetDrive(D[i]).IsReady) Drives.push(D[i]);
} catch (e) {}
}
return Drives;
}
function GetDrivesInformation()
{
var Drives = GetDrives(), Drive, Result=["\r\nDRIVES"];
for (var i=0; i<Drives.length; i++)
{
Drive = FSO.GetDrive(Drives[i]);
Result.push(
[
"============================",
"Drive.DriveLetter: "+Drive.DriveLetter,
"Drive.VolumeName: "+Drive.VolumeName,
"Drive.DriveType: "+Drive.DriveType,
"Drive.FileSystem: "+Drive.FileSystem,
"Drive.TotalSize: "+Drive.TotalSize,
"Drive.AvailableSpace: "+Drive.AvailableSpace
].join("\r\n")
);
}
Result.push("============================")
return Result.join("\r\n");
}
function GetProcessInformation()
{
var Ar = WMIQuery("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\CIMV2", "SELECT * FROM Win32_Process");
var Result=[];
for (var i=0;i<Ar.length; i++)
Result.push(Ar[i].Name +"\t"+ Ar[i].CommandLine);
Result=Result.sort();
Result.push("============================");
Result.unshift("\r\nPROCESSES", "============================");
return Result.join("\r\n");
}
function GetComputerInformation()
{
function WMIDateStringToDate(dtmDate)
{
if (dtmDate == null)
{
return "null date";
}
var strDateTime;
if (dtmDate.substr(4, 1) == 0)
{
strDateTime = dtmDate.substr(5, 1) + "/";
}
else
{
strDateTime = dtmDate.substr(4, 2) + "/";
}
if (dtmDate.substr(6, 1) == 0)
{
strDateTime = strDateTime + dtmDate.substr(7, 1) + "/";
}
else
{
strDateTime = strDateTime + dtmDate.substr(6, 2) + "/";
}
strDateTime = strDateTime + dtmDate.substr(0, 4) + " " +
dtmDate.substr(8, 2) + ":" +
dtmDate.substr(10, 2) + ":" +
dtmDate.substr(12, 2);
return(strDateTime);
}
var Result=[];
var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;
var objWMIService = GetObject("winmgmts:\\\\.\\root\\CIMV2");
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_SystemEnclosure", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
var objItem = enumItems.item();
if (objItem.AudibleAlarm) Result.push("AudibleAlarm: " + objItem.AudibleAlarm);
if (objItem.BreachDescription) Result.push("BreachDescription: " + objItem.BreachDescription);
if (objItem.CableManagementStrategy) Result.push("CableManagementStrategy: " + objItem.CableManagementStrategy);
if (objItem.Caption) Result.push("Caption: " + objItem.Caption);
try {Result.push("ChassisTypes: " + (objItem.ChassisTypes.toArray()).join(",")); }
catch(e) {}
if (objItem.CreationClassName) Result.push("CreationClassName: " + objItem.CreationClassName);
if (objItem.CurrentRequiredOrProduced) Result.push("CurrentRequiredOrProduced: " + objItem.CurrentRequiredOrProduced);
if (objItem.Depth) Result.push("Depth: " + objItem.Depth);
if (objItem.Description) Result.push("Description: " + objItem.Description);
if (objItem.HeatGeneration) Result.push("HeatGeneration: " + objItem.HeatGeneration);
if (objItem.Height) Result.push("Height: " + objItem.Height);
if (objItem.HotSwappable) Result.push("HotSwappable: " + objItem.HotSwappable);
Result.push("InstallDate: " + WMIDateStringToDate(objItem.InstallDate));
if (objItem.LockPresent) Result.push("LockPresent: " + objItem.LockPresent);
if (objItem.Manufacturer) Result.push("Manufacturer: " + objItem.Manufacturer);
if (objItem.Model) Result.push("Model: " + objItem.Model);
if (objItem.Name) Result.push("Name: " + objItem.Name);
if (objItem.NumberOfPowerCords) Result.push("NumberOfPowerCords: " + objItem.NumberOfPowerCords);
if (objItem.OtherIdentifyingInfo) Result.push("OtherIdentifyingInfo: " + objItem.OtherIdentifyingInfo);
if (objItem.PartNumber) Result.push("PartNumber: " + objItem.PartNumber);
if (objItem.PoweredOn) Result.push("PoweredOn: " + objItem.PoweredOn);
if (objItem.Removable) Result.push("Removable: " + objItem.Removable);
if (objItem.Replaceable) Result.push("Replaceable: " + objItem.Replaceable);
if (objItem.SecurityBreach) Result.push("SecurityBreach: " + objItem.SecurityBreach);
if (objItem.SecurityStatus) Result.push("SecurityStatus: " + objItem.SecurityStatus);
if (objItem.SerialNumber) Result.push("SerialNumber: " + objItem.SerialNumber);
try {Result.push("ServiceDescriptions: " + (objItem.ServiceDescriptions.toArray()).join(",")); }
catch(e) {}
try {Result.push("ServicePhilosophy: " + (objItem.ServicePhilosophy.toArray()).join(",")); }
catch(e) {}
if (objItem.SKU) Result.push("SKU: " + objItem.SKU);
if (objItem.SMBIOSAssetTag) Result.push("SMBIOSAssetTag: " + objItem.SMBIOSAssetTag);
if (objItem.Status) Result.push("Status: " + objItem.Status);
if (objItem.Tag) Result.push("Tag: " + objItem.Tag);
try {Result.push("TypeDescriptions: " + (objItem.TypeDescriptions.toArray()).join(",")); }
catch(e) {}
if (objItem.Version) Result.push("Version: " + objItem.Version);
if (objItem.VisibleAlarm) Result.push("VisibleAlarm: " + objItem.VisibleAlarm);
if (objItem.Weight) Result.push("Weight: " + objItem.Weight);
if (objItem.Width) Result.push("Width: " + objItem.Width);
}
Result.push("============================")
Result.unshift("\r\nCOMPUTER INFO\r\n============================" );
return Result.join("\r\n");
}
function ExportAddRemoveProgramsDataToFile(FilePath)
{
var Postfix = /Windows 7/i.test(DetectWindowsVersion())?" /y":"";
FilePath = FilePath || "%TMP%\\~SDPASDSDPROGSQW.tmp";
var e, Command = 'REG EXPORT "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall" "'+FilePath+'"'+Postfix;
try {WshShell.Run(Command,0,1);} catch (e) {};
// Echo(Command);
return WshShell.ExpandEnvironmentStrings(FilePath);
}
function GetInstalledProgramsInformation()
{
var Result=[];
function c(r, r1)
{
Result.push(r1);
}
var ADODBStream = WScript.CreateObject("ADODB.Stream");
ADODBStream.Type = 2;
ADODBStream.Charset = "UTF-16LE";
ADODBStream.Open();
ADODBStream.LoadFromFile(ExportAddRemoveProgramsDataToFile());
var Data = ADODBStream.ReadText();
WScript.Echo(Data);
Data.replace(/"DisplayName"="([^"]+)"/gi, c);
Result = Result.sort();
Result.push("============================")
Result.unshift("\r\nINSTALLED PROGRAMS:","============================");
return Result.join("\r\n");
}
var TextFileName = "%TMP%\\Info.txt";
var Text = CreateTextFile(TextFileName);
Text.WriteLine(DetectWindowsVersion());
Text.WriteLine(GetUserName());
Text.WriteLine(GetDrivesInformation());
Text.WriteLine(GetProcessInformation());
Text.WriteLine(GetComputerInformation());
Text.WriteLine(GetInstalledProgramsInformation());
Text.Close();
WshShell.Run("notepad %TMP%\\info.txt", 1, 1);
TextFileName = WshShell.ExpandEnvironmentStrings(TextFileName);
FSO.GetFile(TextFileName).Delete(true);