2013-03-06 19 views
0

根據文檔,get-scheduledjob僅返回所有者爲當前用戶的計劃作業。像set-scheduledjob這樣的其他預定作業命令行也僅適用於所有者是當前用戶的預定作業。這使得非業主不可能獲得工作狀態,修改工作(如設置其他憑證)等。如何管理powershell 3中的scheduledjobs?

在一個適當的IT組織中,我要說它對於這些工作至關重要,以允許管理員從各種管理員。

我錯過了一些管理,審查結果等方式(除了直接查看所有者的應用程序數據中的PowerShell輸出文件)?

澄清 - 我正在尋找與Powershell創建和管理的方法ScheduledJobs。如果您修改通過UI,schtask或其他計劃任務特定工具執行預定作業的計劃任務,則會得到意想不到的結果。如果您更改所有者/憑據,則計劃任務將失敗。您可以使用UI/schtasks更改日程安排而不會導致任何問題。除了更換所有者之外,我還想了解就職的結果,以便監控工作進度。

+0

我已經提交連接建議,如果您需要此功能,請對其投票... https://connect.microsoft.com/PowerShell/feedback/details/780966/server-wide-scheduledjobs-should-allow- for-non-creator-owner-to-managing-them#詳情 – JorgeSandoval 2013-03-07 23:15:57

回答

1

我曾經去過能把這個使用PowerShell工作的唯一途徑是通過調用Schtask.exe的實用程序:

注:「/ U」是當地政府和「/ RU」是遠程在本地工作時也不需要「/ S」。

通過導入先前從任務計劃出口

[string]$string = 'schtasks.exe /create /RU yourdomain\username /RP $password /TN Task-Name /XML "D:\Path\To\ExportedXML.xml" /S ServerName' 

刪除XML創建:

[string]$string = 'schtasks.exe /delete /RU yourdomain\username /P $password /TN Task-Name /S ServerName /F' 

查詢:

[string]$string = 'schtasks.exe /query /RU yourdomain\username /P $password' 

在本地運行:

Invoke-Expression -Command $string 

遠程運行:

Invoke-Command -ScriptBlock {$string} 
+0

我認爲這種方法仍存在問題,與任務調度程序UI相同。此作業的狀態位於 C:\ Users \ {作業所有者} \ AppData \ Local \ Microsoft \ Windows \ PowerShell \ ScheduledJobs 作業正常運行需要此狀態。如果您通過UI或schtasks exe更改所有者,它將不會移動該狀態和作業僅僅是錯誤。 在我看來,這是一個很大的漏洞。 Joe Admin創建一些維護任務,讓他們運行一段時間,然後退出。新的管理員沒有辦法沒有做一些嚴重的黑客攻擊任務... – JorgeSandoval 2013-03-06 22:26:18

+0

這是一個像樣的文章,似乎涵蓋了這個問題: [鏈接] http://janegilring.wordpress.com/2012/05/ 28/working-with-scheduled-tasks-from-windows-powershell/ 摘錄: _「...檢索作業的結果,而不是查看XML文件,而是使用Get-Job如果你打開一個新的PowerShell會話並運行Get-Job,使用PSScheduledJob cmdlet創建的預定作業將不可用,必須先導入PSScheduledJob模塊,然後運行Get-Job。通過使用Receive-Job,我們可以從我們的工作中獲得結果「_ – 2013-03-07 16:57:37

+0

我閱讀過這個文檔,並且經過測試可以確定,但只適用於創建/是作業所有者的用戶。重要的一點是他確定作業的狀態存儲在用戶的appdata文件夾中。我認爲我們在這裏只是運氣不好,並且必須寫一些東西來至少從xml文件中獲取狀態。醜陋...... 「我們可以看到作業存儲在當前用戶的AppData文件夾中的單獨文件夾中:」 – JorgeSandoval 2013-03-07 22:51:41

0

我已經寫了幾個PowerShell腳本來管理計劃任務(他們使用TaskService COM對象):

Rename Scheduled Tasks in Windows 7, Windows Server 2008, and Windows Vista

How-To: Use PowerShell to Report on Scheduled Tasks

Updating a Scheduled Task's Credentials

Bill

+0

我已經澄清了我在尋找原始問題的編輯。基本上,不想操縱/管理標準的計劃任務,但ScheduledJobs,添加到Powershell 3,這顯然只適用於一個用戶:() – JorgeSandoval 2013-03-07 01:20:17

相關問題