簡體   English   中英

Powershell - 創建計划任務以作為本地系統/服務運行

[英]Powershell - Create Scheduled Task to run as local system / service

誰能告訴我如何使用作為本地系統或本地服務運行的 powershell 創建計划任務?

除了調用 ITaskFolder.RegisterTaskDefinition() 之外,一切都很好。

如果我傳入 $null 或“”,則呼叫炸彈會說無效的用戶名或密碼。 任何想法”

$Rootfolder.RegisterTaskDefinition("Test", $Taskdef, 6, "LOCAL SERVICE", "", 3)

對於那些可以在Windows 8 或 Windows Server 2012上使用PowerShell 3.0 的人,新的 cmdlet 將讓您在使用 cmdlet Register-ScheduledTask注冊計划任務並作為參數-User "System"時以簡單的方式執行此操作

這是一個完全用PS創建的計划任務,其目的是在系統啟動3分鍾后使用SYSTEM帳戶重新啟動服務My Service:

$taskname = "Restart My Service"
$taskdescription = "Restart My Service after startup"
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' `
  -Argument '-NoProfile -WindowStyle Hidden -command "& Restart-Service -displayname \"My Service\""'
$trigger =  New-ScheduledTaskTrigger -AtStartup -RandomDelay (New-TimeSpan -minutes 3)
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 2) -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskname -Description $taskdescription -Settings $settings -User "System"

注意:您需要以該腳本的管理員身份運行 powershell。

此代碼片段將使用PowerShellPack的 Task Scheduler 模塊來安排任務立即以 SYSTEM 身份運行:

New-Task |
    ForEach-Object {
        $_.Principal.Id = "NTAuthority\SYSTEM"
        $_.Principal.RunLevel = 1
        $_
    } |
    Add-TaskAction -Script {
        "SystemTask" > C:\myTest.txt
    } |
    Add-TaskTrigger -OnRegistration |
    Register-ScheduledTask SystemTask

我認為您需要使用“nt authority\\localservice”作為用戶名。

善良,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM