Zadania WMI dla systemów operacyjnych uzyskują informacje o systemie operacyjnym, takie jak wersja, czy jest aktywowana, czy też które poprawki są zainstalowane.
Przykłady skryptów pokazane w tym temacie uzyskują dane tylko z komputera lokalnego. Aby uzyskać więcej informacji o sposobie uzyskiwania danych z komputerów zdalnych za pomocą skryptu, zobacz Connecting to WMI on a Remote Computer.
Poniższa procedura opisuje sposób uruchamiania skryptu.
Aby uruchomić skrypt
- Skopiuj kod i zapisz go w pliku z rozszerzeniem vbs, takim jak nazwa pliku.vbs. Upewnij się, że edytor tekstów nie dodaje rozszerzenia .txt do pliku.
- Otwórz okno wiersza polecenia i przejdź do katalogu, w którym zapisano plik.
- Wpisz CScript filename.vbs w wierszu polecenia.
- Jeśli nie możesz uzyskać dostępu do dziennika zdarzeń, sprawdź, czy korzystasz z wiersza polecenia z podwyższonym poziomem uprawnień. Niektóre dzienniki zdarzeń, takie jak dziennik zdarzeń zabezpieczeń, mogą być chronione przez kontrolę dostępu użytkowników (UAC).
Notatka
Domyślnie język CScript wyświetla dane wyjściowe skryptu w oknie wiersza polecenia. Ponieważ skrypty usługi WMI mogą generować duże ilości danych wyjściowych, może być konieczne przekierowanie danych wyjściowych do pliku. Wpisz cscript filename.vbs > outfile.txt w wierszu polecenia, aby przekierować dane wyjściowe skryptu filename.vbs do outfile.txt.
W poniższej tabeli wymieniono przykłady skryptów, których można użyć do uzyskania różnych typów danych z komputera lokalnego.
| ... czy na komputerze zainstalowano Service Pack? |
Użyj klasy Win32_OperatingSystem i sprawdź wartość właściwości ServicePackMajorVersion i ServicePackMinorVersion.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo objOperatingSystem.ServicePackMajorVersion & "." & objOperatingSystem.ServicePackMinorVersion
Next
|
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | `
format-list ServicePackMajorVersion, ServicePackMinorVersion
|
|
| ... określić, kiedy system operacyjny został zainstalowany na komputerze? |
Użyj klasy Win32_OperatingSystem i właściwości InstallDate.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo "Install Date: " & objOperatingSystem.InstallDate
Next
|
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | format-list InstallDate
|
|
| ... określić, która wersja systemu operacyjnego Windows jest zainstalowana na komputerze? |
Użyj klasy Win32_OperatingSystem i pobierz właściwości Name i Version.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo objOperatingSystem.Caption & " " & objOperatingSystem.Version
Next
|
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | format-list Caption, Version
|
|
| ... określić, który folder jest folderem systemu Windows (%Windir%) na komputerze? |
Użyj klasy Win32_OperatingSystem i sprawdź wartość właściwości WindowsDirectory.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo "Windows Folder: " & objOperatingSystem.WindowsDirectory
Next
|
Get-WmiObject -Class Win32_OperatingSystem -Namespace "root\cimv2" | format-list WindowsDirectory
|
|
| ... określić, jakie poprawki zostały zainstalowane na komputerze? |
Użyj klasy Win32_QuickFixEngineering.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuickFixes = objWMIService.ExecQuery ("Select * from Win32_QuickFixEngineering")
For Each objQuickFix in colQuickFixes
Wscript.Echo "Description: " & objQuickFix.Description
Wscript.Echo "Hotfix ID: " & objQuickFix.HotFixID
Next
|
Get-WmiObject -Class Win32_QuickFixEngineering -Namespace "root\cimv2" | format-list Description, HotFixIDs
|
|
| ... określić, czy chcę aktywować system operacyjny na komputerze? |
Użyj klasy Win32_WindowsProductActivation i sprawdź wartość właściwości ActivationRequired.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colWPA = objWMIService.ExecQuery ("Select * from Win32_WindowsProductActivation")
For Each objWPA in colWPA
Wscript.Echo "Activation Required: " & objWPA.ActivationRequired
Wscript.Echo "Remaining Evaluation Period: " & objWPA.RemainingEvaluationPeriod
Wscript.Echo "Remaining Grace Period: " & objWPA.RemainingGracePeriod
Next
|
Get-WmiObject -Class Win32_WindowsProductActivation -computer "." -Namespace "root\cimv2" | `
format-list ActivationRequired, RemainingEvaluationPeriod, RemainingGracePeriod
|
|
-
zadania WMI dla skryptów i aplikacji
-
przykłady aplikacji WMI C++
-
TechNet ScriptCenter