none
Запуск POSh скрипта от имени другого пользователя RRS feed

  • Вопрос

  • Добрый день!
    Есть скрипт, надо его запускать от имени другого пользователя.

    Создал новый скрипт ps1 с таким содержимым 

    runas /savecred /user:user "C:\nk.ps1"

    Результата нет.

    Создал .bat c таким содержимым:

    runas /savecred /user:user "powershell C:\nk.ps1"

    Работает.

    Может есть другие варианты запуска скриптов POSh от имени другого пользователя?

    19 декабря 2017 г. 11:09

Ответы

  • как вы делаете выполнение чего либо на удаленной машине?

    если через invoke-comand то укажите в шапке скрипта параметр и используйте его далее.

    Param (
       $Cred
    )
    
    invoke-comand -credential $cred -computername "MegaServer" -scriptblock {то что вы выполняете на удаленной машине}
    скрипт на вашей машине будет запущен от вашей учетки, а вот команда на удаленном сервере выполнится от учетки того кого вы передадите в $cred


    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа KazunEditor 25 декабря 2017 г. 5:44
    21 декабря 2017 г. 16:28
    Модератор

Все ответы

  • Выбрать его в Task Scheduler?
    19 декабря 2017 г. 11:11
  • Скрипт будет запускаться вручную по необходимости.
    19 декабря 2017 г. 11:15
  • через Get-Credential получаете креды которые используете в Invoke-Comand. 

    Креды можно и сохранить и использовать по многу раз.

    1 Ваш вариант работать и не должен, так как по умолчанию ps1 открывается в блокноте.

    Так же шедульные таски можно запускать в том числе и вручную


    The opinion expressed by me is not an official position of Microsoft

    • Предложено в качестве ответа Konstantin Shishkin 21 декабря 2017 г. 10:26
    20 декабря 2017 г. 7:09
    Модератор
  • Делаю так:

    $C = Get-Credential -Credential user

    C:\script.ps1 -Credential $C

    Он просит ввести пароль для user, запускает скрипт, но выполняет не под правами user. Пароль от которого я вводил.

    Может я не так что-то понял?

    20 декабря 2017 г. 13:50
  • тут вопрос к тому что у вас внутри script.ps1. умеет ли ваш файл понимать параметр -cred и что он дальше с лим делает.

    я писал выше про  invoke-comand которому можно и скрипт скормить и креды


    The opinion expressed by me is not an official position of Microsoft

    20 декабря 2017 г. 17:10
    Модератор
  • если коротко, то этот скрипт выполняет на удаленном компьютере следующее:

    1. создание папки

    2. создание SQL базы на MSSQL 2014

    3. ну и проверки на наличие баз/папок

    21 декабря 2017 г. 8:39
  • как вы делаете выполнение чего либо на удаленной машине?

    если через invoke-comand то укажите в шапке скрипта параметр и используйте его далее.

    Param (
       $Cred
    )
    
    invoke-comand -credential $cred -computername "MegaServer" -scriptblock {то что вы выполняете на удаленной машине}
    скрипт на вашей машине будет запущен от вашей учетки, а вот команда на удаленном сервере выполнится от учетки того кого вы передадите в $cred


    The opinion expressed by me is not an official position of Microsoft

    • Помечено в качестве ответа KazunEditor 25 декабря 2017 г. 5:44
    21 декабря 2017 г. 16:28
    Модератор
  • Скорее всего, подойдет.

    Спасибо!

    25 декабря 2017 г. 11:34