2010-01-04 20 views
9

¿Alguien me puede decir cómo crear una tarea programada utilizando powershell que se ejecuta como el sistema local o el servicio local?Powershell - Crear tarea programada para ejecutar como sistema/servicio local

Todo funciona muy bien, excepto la llamada a ITaskFolder.RegisterTaskDefinition().

Si paso $ null, o "", que las bombas de llamada que dicen nombre de usuario o contraseña no válidos. Cualquier pensamiento"

$ Rootfolder.RegisterTaskDefinition ("test", $ taskdef, 6, "SERVICIO LOCAL", "", 3)

Respuesta

2

creo que tendría que utilizar "NT AUTHORITY \ LocalService" como el nombre de usuario

bondad,

Dan

5

Este fragmento de código va a utilizar el módulo programador de tareas de la PowerShellPack 's para programar una tarea para ejecutarse como sistema de inmediato:.

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

Gracias Media. Lo veré mañana. – devlife

3

Para aquellos que pueden usar PowerShell 3.0 en Windows 8 o Windows Server 2012, nuevos cmdlets le permitirá hacer de una manera simple cuando el registro de su tarea programada con el cmdlet Register-ScheduledTask y como argumento -User "System"

Aquí es una tarea programada creada totalmente con PS, su propósito es el de reiniciar un servicio Mi servicio, utilizando la cuenta SYSTEM, 3 minutos después de que el sistema ha comenzado:

$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" 

NB: necesitará ejecutar powershell como administrador para esa secuencia de comandos.

+0

Acabo de recibir: Register-ScheduledTask: Acceso denegado. En la línea: 7 caracteres: 1 + Registro-ScheduledTask -Acción $ action -Trigger $ trigger -TaskName $ taskname -De ... + ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~ + CategoryInfo: PermisionDenied: (PS_ScheduledTask: Root/Microsoft/... S_ScheduledTask) [Register-ScheduledTask], CimException + FullyQualifiedErrorId: HRESULT 0x80070005, Register-ScheduledTask –

+1

No importa .... Debe tener el símbolo del sistema de powershell ejecutándose como administrador. –

+0

@ColinMackay Actualicé mi respuesta para agregar una Nota nota bene sobre ejecutar el script como administrador. Feliz de que te haya ayudado y gracias por tu comentario – Djidiouf

Cuestiones relacionadas