Назад | Перейти на главную страницу

проблема со строками в скрипте powershell sudo

Я создаю сценарий вроде sudo, идея состоит в том, что функция sudo будет запускать блок сценария на повышении. У меня проблемы со строковыми переменными, которые я передаю в этом блоке сценария. Как будто двойные кавычки исчезают. Что не так с моим подходом? Вот код.

function sud([ScriptBlock]$SomeCode){
$here = Get-Location;
Start-Process Powershell -Verb Runas -ArgumentList "-command &{cd $here; $SomeCode}" 
}

и я хочу запускать такие команды:

$var ="Path"
$newpath = $env:path + ";c:\somedir"
$target = "Machine"
sud -somecode { [Environment]::SetEnvironmentVariable($var, $newpath, $target)}

в целях тестирования можно добавить параметр -noexit в список аргументов ..

Start-Process Powershell -Verb Runas -ArgumentList "-noexit","-command &{cd $here; $SomeCode}" 

Попробуйте заключить команду в одинарные галочки и переместить двойные кавычки в начало фактической команды. Это то, что я делаю в своем окружении.

Start-Process Powershell -Verb Runas -ArgumentList `-command "&{cd $here; $SomeCode}"`