Я не могу заставить это работать: после перезагрузки компьютера мой сценарий не будет продолжать выполняться.
Я зарегистрировал ScheduledJob, запустив свой рабочий процесс.Рабочий процесс заключается в запуске start.exe с аргументом /play=file.rec в различных папках и перезагрузке между каждым выполнением.Он не должен выполняться параллельно.
Вот моя текущая версия кода, которая запускается, но не возобновляется после перезагрузки:
function Install-App {
Param ([PSObject]$folder)
#Locating .rec file
$recfile = @()
$recfile = (Get-ChildItem $folder.FullName -Recurse -File -Filter "*.rec")
#Executing start.exe in replay mode
$arg = "/play="""+$recfile+""""
$cmd = "$($folder.FullName)\start.exe"
Write-Output "Executing $cmd $arg"
& $cmd $arg
}
workflow Software_Workflow{
# #create an array
$wrkdir = @()
#Executing installation for each directory
$wrkdir =Get-ChildItem -Recurse -Directory
ForEach($d in $wrkdir){
Install-App -folder $d
Checkpoint-Workflow
Restart-Computer -Wait
}
Unregister-ScheduledJob -Name NewServerSetupResume
}
# Create the scheduled job properties
Write-Output "End of loading, setting parameters"
$user = "***"
$secpasswd = ConvertTo-SecureString "***" -AsPlainText -Force
$options = New-ScheduledJobOption -RunElevated -ContinueIfGoingOnBattery -StartIfOnBattery
$cred = New-Object System.Management.Automation.PSCredential ($user, $secpasswd)
$AtStartup = New-JobTrigger -AtStartup
# Register the scheduled job
Register-ScheduledJob -Name NewServerSetupResume -Credential $cred -Trigger $AtStartup -ScriptBlock {[System.Management.Automation.Remoting.PSSessionConfigurationData]::IsServerManager = $true; Import-Module PSWorkflow; Get-Job -Name NewServerSetupResume -State Suspend | Resume-Job} -ScheduledJobOption $options
# Execute the workflow as a new job
Software_Workflow -JobName InstallationWorkflow -PSPersist $True