From ba4dba5f8727fad4e5f32ac895d47007c78ec355 Mon Sep 17 00:00:00 2001 From: Padsala Tushal <57517785+padsalatushal@users.noreply.github.com> Date: Thu, 15 Jun 2023 02:49:26 +0530 Subject: [PATCH] implement check for admin (#818) check if script is running as admin or not and if not then it attempt to relaunch with admin privilege. --- scripts/start.ps1 | 7 +++++++ winutil.ps1 | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/scripts/start.ps1 b/scripts/start.ps1 index 9745e400..791427c7 100644 --- a/scripts/start.ps1 +++ b/scripts/start.ps1 @@ -17,3 +17,10 @@ $sync.PSScriptRoot = $PSScriptRoot $sync.version = "#{replaceme}" $sync.configs = @{} $sync.ProcessRunning = $false + + +if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { + Write-Output "Winutil needs to be ran as Administrator. Attempting to relaunch." + Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "iwr -useb https://christitus.com/win | iex" + break +} diff --git a/winutil.ps1 b/winutil.ps1 index 294f279e..f9c8794b 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -10,7 +10,7 @@ Author : Chris Titus @christitustech Runspace Author: @DeveloperDurp GitHub : https://github.com/ChrisTitusTech - Version : 23.05.27 + Version : 23.06.02 #> Start-Transcript $ENV:TEMP\Winutil.log -Append @@ -21,9 +21,16 @@ Add-Type -AssemblyName System.Windows.Forms # variable to sync between runspaces $sync = [Hashtable]::Synchronized(@{}) $sync.PSScriptRoot = $PSScriptRoot -$sync.version = "23.05.27" +$sync.version = "23.06.02" $sync.configs = @{} $sync.ProcessRunning = $false + + +if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { + Write-Output "Winutil needs to be ran as Administrator. Attempting to relaunch." + Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "iwr -useb https://christitus.com/win | iex" + break +} Function Get-WinUtilCheckBoxes { <#