cloud/subdomains/pwsh.osdcloud.com.ps1
<#PSScriptInfo
.VERSION 23.6.3.1 .GUID 0c0cd2be-1a2d-4be4-8401-a869f4f104b0 .AUTHOR David Segura @SeguraOSD .COMPANYNAME osdcloud.com .COPYRIGHT (c) 2023 David Segura osdcloud.com. All rights reserved. .TAGS OSDeploy OSDCloud WinGet PowerShell .LICENSEURI .PROJECTURI https://github.com/OSDeploy/OSD .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES Script should be executed in a Command Prompt using the following command powershell Invoke-Expression -Command (Invoke-RestMethod -Uri pwsh.osdcloud.com) This is abbreviated as powershell iex (irm pwsh.osdcloud.com) #> #Requires -RunAsAdministrator <# .SYNOPSIS PowerShell Script which supports WinGet and PowerShell 7 .DESCRIPTION PowerShell Script which supports WinGet and PowerShell 7 .NOTES Version 23.6.3.1 .LINK https://raw.githubusercontent.com/OSDeploy/OSD/master/cloud/subdomains/pwsh.osdcloud.com.ps1 .EXAMPLE powershell iex (irm pwsh.osdcloud.com) #> [CmdletBinding()] param() $ScriptName = 'pwsh.osdcloud.com' $ScriptVersion = '23.6.3.1' #region Initialize $Transcript = "$((Get-Date).ToString('yyyy-MM-dd-HHmmss'))-$ScriptName.log" $null = Start-Transcript -Path (Join-Path "$env:SystemRoot\Temp" $Transcript) -ErrorAction Ignore if ($env:SystemDrive -eq 'X:') { $WindowsPhase = 'WinPE' } else { $ImageState = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State' -ErrorAction Ignore).ImageState if ($env:UserName -eq 'defaultuser0') {$WindowsPhase = 'OOBE'} elseif ($ImageState -eq 'IMAGE_STATE_SPECIALIZE_RESEAL_TO_OOBE') {$WindowsPhase = 'Specialize'} elseif ($ImageState -eq 'IMAGE_STATE_SPECIALIZE_RESEAL_TO_AUDIT') {$WindowsPhase = 'AuditMode'} else {$WindowsPhase = 'Windows'} } Write-Host -ForegroundColor Green "[+] $ScriptName $ScriptVersion ($WindowsPhase Phase)" Invoke-Expression -Command (Invoke-RestMethod -Uri functions.osdcloud.com) #endregion #region Admin Elevation $whoiam = [system.security.principal.windowsidentity]::getcurrent().name $isElevated = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") if ($isElevated) { Write-Host -ForegroundColor Green "[+] Running as $whoiam (Admin Elevated)" } else { Write-Host -ForegroundColor Red "[!] Running as $whoiam (NOT Admin Elevated)" Break } #endregion #region Transport Layer Security (TLS) 1.2 Write-Host -ForegroundColor Green "[+] Transport Layer Security (TLS) 1.2" [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 #endregion #region WinPE if ($WindowsPhase -eq 'WinPE') { Write-Host -ForegroundColor Red "[!] David Segura hasn't completed the PowerShell 7 WinPE installation" $null = Stop-Transcript -ErrorAction Ignore } #endregion #region Specialize if ($WindowsPhase -eq 'Specialize') { $null = Stop-Transcript -ErrorAction Ignore } #endregion #region AuditMode if ($WindowsPhase -eq 'AuditMode') { $null = Stop-Transcript -ErrorAction Ignore } #endregion #region OOBE if ($WindowsPhase -eq 'OOBE') { osdcloud-SetExecutionPolicy osdcloud-SetPowerShellProfile osdcloud-InstallPackageManagement osdcloud-TrustPSGallery osdcloud-InstallModulePester osdcloud-InstallPowerShellModule -Name PSReadLine osdcloud-InstallWinGet osdcloud-InstallPwsh Write-Host -ForegroundColor Green "[+] pwsh.osdcloud.com Complete" $null = Stop-Transcript -ErrorAction Ignore } #endregion #region Windows if ($WindowsPhase -eq 'Windows') { osdcloud-SetExecutionPolicy osdcloud-SetPowerShellProfile osdcloud-InstallPackageManagement osdcloud-TrustPSGallery osdcloud-InstallModulePester osdcloud-InstallPowerShellModule -Name PSReadLine osdcloud-InstallWinGet osdcloud-InstallPwsh Write-Host -ForegroundColor Green "[+] pwsh.osdcloud.com Complete" $null = Stop-Transcript -ErrorAction Ignore } #endregion |