запустите powershell.exe внутри ps1-скрипта с предопределенной переменной - PullRequest
0 голосов
/ 20 сентября 2019

так что это мой первый пост здесь по stackoverflow :-) хм, ... подумал бы, что я работаю с powershell как "опытный новичок", написал несколько хороших рабочих скриптов для автоматизации ОС за последние 2 года.нет навыков программирования, только немного сценариев, чтобы облегчить мою жизнь как системного администратора.

В настоящее время у меня есть хитрая проблема - извините, если это уже было решено в другом потоке, но не нашел решенияк нему.

здесь цель кода:

включить обычного пользователя Windows ( не является членом локальной группы admin ) для выполнения некоторых скриптов с правами администратора.

  1. переключение текущего пользователя на пользователя с правами администратора >> решено.создал объект pscredential ($ pscreds).работает хорошо.
  2. Запустите сеанс PowerShell с повышенными правами, чтобы иметь возможность решать административные задачи >>.powershell.exe -verb RunAs бла бла.работает хорошо.
  3. запустить скрипт с фиксированным именем с правами администратора >> решено.

сама проблема:

имя-сценарияне всегда один и тот же .... я хочу, чтобы код использовал путь и имя текущего запущенного скрипта ($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".но мне не понравилось это уродливое решение, и я надеялся решить его лучше.

спасибо за помощь и наилучшие пожелания из Германии

Ральф

1 Ответ

0 голосов
/ 20 сентября 2019

Я думаю, что, не вдаваясь в целый ряд проблем Windows Auth, делающих это внутри одного скрипта, я бы придерживался того, о чем вы уже говорите, как ключ - попробуйте позволить не-администратору редактировать это значение $ x вфайл, к которому они имеют доступ.Затем запустите сценарий по расписанию с учетной записью администратора , которая читает файл.

...