L'importation de Tâches Planifiées avec Powershell sous Windows 2012 R2
Je suis très nouveau pour les scripts Powershell, mais ont tenté de modifier un script que j'ai trouvé ici pour l'import XML Tâches Planifiées à l'aide de Powershell dans Windows 2012 R2.
J'ai réussi à importer les Tâches Planifiées dans la racine de la [Bibliothèque du Planificateur de Tâches] à l'aide de ce script.
Le problème semble être que la Planification des Tâches doivent être importés dans un sous-dossier Bibliothèque du Planificateur de Tâches, disons-le, "sous-Tâches"
$task_path = "C:\Users\me\Desktop\ST Testing\exported ST's\scheduledTask.xml"
$task_user = "usr"
$task_pass = "pwd"
$schedule = new-object -com("Schedule.Service")
$schedule.Connect("server") # servername
#$folder = $schedule.GetFolder("\") <===This works fine
$folder = $schedule.GetFolder("\SubTasks") #<===This does not work
Write-Host $folder
Get-Item $task_path | % {
$task_name = $_.Name.Replace('.xml', '')
$task_xml = Get-Content $_.FullName
$task = $schedule.NewTask($null)
$task.XmlText = $task_xml
$folder.RegisterTaskDefinition($task_name, $task, 6, $task_user, $task_pass, 1, $null)
}
Quand je lance le au-dessus de Script Powershell je reçois cette erreur:
Exception d'appeler "RegisterTaskDefinition" avec "7" argument(s): "L'
chemin d'accès spécifié est invalide. (Exception de HRESULT: 0x800700A1)"
Au C:\Users\me\Desktop\ST Test\ImportSTs.ps1:22 char:5
+ $dossier.RegisterTaskDefinition($nom_tâche, $tâche, 6, $task_user,
$task_pass, ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation
Merci à l'avance.
- Le chemin existe encore?
- la condition semblable, avait à l'appui de ps v2, donc je peux choisir d'utiliser
schtasks
- ma solution: bitbucket.org/trginternational/trg.hhc.autobackup/raw/master/... - Oui, si vous voulez dire que le sous-tâche [\sous-Tâche] dossier existe. Il a été créé dans le Planificateur de Tâches. Merci pour votre réponse.
Vous devez vous connecter pour publier un commentaire.
si vous êtes sur powershell 3 (win2k12 - vous êtes donc) et au-dessus, il y a tout un module pour la planification des tâches.
voir:
gcm -Module PSScheduledJob
cependant, il ne semble pas à venir avec un moyen facile d'importer des tâches à partir de xml.
il existe des modules pour que, ce module particulier désérialise le fichier xml et de tests pour tous les paramètres, semble de plus en plus lourde que schtasks solution indiquée ci-dessous.
pour powershell 2 (win2k8) je l'ai trouvé plus facile à utiliser
schtasks
- complet réf ici:https://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs. 85).aspx
par exemple (de la planification d'une tâche à partir d'un xmlfile, la tâche sera exécutée en vertu d'un utilisateur particulier creds:
J'ai obtenu mon fichier xml en créant manuellement la tâche et l'exportation au format xml (j'ai enlevé des informations d'identification et des informations nœuds de xml)
Inscrivez-ScheduledTask
prend en charge l'utilisation de XML pour définir la tâche:Note que vous avez besoin de récupérer le XML contenu. Le
-Raw
drapeau empêcheGet-Content
de retourner uneString[]
, ce qui rend égalementRegister-ScheduledTask
malheureux.Également noter que
Register-ScheduledTask
a un-TaskPath
argument, vous permettant de spécifier un sous-dossier pour mettre la tâche en si vous le souhaitez.Je ne suis pas fan de l'utilisation de la tombe de marque pour la continuation de ligne, donc je préfère splatting de choses propagation sur plusieurs lignes:
A pu obtenir que cela fonctionne pour nos besoins.