Я не буду вдаваться в подробности того, зачем мне это нужно, но пользователи должны иметь возможность запускать PowerShell под учетной записью службы, и когда PowerShell загружается, он должен запустить сценарий. Я уже могу запустить PowerShell с сохраненными учетными данными (сохраненными в виде безопасной строки), но я не могу заставить сценарий (расположенный в $args) запуститься. Я перепробовал множество способов, и вот что у меня получилось. Любая помощь будет очень признательна.
$user = "domain\service.account"
$pwd1 = "big long huge string of characters"
$pwd = ($pwd1 | ConvertTo-SecureString)
$Credential = New-Object System.Management.Automation.PSCredential $user, $pwd
$args = "\\domain.local\location\location\location\Script\script.ps1"
Start-Process powershell.exe -Credential $Credential -ArgumentList ("-file $args")
Вы можете открыть новое окно powershell под указанными учетными данными пользователя следующим образом:
start powershell -credential ""
Я обнаружил, что это работает для меня.
$username = 'user'
$password = 'password'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process Notepad.exe -Credential $credential
Обновлено: изменено на использование одинарных кавычек, чтобы избежать проблем со специальными символами, отмеченных Пэдди.
Здесь's также хороший способ, чтобы достичь этого посредством пользовательского интерфейса.
Правой Кнопкой Мыши на значок PowerShell, когда на панели задач
Shift + правый клик в Windows PowerShell с
и"Запуск от имени другого пользователя"";
В Windows Server 2012 или 2016 вы можете искать для Windows PowerShell, а потом "на рабочий стол" по. После этого вы увидите и"Запуск от имени другого пользователя и" вариант на правую кнопку мыши на иконки страницы.