WMI 排程工作會建立並取得排程工作的相關資訊。 如需其他範例,請參閱 位於 的 TechNet ScriptCenter https://www.microsoft.com/technet 。
本主題所示的腳本範例只會從本機電腦取得資料。 如需如何使用腳本從遠端電腦取得資料的詳細資訊,請參閱 連線到遠端電腦上的 WMI。
下列程式描述如何執行腳本。
執行指令碼
- 複製程式碼,並將它儲存在副檔名為 .vbs 的檔案中,例如 filename.vbs。 請確定文字編輯器不會將.txt副檔名新增至檔案。
- 開啟命令提示字元視窗,並流覽至您儲存檔案的目錄。
- 在命令提示字元中輸入 cscript filename.vbs 。
- 如果您無法存取事件記錄檔,請檢查您是否從提升許可權的命令提示字元執行。 某些事件記錄檔,例如安全性事件記錄檔,可能會受到使用者存取控制 (UAC) 保護。
注意
根據預設,cscript 會在命令提示字元視窗中顯示腳本的輸出。 因為 WMI 腳本可以產生大量的輸出,所以您可能會想要將輸出重新導向至檔案。 在命令提示字元中輸入 cscript filename.vbs > outfile.txt ,將 filename.vbs 腳本的輸出重新導向至 outfile.txt。
下表列出可用來從本機電腦取得各種資料類型的腳本範例。
| ...使用腳本建立排程的工作嗎? |
使用 Win32_ScheduledJob 類別和 Create 方法。 If you are having difficulty making this task work on Windows 7 or later, see the Win32_ScheduledJob Remarks section; likely your settings are preventing you from using the class.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
JobID = "Test"
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreate = objNewJob.Create _
("Notepad.exe", "********143000.000000-420", True , 1 OR 4 OR 16, ,True, JobId)
If errJobCreate = 0 Then
WScript.Echo "Job created successfully: " & VBNewLine _
& "Notepad.exe scheduled to run repeately at 14.30 (2:30 P.M.) PST" & VBNewLine _
& "on Mon, Wed, and Fri."
Else
WScript.Echo "Job not created. Error code = " & errJobCreate
End If
|
在Create) 方法的StartTime參數值中使用的字串 「**143000.000000-420」 (, 「**≧143000.000000」 指定工作從 14.30 開始, () 下午 2:30,而 「-420」 指定時區。 時區號碼是當地時間轉譯的目前偏差。 偏差是 UTC 時間與當地時間之間的差異。 若要計算時區的偏差,請將時區前面或位於 Greenwich Mean Time (GMT) 後方的小時數乘以 60 (如果您的時區早于 GMT 時數,則會使用正數作為時數,如果您的時區位於 GMT) 後,則為負數。 如果您的時區使用日光節約時間,請將額外的 60 新增至計算。 例如,太平洋標準時區在 GMT 後 8 小時,因此當日光節約時間未使用時,偏差等於 -420 (-8 * 60 + 60) ,而 -480 (-8 * 60) 。 您也可以藉由查詢 Win32_TimeZone 類別的偏差屬性來判斷偏差的值。 |
| ...會傳回電腦上所有排程工作的清單? |
使用 Win32_ScheduledJob 類別。 請注意,這個類別只能傳回使用腳本或AT.exe建立的作業。 它無法傳回排程工作精靈所建立或修改之作業的相關資訊。
strComputer = "."
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery ("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
Wscript.Echo "Command: " & objJob.Command & VBNewLine _
& "Days Of Month: " & objJob.DaysOfMonth & VBNewLine _
& "Days Of Week: " & objJob.DaysOfWeek & VBNewLine _
& "Description: " & objJob.Description & VBNewLine _
& "Elapsed Time: " & objJob.ElapsedTime & VBNewLine _
& "Install Date: " & objJob.InstallDate & VBNewLine _
& "Interact with Desktop: " & objJob.InteractWithDesktop & VBNewLine _
& "Job ID: " & objJob.JobId & VBNewLine _
& "Job Status: " & objJob.JobStatus & VBNewLine _
& "Name: " & objJob.Name & VBNewLine _
& "Notify: " & objJob.Notify & VBNewLine _
& "Owner: " & objJob.Owner & VBNewLine _
& "Priority: " & objJob.Priority & VBNewLine _
& "Run Repeatedly: " & objJob.RunRepeatedly & VBNewLine _
& "Start Time: " & objJob.StartTime & VBNewLine _
& "Status: " & objJob.Status & VBNewLine _
& "Time Submitted: " & objJob.TimeSubmitted & VBNewLine _
& "Until Time: " & objJob.UntilTime
Next
|
|
-
腳本和應用程式的 WMI 工作
-
WMI C++ 應用程式範例
-
TechNet ScriptCenter