так что это мой первый пост здесь по stackoverflow :-) хм, ... подумал бы, что я работаю с powershell как "опытный новичок", написал несколько хороших рабочих скриптов для автоматизации ОС за последние 2 года.нет навыков программирования, только немного сценариев, чтобы облегчить мою жизнь как системного администратора.
В настоящее время у меня есть хитрая проблема - извините, если это уже было решено в другом потоке, но не нашел решенияк нему.
здесь цель кода:
включить обычного пользователя Windows ( не является членом локальной группы admin ) для выполнения некоторых скриптов с правами администратора.
- переключение текущего пользователя на пользователя с правами администратора >> решено.создал объект pscredential ($ pscreds).работает хорошо.
- Запустите сеанс PowerShell с повышенными правами, чтобы иметь возможность решать административные задачи >>.powershell.exe -verb RunAs бла бла.работает хорошо.
- запустить скрипт с фиксированным именем с правами администратора >> решено.
сама проблема:
имя-сценарияне всегда один и тот же .... я хочу, чтобы код использовал путь и имя текущего запущенного скрипта ($Myinvocation.Mycommand.Definition)
.
$x = $myinvocation.MyCommand.Definition
Start-Process powershell.exe -Credential $pscreds -ArgumentList {
Start-Process powershell.exe -Verb RunAs -ArgumentList {
start-process powershell.exe -ArgumentList (-file "$x")
}
}
как изменить код, который используется переменной $ x-file "$x"
принимает значение, определенное в первой строке?
Я сам нашел обходной путь, записал путь и имя сценария во временный файл и прочитал его обратно в $ x с помощью "get-content".но мне не понравилось это уродливое решение, и я надеялся решить его лучше.
спасибо за помощь и наилучшие пожелания из Германии
Ральф