Public/OSDCloudTS/Set-SetupCompleteCreateStart.ps1
function Set-SetupCompleteCreateStart { $ScriptsPath = "C:\Windows\Setup\scripts" if (!(Test-Path -Path $ScriptsPath)){New-Item -Path $ScriptsPath} $RunScript = @(@{ Script = "SetupComplete"; BatFile = 'SetupComplete.cmd'; ps1file = 'SetupComplete.ps1';Type = 'Setup'; Path = "$ScriptsPath"}) Write-Output "Creating $($RunScript.Script) Files" $BatFilePath = "$($RunScript.Path)\$($RunScript.batFile)" $PSFilePath = "$($RunScript.Path)\$($RunScript.ps1File)" #Create Batch File to Call PowerShell File New-Item -Path $BatFilePath -ItemType File -Force $CustomActionContent = New-Object system.text.stringbuilder [void]$CustomActionContent.Append('%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -File') [void]$CustomActionContent.Append(" $PSFilePath") Add-Content -Path $BatFilePath -Value $CustomActionContent.ToString() #Create PowerShell File to do actions New-Item -Path $PSFilePath -ItemType File -Force Add-Content -path $PSFilePath "Write-Output 'Starting SetupComplete Script Process'" Add-Content -path $PSFilePath "Set-ExecutionPolicy RemoteSigned -Force -Scope CurrentUser" Add-Content -path $PSFilePath '$StartTime = Get-Date; Write-Host "Start Time: $($StartTime.ToString("hh:mm:ss"))"' Add-Content -path $PSFilePath '$ModulePath = (Get-ChildItem -Path "$($Env:ProgramFiles)\WindowsPowerShell\Modules\osd" | Where-Object {$_.Attributes -match "Directory"} | select -Last 1).fullname' Add-Content -path $PSFilePath 'import-module "$ModulePath\OSD.psd1" -Force' Add-Content -path $PSFilePath "Invoke-Expression (Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/OSDeploy/OSD/master/cloud/modules/_anywhere.psm1')" Add-Content -path $PSFilePath "Invoke-Expression (Invoke-RestMethod -Uri 'https://raw.githubusercontent.com/OSDeploy/OSD/master/cloud/modules/_winpe.psm1')" Add-Content -Path $PSFilePath "Start-Sleep -Seconds 10" Add-Content -Path $PSFilePath "Start-Transcript -Path 'C:\OSDCloud\Logs\SetupComplete.log' -ErrorAction Ignore" Add-Content -Path $PSFilePath "Write-Output 'Setting PowerPlan to High Performance'" Add-Content -Path $PSFilePath "powercfg /setactive DED574B5-45A0-4F42-8737-46345C09C238" Add-Content -Path $PSFilePath "Write-Output 'Confirming PowerPlan [powercfg /getactivescheme]'" Add-Content -Path $PSFilePath "powercfg /getactivescheme" Add-Content -Path $PSFilePath "powercfg -x -standby-timeout-ac 0" Add-Content -Path $PSFilePath "powercfg -x -standby-timeout-dc 0" Add-Content -Path $PSFilePath "powercfg -x -hibernate-timeout-ac 0" Add-Content -Path $PSFilePath "powercfg -x -hibernate-timeout-dc 0" Add-Content -Path $PSFilePath "Set-PowerSettingSleepAfter -PowerSource AC -Minutes 0" Add-Content -Path $PSFilePath "Set-PowerSettingTurnMonitorOffAfter -PowerSource AC -Minutes 0" #Add-Content -Path $PSFilePath "Stop-Transcript" #Add-Content -Path $PSFilePath "Restart-Computer -Force" } |