Auteur de questions
import tâches planifiées avec un compte local

Question
-
Bonjour,
Je tente d'importer une tâche planifiée avec powershell mais il faut que l'utilisateur qui exécute cette tâche soit un utilisateur local et que ce script fonctionne sur plusieurs PC.
Avec un compte du domaine ça fonctionne bien, mais avec un compte local j'obtiens une erreur :
Le script powershell :
$task_path = "\\serveurs\logiciels\Taches_Planifiees\tache.xml"
$nom = hostname
$task_user = "$nom\userlocal"
$task_pass = "pwd"
$sch = New-Object -ComObject("Schedule.Service")
$sch.connect("localhost")
$folder = $sch.GetFolder("\rep1\$nom-ADMIN")
Get-Item $task_path | %{
$task_name = $_.Name.Replace('.xml', '')
$task_xml = Get-Content $_.FullName
$task = $sch.NewTask($null)
$task.XmlText = $task_xml
$folder.RegisterTaskDefinition($task_name, $task, 6, $task_user, $task_pass, 1, $null)
}Le compte utilisateur local existe bien et je suis sûr du mot de passe.
En espérant que vous ayez une idée pour me dépanner.
Merci
Toutes les réponses
-
Bonjour,
Si vous êtes dans un domaine, vous pouvez utiliser une GPO de type préférence pour descendre la tache planifiée. Il est nécessaire d'utiliser le compte system pour éviter toutes failles de sécurité.
Merci de marquer comme réponse les sujets qui vous ont permis d'avancer afin que cela puisse être bénéfique aux personnes qui rencontrent le même problème.
-
Bonjour,
Oui c'était mon idée de départ, mais ça ne semble pas convenir à mon contexte malheureusement.
Il faut que la tâche planifiée soit située dans une arborescence précise = $folder = $sch.GetFolder("\rep1\$nom-ADMIN")
Il faut que la tâche planifiée soit exécutée avec le compte local de la machine.
(Je sais, ce n'est pas conventionnel et pas recommandée, mais on m'impose cette configuration.)
- Modifié Fabien-VIRT mardi 27 mars 2018 08:06
-
Bonjour,
Via GPO la tache sera bien exécutée avec le compte de la machine (compte système).
Toutefois, je ne pense pas que l'on puisse choisir son arborescence, et cela ne facilite pas le troubleshoot de créer un répertoire au niveau des taches planifiées plutôt que les avoir à la racine en cas de problème. Il ne faut pas oublier qu'il y a un dossier qui a été crée...
Merci de marquer comme réponse les sujets qui vous ont permis d'avancer afin que cela puisse être bénéfique aux personnes qui rencontrent le même problème.
-
Bonjour,
Oui par GPO la tache sera exécuter avec le compte de la machine, mais le contexte dans lequel je suis nécessite que la tâche planifiées soit exécuté par l'utilisateur local de la machine et oui cela ne facilité par le troubleshoot mais je ne peux pas me substituer au besoin imposé.
Bref, j'ai fini par me débrouiller.
pour ceux qui ça intéresse je met le script
[System.Security.Principal.WindowsIdentity]::GetCurrent() Function userconnect { Write-Output ([System.Security.Principal.WindowsIdentity]::GetCurrent()).Name # Retourne une chaine de la forme Domaine\User } $task_path = "\\serveur\tache.xml" $nom = hostname $task_user = userconnect $task_pass = "passdeuserconnect" $sch = New-Object -ComObject("Schedule.Service") $sch.connect("localhost") $folder = $sch.GetFolder("\chemindedestinationdelatache\$nom-admin") Get-Item $task_path | %{ $task_name = $_.Name.Replace('.xml', '') $task_xml = Get-Content $_.FullName $task = $sch.NewTask($null) $task.XmlText = $task_xml $folder.RegisterTaskDefinition($task_name, $task, 6, $task_user, $task_pass, 1, $null)