Назад | Перейти на главную страницу

Запуск PowerScript от имени другого пользователя с удаленного компьютера

Я пытаюсь запустить сценарий PowerShell с компьютера (имя: Builds) на удаленном компьютере (имя: Test), оба компьютера работают под управлением Windows 10. Сценарий выглядит следующим образом:

param ([Parameter(Mandatory=$true)][string]$buildPath)

$strScriptUser = "Test"
$strPass = "hld@1234"
$PSS = ConvertTo-SecureString $strPass -AsPlainText -Force
$Credential = new-object system.management.automation.PSCredential $strScriptUser,$PSS

Write $Credential.UserName

Start-Process powershell.exe "C:\Users\Test\Documents\PowerShellForContinua\Core.ps1 '$buildPath'" -Credential $Credential -Wait

Когда я запускаю указанный выше сценарий на тестовом компьютере, локально он работает нормально. Но когда я пытаюсь выполнить этот скрипт с компьютера Builds, он дает следующую ошибку:

Хотя логин и пароль верны. Только дело в том, что пароль содержит спецсимвол. Так я называю сценарий

Вероятно, вам просто нужно поставить префикс своего домена перед именем пользователя или использовать UPN (например, CONTOSO \ Test или Test@contoso.com).

Вы прочитали ошибку? Имя пользователя и / или пароль, которые вы передаете командлету Start-Process, неверны. Исправьте это.

Ответ Кори Кнутсона правильный. И МДМарра прав. Причина их ответов поможет вам в устранении неполадок аутентификации в будущем.

Ваша аутентификация неверна.

Более конкретно, вы не передаете ПОЛНЫЕ учетные данные целевому хосту таким образом, чтобы целевой хост мог аутентифицировать пользователя, которого вы используете. Аутентификация состоит из трех частей:

  1. имя пользователя
  2. домен
  3. пароль

Имя пользователя и домен обычно объединяются. В общем-то, имя пользователя @ домен используется. Для доменов Windows домен / имя пользователя был стандартом, начиная с Windows NT и до Windows Server 2003 Active Directory. Windows по-прежнему распознает старый формат NT, но для единообразия, особенно если вы используете на своем предприятии хосты, отличные от Windows, имя пользователя @ домен формат должен использоваться.

Вы говорите хосту тестирования: «Запустите этот сценарий от имени следующего пользователя: тест и следующий пароль». Учитывая только имя пользователя, автономный хост Windows принимает в качестве домена localhost. Учитывая только имя пользователя, домен, присоединенный к хосту Windows, предполагает localdomain. Вы должны указать, используете ли вы что-то другое.