Több WMI-osztály és egy szkriptobjektum is létezik a CIM datetime formátumának elemzéséhez vagy konvertálásához. További példákért tekintse meg a TechNet ScriptCentert https://www.microsoft.com/technet.
Az ebben a témakörben bemutatott példaszkriptek csak a helyi számítógépről szereznek be adatokat. A parancsfájl távoli számítógépekről történő lekéréséről további információt a Csatlakozás a WMI-hez távoli számítógépencímű témakörben talál.
Szkript futtatása
Az alábbi eljárás egy szkript futtatását ismerteti.
Másolja ki a kódot, és mentse egy .vbs kiterjesztésű fájlba, például filename.vbs. Győződjön meg arról, hogy a szövegszerkesztő nem ad hozzá .txt kiterjesztést a fájlhoz.
Nyisson meg egy parancssori ablakot, és keresse meg azt a könyvtárat, ahová a fájlt mentette.
Írja be cscript filename.vbs a parancssorba.
Ha nem tud hozzáférni egy eseménynaplóhoz, ellenőrizze, hogy rendszergazda jogú parancssorból fut-e. Egyes eseménynaplók, például a biztonsági eseménynaplók felhasználói hozzáférés-vezérléssel (UAC) védhetők.
Jegyzet
Alapértelmezés szerint a cscript megjeleníti egy szkript kimenetét a parancssori ablakban. Mivel a WMI-szkriptek nagy mennyiségű kimenetet képesek előállítani, érdemes lehet átirányítani a kimenetet egy fájlba. Írja be cscript filename.vbs > outfile.txt parancssorba a filename.vbs szkript kimenetének átirányításához outfile.txt.
Az alábbi táblázat olyan példaszkripteket sorol fel, amelyekkel különböző típusú adatokat szerezhet be a helyi számítógépről.
Hogyan...
WMI-osztályok vagy metódusok
... WMI-dátumok konvertálása szabványos dátumokra és időpontokra?
A SWbemDateTime objektummal ezeket normál dátumokká és időpontokra konvertálhatja.
VB
Set dtmInstallDate = CreateObject("WbemScripting.SWbemDateTime")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each strOS in objOS
dtmInstallDate.Value = strOS.InstallDate
Wscript.Echo dtmInstallDate.GetVarDate
Next
... határozza meg annak az időzónának a nevét, amelyben a számítógép fut?
Használja a Win32_TimeZone osztályt, és ellenőrizze a Description tulajdonság értékét.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem in colItems
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Daylight Name: " & objItem.DaylightName
Wscript.Echo "Standard Name: " & objItem.StandardName
Wscript.Echo
Next
PowerShell
$Computer = "."
$timezone = Get-WMIObject -class Win32_TimeZone -ComputerName $computer
<# Display details #>
if ($computer -eq ".") {$computer = Hostname}
"Time zone information on computer `"{0}`"" -f $computer
"Time Zone Description : {0}" -f $timezone.Description
"Daylight Name : {0}" -f $timezone.DaylightName
"Standard Name : {0}" -f $timezone.StandardName
... győződjön meg arról, hogy a "2000.02.10"-t 2000. október 2-ként értelmezik, nem pedig "2000. február 10-én"?
Dátumok kezelése CIM-DATETIME formátumban, és SWbemDateTime metódusokkal( például GetVarDate) konvertálhatja őket FILETIME vagy VT_Date formátumba. Mivel a DATETIME formátum területi beállításfüggetlen, bármilyen gépen futtatható szkriptet írhat. Az SWbemDateTime objektummal ezeket normál dátumok és időpontokká alakíthatja. A dátumok és időpontok konvertálásáról további információt dátum- és időformátum.