Fix: handle GPO ExecutionPolicy override gracefully, remove ErrorActionPreference Stop
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
# TLS 1.2 erzwingen (notwendig auf Windows Server 2016 / älteren Systemen)
|
# TLS 1.2 erzwingen (Windows Server 2016 / aeltere Systeme)
|
||||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||||
|
|
||||||
# Adminrechte prüfen und ggf. neu starten
|
# Adminrechte pruefen und ggf. neu starten
|
||||||
$isAdmin = ([Security.Principal.WindowsPrincipal] `
|
$isAdmin = ([Security.Principal.WindowsPrincipal] `
|
||||||
[Security.Principal.WindowsIdentity]::GetCurrent() `
|
[Security.Principal.WindowsIdentity]::GetCurrent() `
|
||||||
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
||||||
@ -13,19 +13,34 @@ if (-not $isAdmin) {
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
$ErrorActionPreference = 'Stop'
|
|
||||||
|
|
||||||
Write-Host "============================================================"
|
Write-Host "============================================================"
|
||||||
Write-Host " upterm Setup"
|
Write-Host " upterm Setup"
|
||||||
Write-Host "============================================================"
|
Write-Host "============================================================"
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
|
|
||||||
# 1. Execution Policy
|
# 1. Execution Policy pruefen
|
||||||
Write-Host "[1/4] Setze PowerShell Execution Policy..."
|
Write-Host "[1/4] Pruefe Execution Policy..."
|
||||||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
|
$policy = Get-ExecutionPolicy -Scope CurrentUser
|
||||||
Write-Host " OK"
|
if ($policy -in @('Bypass', 'Unrestricted', 'RemoteSigned')) {
|
||||||
|
Write-Host " OK (aktuell: $policy)"
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
|
||||||
|
Write-Host " OK"
|
||||||
|
} catch {
|
||||||
|
# GPO ueberschreibt - wenn aktuelle Policy ausfuehrbar ist, weitermachen
|
||||||
|
$effective = Get-ExecutionPolicy
|
||||||
|
if ($effective -in @('Bypass', 'Unrestricted', 'RemoteSigned')) {
|
||||||
|
Write-Host " GPO-Ueberschreibung - aktuelle Policy '$effective' ist ausreichend"
|
||||||
|
} else {
|
||||||
|
Write-Host "FEHLER: Execution Policy '$effective' blockiert Ausfuehrung."
|
||||||
|
Read-Host "Enter zum Beenden"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# 2. Scoop prüfen / installieren
|
# 2. Scoop pruefen / installieren
|
||||||
Write-Host "[2/4] Pruefe Scoop..."
|
Write-Host "[2/4] Pruefe Scoop..."
|
||||||
$scoopShims = "$env:USERPROFILE\scoop\shims"
|
$scoopShims = "$env:USERPROFILE\scoop\shims"
|
||||||
$scoopInstalled = (Test-Path "$scoopShims\scoop.ps1") -or (Test-Path "$scoopShims\scoop.cmd")
|
$scoopInstalled = (Test-Path "$scoopShims\scoop.ps1") -or (Test-Path "$scoopShims\scoop.cmd")
|
||||||
@ -38,7 +53,7 @@ if (-not $scoopInstalled) {
|
|||||||
Write-Host " Scoop bereits vorhanden."
|
Write-Host " Scoop bereits vorhanden."
|
||||||
}
|
}
|
||||||
|
|
||||||
# PATH dieser Session aktualisieren damit scoop sofort verfuegbar ist
|
# PATH dieser Session aktualisieren
|
||||||
if ($env:PATH -notlike "*$scoopShims*") {
|
if ($env:PATH -notlike "*$scoopShims*") {
|
||||||
$env:PATH = "$env:PATH;$scoopShims"
|
$env:PATH = "$env:PATH;$scoopShims"
|
||||||
}
|
}
|
||||||
@ -46,14 +61,17 @@ if ($env:PATH -notlike "*$scoopShims*") {
|
|||||||
# 3. 7zip mit lessmsi-Workaround
|
# 3. 7zip mit lessmsi-Workaround
|
||||||
Write-Host "[3/4] Installiere 7zip via lessmsi..."
|
Write-Host "[3/4] Installiere 7zip via lessmsi..."
|
||||||
scoop config use_lessmsi true
|
scoop config use_lessmsi true
|
||||||
|
$7zipOk = $false
|
||||||
try {
|
try {
|
||||||
scoop install 7zip 2>&1 | Out-Null
|
scoop install 7zip 2>&1 | Out-Null
|
||||||
} catch {
|
$7zipOk = $true
|
||||||
|
} catch {}
|
||||||
|
|
||||||
|
if (-not $7zipOk) {
|
||||||
Write-Host " 7zip fehlgeschlagen - bereinige und versuche erneut..."
|
Write-Host " 7zip fehlgeschlagen - bereinige und versuche erneut..."
|
||||||
scoop uninstall 7zip 2>$null
|
scoop uninstall 7zip 2>$null
|
||||||
scoop cache rm 7zip 2>$null
|
scoop cache rm 7zip 2>$null
|
||||||
Remove-Item -Recurse -Force "$env:USERPROFILE\scoop\apps\7zip" `
|
Remove-Item -Recurse -Force "$env:USERPROFILE\scoopppszip" -ErrorAction SilentlyContinue
|
||||||
-ErrorAction SilentlyContinue
|
|
||||||
scoop install 7zip
|
scoop install 7zip
|
||||||
}
|
}
|
||||||
Write-Host " OK"
|
Write-Host " OK"
|
||||||
|
|||||||
Reference in New Issue
Block a user