Я новичок в Powershell, но во многих отношениях он мне очень нравится. По причинам, я создал сценарий, который загружает набор учетных данных локального администратора из файла на жестком диске и создает объект PSCredential, $ MyCred.
Я хочу использовать $ MyCred для повышения уровня отдельного сценария. (что делает несколько изменений в реестре, чтобы открыть соединения RDP). Я попытался передать $ MyCred командлету Start-Process:
Start-Process Powershell.exe -Credential $MyCredential
Затем я получил следующую ошибку:
Start-Process: Эта команда не может быть выполнена из-за ошибки: имя каталога недопустимо.
Если я запускаю процесс запуска с -credential и пустой переменной, мне предлагается ввести имя пользователя и пароль. Когда я их набираю, я получаю приглашение с повышенными привилегиями PowerShell без проблем и могу внести изменения в реестр моей тестовой системы.
Я проверил содержимое $ myCred, и в нем есть U / N и P / W сохранены правильно (как и в том, что я ввел вручную). Использование New-PSSEssion типа
New-PSSession -Credential $MyCredential
возвращает отказ в доступе, который я прочитал, также отключен по умолчанию на многих системах.
В идеальном мире код будет выглядеть примерно так:
Start-Process Powershell.exe -Credential $MyCredential -File C:\MyScript.ps1
Это должно запустить расширенный PowerShell, который выполняет несколько команд во втором сценарии и затем завершается. Что мне здесь не хватает?
Благодарен за любую помощь, которую я могу получить, спасибо! Я мог бы быть чем-то совершенно очевидным.
Исходно, у нас есть несколько компьютеров, которые мы сами не можем достать, и к которым мы также не можем подключиться через RDP. У нас есть пользователи на сайтах, которые могут запустить скрипт для нас. Но важно, чтобы они не получали локальный пароль администратора. Поэтому мы хотим создать сценарий, который читает зашифрованный файл паролей, генерирует объект PSCredential локального администратора и передает его в сценарий, который вносит необходимые изменения в реестр, чтобы обеспечить доступ RDP.