Dziwna sprawa. W PowerShellu utworzony ScheduledTask nie uruchamia się. PowerShell go widzi, ale nie wiadomo, co powoduje, że zaplanowane zadania nie startują. Oto kod tworzący taki przykładowy job:
$options = New-ScheduledJobOption -StartIfOnBattery -RunElevated
$min = New-TimeSpan -Minutes 1
$trigger = New-JobTrigger -RepetitionInterval $min -RepeatIndefinitely -At (Get-Date) -Once
Register-ScheduledJob -Name "My Task" -Trigger $trigger -ScheduledJobOption $options -ScriptBlock {
$files_archive = 'c:\files_archive'
$currdir = Get-Date -Format yyyyMMddhhmm
cd $files_archive
New-Item -ItemType directory -Path $currdir
}
Dokładniejsza analiza logu harmonogramu zadań wskazała, że przyczyną jest brak uprawnień. Dziwne, bo polecenia uruchamiał lokalny administrator. Niestety konto tego administratora pochodziło z Azure AD. Ponieważ na komputerze jest jeszcze zdefiniowane inne konto administratora, to najprostszym rozwiązaniem było wskazanie, że zadanie ma się uruchamiać z wykorzystaniem tego innego konta. Na to inne konto można wskazać parametrem credential:
$options = New-ScheduledJobOption -StartIfOnBattery -RunElevated
$min = New-TimeSpan -Minutes 1
$trigger = New-JobTrigger -RepetitionInterval $min -RepeatIndefinitely -At (Get-Date) -Once
Register-ScheduledJob -Name "My Task" -Trigger $trigger -ScheduledJobOption $options -Credential ("$env:COMPUTERNAME\autoadmin") -ScriptBlock {
$files_archive = 'c:\files_archive'
$currdir = Get-Date -Format yyyyMMddhhmm
cd $files_archive
New-Item -ItemType directory -Path $currdir
}
I teraz program działa jak ta lala. Jeśli zechcesz je usunąć wykonaj”
Get-ScheduledJob -Name 'My Task' | Unregister-ScheduledJob





























