Это вопрос привилегий. Если вы администратор в вашем локальном ящике, я могу помочь.
Попробуйте это: щелкните правой кнопкой мыши значок Powershell и выберите « Запуск от имени администратора». Затем попробуйте запустить свой скрипт; это будет работать.
Однако это не ответит, как вы можете сделать это из скрипта. Вы можете добавить некоторый код в ваш скрипт, который автоматически попытается повысить ваш сеанс PS, но вам все равно придется взаимодействовать с диалоговым окном безопасности, которое появляется каждый раз, когда вы пытаетесь запустить что-то в качестве администратора Vista или более поздней версии. Итак, не уверен, насколько это проще, чем просто начать сеанс в качестве администратора, но добавьте это в начало вашего скрипта:
$WindowsID=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$WindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($WindowsID)
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator
if ($WindowsPrincipal.IsInRole($adminRole))
{
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
}
else
{
$newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";
$newProcess.Arguments = $myInvocation.MyCommand.Definition;
$newProcess.Verb = "runas";
[System.Diagnostics.Process]::Start($newProcess);
exit