Поднять сценарии Powershell

Возможно ли повысить права доступа powershell script, чтобы пользователь без прав администратора мог запускать script? Наши администраторы сети пытаются найти более эффективные с точки зрения времени способы выполнения определенных задач, которые прямо сейчас должны использовать удаленный рабочий стол для... автоматизации их с помощью PS-скриптов, но пользователи не имеют прав администратора.

Ответ 1

Задача больше похожа на setuid, чем на sudo... и, к счастью, возможно setuid : вы можете просто создать запланированную задачу (без установленного расписания) и настроить ее на запуск повышенная. Затем дайте вашим пользователям права выполнить эту задачу. Я изложил процесс

Ответ 2

если вы используете V2, вы можете использовать следующее, которое находится на блоге Team PowerShell

Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "Get-Process"'

Это приведет к запуску "Get-Process" в качестве администратора.

Если у вас нет V2, вы можете создать объект StartInfo и установить Verb для Runas, как это.

function Start-Proc  {   
     param ([string]$exe = $(Throw "An executable must be specified"),[string]$arguments)       

     # Build Startinfo and set options according to parameters  
     $startinfo = new-object System.Diagnostics.ProcessStartInfo   
     $startinfo.FileName = $exe  
     $startinfo.Arguments = $arguments  
     $startinfo.verb = "RunAs"  
     $process = [System.Diagnostics.Process]::Start($startinfo)  

}

I имеет сообщение в блоге, в котором говорится об использовании объекта System.Diagnostics.ProcessStartInfo.

Ответ 3

Расширения сообщества Powershell включают в себя командлет для этого, псевдоним "su". http://www.codeplex.com/Pscx

Ответ 4

Похоже, вы ищете эквивалент sudo в окнах. Судо не присуще Windows, как и для большинства сред Unix. Но есть несколько доступных инструментов, которые являются близкими эквивалентами.

Будьте осторожны при использовании этих типов инструментов. Незакрепленный script + sudo - это риск для безопасности.

Ответ 5

сначала choco install pscx через http://chocolatey.org/ (возможно, вам придется перезапустить среду оболочки)

затем включите psxc

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser #allows scripts to run from the interwebs, such as pcsx

Затем используйте Invoke-Elevated

Invoke-Elevated {Add-PathVariable $args[0] -Target Machine} -ArgumentList $MY_NEW_DIR