2013-12-11 54 views
9

我已經下載了設在這裏的PowerShell腳本的計劃任務:http://gallery.technet.microsoft.com/scriptcenter/Get-Scheduled-tasks-from-3a377294使用PowerShell找到設置喚醒計算機

然而,這並沒有給我一塊信息我要找的。我想看看是否有任何任務設置爲喚醒電腦以運行該任務。我看到它在循環中的腳本中的位置,並顯示每個任務的屬性。但我不熟悉PowerShell或Schedule.Service對象,所以我不知道是什麼屬性。有人能告訴我一種方法來獲取設置爲喚醒電腦的任務列表嗎?或者告訴我如何編輯該腳本以顯示該信息。

感謝

+0

查看我之前的答案之一:http://stackoverflow.com/questions/15439542/how-to-use-powershell-to-inventory-scheduled-tasks @ mjolinor的xml路徑應該可以工作,但我的示例將顯示如果您沒有'Get-ScheduledTask' cmdlet可用,您如何使用COM獲取對象(和xml屬性)。該cmdlet僅在Win8/2012及更高版本中可用。 –

+0

對於我想運行這個電腦,它運行的Windows 8.1 – merk

+0

Okey,那麼你甚至不需要建議使用powerpack @ mjolinor。 Get-ScheudledTask是「內置的」。對於將來的問題,你可以指定。除非標記或描述,否則我們假設在winXP +上使用PowerShell 2.0 :-) –

回答

3

這些信息應該是在XML下來。 編輯:格雷默是正確的,這是不使用相同的腳本鏈接。
此使用Get-ScheduledTask從的TaskScheduler模塊在PowerShellPack,這可以從這裏downloade: http://archive.msdn.microsoft.com/PowerShellPack

$tasks = Get-ScheduledTask -ComputerName <ComputerName> 

ForEach ($task in $tasks) 
{ 
    $xml = [xml]$task.xml 
    if ($xml.task.settings.waketorun -eq 'True') 
    { "Task $($task.name) is set to WakeToRun" } 
} 

或者乾脆

Get-ScheduledTask | select TaskName,TaskPath,@{name="Aufweckung.";expression={$_.Settings.WakeToRun}} -ExpandProperty Triggers | ft -AutoSize -Wrap 
+0

'Get-ScheduledTask'是一個Windows 8 +獨佔cmdlet。如果您正在討論第三方cmdlet,請鏈接到腳本/模塊。您的解決方案無法使用@merk提供的腳本 –

+0

您是對的。我提供了一個指向源代碼的鏈接(MSDN PowerShellPack)。還包括一些其他有用的模塊。 – mjolinor

+0

謝謝 - 這將在Windows 8.1機器上使用,所以我應該很好。稍後當我回家時我會嘗試。你能告訴我在哪裏可以查找任務的可用屬性嗎?我試着做一些msdn googling無法找到任務的所有可用屬性。 – merk

4
上win8.1

$tasks = Get-ScheduledTask 

ForEach ($task in $tasks) 
{ 
    if($task.settings.waketorun -eq 'True') 
     {"$($task.taskname)"} 
} 
1

You ca ñ獲得更多的信息,使您能夠找到它的任務調度與此:

$tasks = Get-ScheduledTask 

ForEach ($task in $tasks) 
{ 
    if($task.settings.waketorun -eq 'True') 
     {"$($task)"} 
} 
+0

我正在使用以下線路來關閉所有喚醒設置: $ tasks = Get-ScheduledTask $ task.settings.WakeToRun = $ false Set-ScheduledTask -TaskName $ task.TaskName -TaskPath $ task.TaskPath -Settings $任務。設置 – AlfeG

+0

爲了改進AlfeG的代碼;這列出了WakeToRun任務:'Get-ScheduledTask |? {$ _。Settings.WakeToRun}' - 這將關閉「功能」:'Get-ScheduledTask |? {$ _。Settings.WakeToRun} |%{$ _。Settings.WakeToRun = $ false; Set-ScheduledTask -TaskName $ _。TaskName -TaskPath $ _。TaskPath -Settings $ _。Settings}'。希望這可以防止更多的筆記本電腦在他們的包裏過熱...... – j0057

+0

j0057在他的評論中確實指出了Get-/Set-ScheduledTask。 –

17

這可以在一個班輪完成:

Get-ScheduledTask | where {$_.settings.waketorun} 

GET-ScheduledTask是available在Windows 8.1,Windows PowerShell 4.0,Windows Server 2012 R2。

+0

謝謝,先生。 – seagull

+0

奇妙的1班輪! – Sully