WSH + WMI. Примеры. Класс Win32_OperatingSystem
Класс возвращают экземпляр активной в настоящее время операционной системы и содержит сведения о этой системе, ее состоянии и настройках.
class Win32_OperatingSystem : CIM_OperatingSystem
{
string BootDevice;
string BuildNumber;
string BuildType;
string Caption;
string CodeSet;
string CountryCode;
string CreationClassName;
string CSCreationClassName;
string CSDVersion;
string CSName;
sint16 CurrentTimeZone;
boolean DataExecutionPrevention_Available;
boolean DataExecutionPrevention_32BitApplications;
boolean DataExecutionPrevention_Drivers;
uint8 DataExecutionPrevention_SupportPolicy;
boolean Debug;
string Description;
boolean Distributed;
uint32 EncryptionLevel;
uint8 ForegroundApplicationBoost;
uint64 FreePhysicalMemory;
uint64 FreeSpaceInPagingFiles;
uint64 FreeVirtualMemory;
datetime InstallDate;
uint32 LargeSystemCache;
datetime LastBootUpTime;
datetime LocalDateTime;
string Locale;
string Manufacturer;
uint32 MaxNumberOfProcesses;
uint64 MaxProcessMemorySize;
string MUILanguages[];
string Name;
uint32 NumberOfLicensedUsers;
uint32 NumberOfProcesses;
uint32 NumberOfUsers;
uint32 OperatingSystemSKU;
string Organization;
string OSArchitecture;
uint32 OSLanguage;
uint32 OSProductSuite;
uint16 OSType;
string OtherTypeDescription;
Boolean PAEEnabled;
string PlusProductID;
string PlusVersionNumber;
boolean PortableOperatingSystem;
boolean Primary;
uint32 ProductType;
string RegisteredUser;
string SerialNumber;
uint16 ServicePackMajorVersion;
uint16 ServicePackMinorVersion;
uint64 SizeStoredInPagingFiles;
string Status;
uint32 SuiteMask;
string SystemDevice;
string SystemDirectory;
string SystemDrive;
uint64 TotalSwapSpaceSize;
uint64 TotalVirtualMemorySize;
uint64 TotalVisibleMemorySize;
string Version;
string WindowsDirectory;
};
Методы
Класс Win32_OperatingSystem имеет следующие методы:Метод | Описание |
Reboot | Завершает работу, а затем перезапускает компьютерную систему. |
SetDateTime | Позволяет устанавливать дату и время на компьютере. |
Shutdown | Выгружает программы и DLL-библиотеки в месте, где это безопасно для выключения компьютера. |
Win32Shutdown | Предоставляет полный набор опций отключения операционных систем Windows. |
Win32ShutdownTracker | Обеспечивает тот же набор опций отключения, поддерживаемых Win32Shutdown, и дополнительно позволяет указать причину остановки, или тайм-аут. |
Метод Reboot класса Win32_OperatingSystem
Метод Reboot выключает компьютерную систему, затем перезапускает ее.
Не имеет параметров.
Set Root = GetObject("winmgmts:{(Shutdown)}//./root/cimv2")
Set OpSysSet = Root.ExecQuery("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Reboot()
next
Метод SetDateTime класса Win32_OperatingSystem
Метод устанавливает текущее системное время на компьютере.
Параметры - значение текущего времени
У пользователя, от имени которого выполняется SetDateTime должны быть соответствующие права.
Минимальная клиентская ОС - Windows Vista
Минимальная серверная ОС - Windows Server 2003
Метод Shutdown класса Win32_OperatingSystem
Этот метод немедленно отключает компьютер, если это возможно. Система останавливает все запущенные процессы, очищает все файловые буферы, а затем выключает систему
Не имеет параметров.
Set Root = GetObject("winmgmts:{(Shutdown)}//./root/cimv2")
Set OpSysSet = Root.ExecQuery("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Shutdown()
next
Метод Win32Shutdown класса Win32_OperatingSystem
Метод Win32Shutdown обеспечивает полный набор опций отключения поддерживаемых операционных систем Win32. Он включает logoff, shutdown, reboot.
Параметры: Flags, Reserved
Значения параметра Flags
Значение | Описание |
0 (0x0) | Log Off. останавливает все процессы, связанные с контексте безопасности процесса и отображает диалоговое окно входа в систему. |
4 (0x4) | Принудительный Log Off. Немедленный выход. Не уведомляет приложения, сессия входа в систему заканчивающиеся. Это может привести к потере данных. |
1 (0x1) | Shutdown. Выключить компьютер к точке, где это безопасно выключить питание. Процессы и пользователь уведомляются. |
5 (0x5) | Forced Shutdown (1 + 4). Принудительное выключение. Выключить компьютер к точке, где это безопасно выключить питание. Пользователи уведомляются. Все файловые буферы сбрасываются на диск, и все запущенные процессы останавливаются. Из-за этого, вы не сможете получить возвращаемого значения, если вы работаете на удаленном компьютере. |
2 (0x2) | Reboot (2 + 4). Завершает работу, а затем перезагружает компьютер. |
6 (0x6) | Forced Reboot (2 + 4) . Принудительная перезагрузка. Завершает работу, а затем перезагружает компьютер. Все запущенные процессы останавливаются. Из-за этого, вы не сможете получить возвращаемого значения, если вы работаете на удаленном компьютере. |
8 (0x8) | Power Off. Выключить компьютер и выключить питание (если поддерживается компьютером). |
12 (0xC) | Forced Power Off (8 + 4). Принудительное отключение питания. Выключить компьютер и выключить питание (если поддерживается компьютером). Все запущенные процессы останавливаются. Из-за этого, вы не сможете получить возвращаемого значения, если вы работаете на удаленном компьютере. |
Значения параметра Reserved.
Средства для расширения Win32Shutdown. В настоящее время параметр игнорируется.
Минимальная клиентская ОС - Windows Vista
Минимальная серверная ОС - Windows Server 2003
Метод Win32ShutdownTracker класса Win32_OperatingSystem.
Предоставляет тот же набор опций отключения поддерживаемых Win32Shutdown метода в Win32_OperatingSystem, но это также позволяет указать комментарии, причину остановки, или тайм-аут.
Параметры: Timeout, Comment, ReasonCode, Flags
Timeout - опционально - время, в секундах, перед выключением. Значение по умолчанию равно 0 (нулю).
Comment - сообщение для отображения в диалоговом окне завершения работы, также оно хранится в виде комментария в журнале событий ( event log ).
ReasonCode - код причины отключения.
Flags
Значение | Описание |
0 (0x0) | Log Off. |
4 (0x4) | Forced Log Off (0 + 4). |
1 (0x1) | Shutdown. |
5 (0x5) | Forced Shutdown (1 + 4). |
2 (0x2) | Reboot. |
6 (0x6) | Forced Reboot (2 + 4). |
8 (0x8) | Power Off. |
12 (0xC) | Forced Power Off (8 + 4). |
Пример получения сведений об операционной системе. WSH + WMI.
//Подключились к WMI локального компьютера (".")
var root = GetObject("winmgmts:\\\\.\\root\\cimv2");
//Выполним запрос на получение сведений об операционной системе
var reswmi = root.ExecQuery("SELECT * FROM Win32_OperatingSystem");
var accitem;
for(var acc = new Enumerator(reswmi); !acc.atEnd(); acc.moveNext())
accitem=acc.item();
var s = 'короткое описание версии операционной системы ' +
accitem.Caption + "\r\n"+
'номер билда операционной системы ' +
accitem.BuildNumber + "\r\n"+
"номер версии операционной системы " +
accitem.Version + "\r\n"+
'имя операционной системы ' + accitem.Name + "\r\n"+
'тип операционной системы: ' + accitem.OSType + "\r\n"+
'версия сервис-пака ' +
accitem.ServicePackMajorVersion + "\r\n"+
'язык операционной системы ' +
accitem.OSLanguage + "\r\n"+
'код региона, который использует операционная система ' +
accitem.CountryCode + "\r\n"+
'идентификатор языка, используемого операционной системой ' +
accitem.Locale + "\r\n"+
'дата-время установки ' + accitem.InstallDate + "\r\n"+
'имя компьютера ' + accitem.CSName + "\r\n"+
'организация, на которую зарегистрирована операционная система ' +
accitem.Organization + "\r\n"+
'серийный номер ' + accitem.SerialNumber + "\r\n"+
'зарегистрированный пользователь операционной системы ' +
accitem.RegisteredUser + "\r\n"+
'временная зона; число минут смещения от времени по Гринвичу' +
accitem.CurrentTimeZone + "\r\n"+
'дата + время последней загрузки ' +
accitem.LastBootUpTime +
'NumberOfLicensedUsers ' +
accitem.NumberOfLicensedUsers + "\r\n"+
'NumberOfProcesses ' +
accitem.NumberOfProcesses + "\r\n"+
'NumberOfUsers ' +
accitem.NumberOfUsers + "\r\n"+
'FreePhysicalMemory ' +
accitem.FreePhysicalMemory + "\r\n"+
'FreeSpaceInPagingFiles ' +
accitem.FreeSpaceInPagingFiles + "\r\n"+
"\r\n\r\n";
WScript.Echo(s);
В документации приведен следующий пример:
On Error Resume Next
' Connect to WMI and obtain instances of Win32_OperatingSystem
For Each objOS in GetObject( _
"winmgmts:").InstancesOf ("Win32_\")
WScript.Echo "Name = " & objOS.Caption _
& "Version = " & objOS.Version &VBCR _
& "Registered User = " & objOS.RegisteredUser &VBCR _
& "Manufacturer = " & objOS.Manufacturer
Next
if Err <> 0 Then
WScript.Echo Err.Description
Err.Clear
End if
Более подробно о классе Win32_OperatingSystem смотрите на MSDN.
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуетс¤ регистраци¤).