private/steps/9-postaction/step-postaction-stopcomputer.ps1
function step-postaction-stopcomputer { [CmdletBinding()] param () #================================================= # Start the step $Message = "[$(Get-Date -format G)] [$($MyInvocation.MyCommand.Name)] Start" Write-Debug -Message $Message; Write-Verbose -Message $Message # Get the configuration of the step $Step = $global:OSDCloudWorkflowCurrentStep #================================================= #region Main if ($global:OSDCloudWorkflowInvoke.WinpeRestart) { Write-Host -ForegroundColor Yellow "[$(Get-Date -format G)] Device will shut down in 30 seconds" Write-Host -ForegroundColor DarkGray "[$(Get-Date -format G)] Press CTRL + C to cancel" #TODO EJECT ISO # (New-Object -ComObject 'Shell.Application').Namespace(17).Items() | Where-Object { $_.Type -eq 'CD Drive' } | ForEach-Object { $_.InvokeVerb('Eject') } Start-Sleep -Seconds 30 Stop-Computer } #endregion #================================================= # End the function $Message = "[$(Get-Date -format G)] [$($MyInvocation.MyCommand.Name)] End" Write-Verbose -Message $Message; Write-Debug -Message $Message #================================================= } |