diff --git a/run.ps1 b/run.ps1 index 716894d..01c5228 100644 --- a/run.ps1 +++ b/run.ps1 @@ -1,12 +1,12 @@ $initFile = Join-Path $PSScriptRoot ".\src\init.ps1" . $initFile -# Check for administrator privileges -if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { +# Check for administrator privileges and restart if needed +if (-not $isAdmin) { Write-Host "The script requires administrator privileges. Restarting..." # Restart the script with admin rights - Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs + Start-Process -FilePath "powershell.exe" -ArgumentList $restartArgs -Verb RunAs exit } diff --git a/src/init.ps1 b/src/init.ps1 index 610c9b5..330c36c 100644 --- a/src/init.ps1 +++ b/src/init.ps1 @@ -9,3 +9,7 @@ if (Test-Path $varsFile) { } else { Write-Warning "Vars file not found: $varsFile" } + +# Define variables for administrator check and restart +$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") +$restartArgs = "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" \ No newline at end of file