1

I need a prefix for PowerShell that I can insert prior to commands to automatically check for elevations and if not present, elevate the PowerShell (while asking for elevated credentials) and continue the script. I have found this script below, which works, but is that the best implementation? Environment: Executed on computer joined to domain, PowerShell script executed via mapped drive.

#===================================================================================================
    #runs powershell as admin and also preserves working directory
    if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Start-Process PowerShell -Verb RunAs "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
    exit;
}

# Your script here

Tried these but they didn't work, and I don't understand PowerShell enough to know why.

#=======================================================================================================================
    #for Batch file powershell calling with elevation:
    @echo off

    set scriptFileName=%~n0
    set scriptFolderPath=%~dp0
    set powershellScriptFileName=%scriptFileName%.ps1

    powershell -Command "Start-Process powershell \"-ExecutionPolicy Bypass -NoProfile -NoExit -Command `\"cd \`\"%scriptFolderPath%`\"; & \`\".\%powershellScriptFileName%\`\"`\"\" -Verb RunAs"
#=======================================================================================================================

    If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
    {   
    #"No Administrative rights, it will display a popup window asking user for Admin rights"

    $arguments = "& '" + $myinvocation.mycommand.definition + "'"
    Start-Process "$psHome\powershell.exe" -Verb runAs -ArgumentList $arguments

    break
    }
    #"After user clicked Yes on the popup, your file will be reopened with Admin rights"
    #"Put your code here"
mklement0
  • 382,024
  • 64
  • 607
  • 775

0 Answers0