Me deparei com isso muitos meses após o post, mas acho que meu comentário é útil.
@ Deadly-Bagel Não, o script é apenas um arquivo para que ele não seja "executado".
Enquanto um script é apenas um arquivo, ele certamente pode conter funções. Uma dessas funções pode ser configurada para ser executada como o primeiro processo nesse arquivo de script. Essa função pode ser usada para determinar se a sessão atual está sendo executada como administrador. Se não for, pode se auto-elevar (assumindo que o usuário logado tenha direitos de administrador).
function Use-RunAs
{
# Check if script is running as Adminstrator and if not use RunAs
# Use Check Switch to check if admin
param([Switch]$Check)
$IsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()'
).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
if ($Check) { return $IsAdmin }
if ($MyInvocation.ScriptName -ne "")
{
if (-not $IsAdmin)
{
try
{
$arg = "-file '"$($MyInvocation.ScriptName)'""
Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList $arg -ErrorAction 'stop'
}
catch
{
Write-Warning "Error - Failed to restart script with runas"
break
}
exit # Quit this session of powershell
}
}
else
{
Write-Warning "Error - Script must be saved as a .ps1 file first"
break
}
}
Use-RunAs
Espero que isso ajude sua situação. Se não, eu ficaria feliz em revisitar.