Você provavelmente só precisará colocar seu prefixo de domínio antes de seu nome de usuário ou usar o UPN (por exemplo, CONTOSO \ Test ou [email protected]).
Estou tentando executar um script PowerShell de um computador (nome: Builds) em um computador remoto (nome: Test), ambos os computadores estão executando o Windows 10. O script é o seguinte:
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
Quando executo o script acima no computador de teste, ele funciona localmente bem. Mas quando eu tento executar esse script no computador do Builds, ele dá o seguinte erro:
Emboraonomedeusuárioeasenhaestejamcorretos.Apenasascoisassãoqueasenhacontémcaracteresespeciais.Éassimqueestouchamandooscript
Você provavelmente só precisará colocar seu prefixo de domínio antes de seu nome de usuário ou usar o UPN (por exemplo, CONTOSO \ Test ou [email protected]).
Você leu o erro? O nome de usuário e / ou senha que você está passando para o cmdlet Start-Process está incorreto. Conserte isso.
A resposta de Cory Knutson está certa. E MDMarra está correto. A razão por trás de suas respostas ajudará você a solucionar problemas de autenticação no futuro.
A sua autenticação não está correta.
Mais especificamente, você não está passando credenciais CHEIAS para o host de destino de forma que o host de destino possa autenticar o usuário que você está usando. Existem três partes para autenticação:
O nome de usuário e o domínio geralmente são associados. Geralmente, username @ domain é usado. Para domínios do Windows, domínio / nome de usuário era o padrão que iniciava com o Windows NT até o Windows Server 2003 Active Directory. O Windows ainda reconhece o formato antigo do NT, mas por questões de consistência, especialmente se você usar hosts não Windows em sua empresa, o formato username @ domain deve ser usado.
Você está dizendo ao host de teste, "Execute este script como o seguinte usuário: test e a seguinte senha". Dado apenas um nome de usuário, um host Windows independente assume o localhost como o domínio. Com apenas um nome de usuário, um host do Windows associado ao domínio assume o domínio local. Você precisa especificar se está usando algo diferente.
Tags windows-10 powershell