Я пытаюсь запустить сценарий 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, неверны. Исправьте это.
Ответ Кори Кнутсона правильный. И МДМарра прав. Причина их ответов поможет вам в устранении неполадок аутентификации в будущем.
Ваша аутентификация неверна.
Более конкретно, вы не передаете ПОЛНЫЕ учетные данные целевому хосту таким образом, чтобы целевой хост мог аутентифицировать пользователя, которого вы используете. Аутентификация состоит из трех частей:
Имя пользователя и домен обычно объединяются. В общем-то, имя пользователя @ домен используется. Для доменов Windows домен / имя пользователя был стандартом, начиная с Windows NT и до Windows Server 2003 Active Directory. Windows по-прежнему распознает старый формат NT, но для единообразия, особенно если вы используете на своем предприятии хосты, отличные от Windows, имя пользователя @ домен формат должен использоваться.
Вы говорите хосту тестирования: «Запустите этот сценарий от имени следующего пользователя: тест и следующий пароль». Учитывая только имя пользователя, автономный хост Windows принимает в качестве домена localhost. Учитывая только имя пользователя, домен, присоединенный к хосту Windows, предполагает localdomain. Вы должны указать, используете ли вы что-то другое.