Я столкнулся с этим спустя много месяцев после публикации, но я думаю, что мой комментарий полезен.
@ Deadly-Bagel Нет, скрипт - это просто файл, поэтому он не «запускается».
Хотя скрипт - это просто файл, он, безусловно, может содержать функции. Одну из этих функций можно настроить для запуска в качестве первого процесса в этом файле сценария. Эта функция может использоваться для определения того, работает ли текущий сеанс от имени администратора. Если это не так, он может самостоятельно подняться (при условии, что вошедший в систему пользователь имеет права администратора).
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
Я надеюсь, что это помогает вашей ситуации. Если нет, я был бы рад вернуться.