Thanks for the great replies, I had some time to do a little searching and came up with the following. I'm using Powershell v4. You can put anything after the ps64 alias, a script for example or a function. Credit for the alias goes to this page. Also thanks to https://stackoverflow.com/a/19835164/4317867 for the [ScriptBlock]::Create("")
tip, before doing this the Script block would not expand $server properly.
The goal of this is to remove Powershell's scheduled task/job file to allow it to be re-created.
Param(
[Parameter(Mandatory=$true,
HelpMessage="ServerName goes here")]
[string]$server,
[Parameter(Mandatory=$true,
HelpMessage="Enter a Date/Time 07-28-15 16:00 For July 28th, 2015 at 4:00 PM")]
[ValidatePattern('\d{2}-\d{2}-\d{2}\s\d{2}[:]\d{2}')]
$date)
if($env:PROCESSOR_ARCHITECTURE -eq "x86")
{
set-alias ps64 "$env:windir\sysnative\WindowsPowerShell\v1.0\powershell.exe"
ps64 -command "IF(Test-Path -Path C:\Windows\System32\Tasks\Microsoft\Windows\PowerShell\ScheduledJobs\RebootOnce2){Remove-Item -Force -Path C:\Windows\System32\Tasks\Microsoft\Windows\PowerShell\ScheduledJobs\RebootOnce2}" #End 64 bit powershell.
}
Else{
Get-ScheduledJob | Unregister-ScheduledJob
}
$user = Get-Credential -UserName $env:USERNAME -Message "UserName/password for scheduled Reboot"
$trigger = New-JobTrigger -once -at $date
$script = [ScriptBlock]::Create("D:\Scripts\Scheduled-Reboot-Single.ps1 -server $server | Out-File -Force \\LogServer\d$\scripts\$server-Reboot.log")
Register-ScheduledJob -Name RebootOnce2 -Credential $user -Trigger $trigger -ScriptBlock $script