hello everyone,
need a little help on this one. I and trying to write a script that would survive a reboot and resume when the system/server comes backup. I get the following script from . credit to lasse W… I cant seem to get it to work. if i can get it to do what its suppose to do, i can figure out the rest. or if anyone knows a better way to get this accomplished.
$global:started = $false $global:startingStep = $step $global:RegRunKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" $global:restartkey = "Restart-And-Resume" $global:powershell = (Join-Path $env:windir "system32\windowsPowerShell\v1.0\powershell.exe") function Test-key([string]$path, [string] $key) { return ((Test-Path $path) -and ((Get-Key $path $key) -ne $null)) } function Remove-key([string] $path, [string] $key) { Remove-ItemProperty -Path $path -Name $key } function Set-Key([string]$path, [string]$key, [string]$value) { Set-ItemProperty -Path $path -Name $key -Value $value } function Get-key([string]$path, [string]$key) { return (Get-ItemProperty $path).$key } function Restart-And-Resume([string]$script, [string]$step) { Restart-and-Run $global:restartkey "$global:powershell $script -Step $step" } function Clear-Any-Restart([string]$key = $global:restartkey) { If (Test-key $global:RegRunKey $key) { Remove-key $global:RegRunKey $key} } function Should-Run-step([string]$prospectStep) { if ($global:startingStep -eq $prospectStep -or $global:started) { $global:started = $true } Return $global:started } function Restart-and-Run([string]$key, [string]$run) { Set-Key $global:RegRunKey $key $run Restart-Computer exit } function Wait-for-keypress { $Host.UI.RawUI.ReadKey("IncludeKeyDown") | Out-Null $Host.UI.RawUI.FlushInputBuffer() } param($step = "A") $script = $MyInvocation.MyCommand.Definition $scriptPath = Split-Path -Parent $script .(Join-Path $scriptPath asjob .ps1) Clear-Any-Restart if (Should-Run-step "A") { Write-Host "A" Wait-for-keypress " will continue after reboot, press any key " Restart-And-Resume $script "B" } if (Should-Run-step "B") { Write-Host "B" } If (Should-Run-step "C") { Write-Host "C" } Wait-for-Keypress "test script complete, press any key to exit"
the following are the error i get
The term ‘param’ is not recognized as the name of a cmdlet, function, script fi
le, or operable program. Check the spelling of the name, or if a path was inclu
ded, verify that the path is correct and try again.
At C:\Users\Dev\Desktop\Script Test Area\asjob.ps1:62 char:6
- param <<<< ($step = "A")
- CategoryInfo : ObjectNotFound: (param:String) , CommandNotFou
ndException - FullyQualifiedErrorId : CommandNotFoundException
- CategoryInfo : ObjectNotFound: (param:String) , CommandNotFou
Join-Path : A positional parameter cannot be found that accepts argument '.ps1'
.
At C:\Users\Dev\Desktop\Script Test Area\asjob.ps1:65 char:12
- .(Join-Path <<<< $scriptPath asjob .ps1)
- CategoryInfo : InvalidArgument: (
[Join-Path], ParameterBindi
ngException - FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.JoinPathCommand
- CategoryInfo : InvalidArgument: (
thank you