Executando um PowerScript como outro usuário do computador remoto

1

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

    
por Mohit 04.05.2017 / 14:53

3 respostas

1

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]).

    
por 04.05.2017 / 23:15
0

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.

    
por 04.05.2017 / 14:58
0

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:

  1. nome de usuário
  2. domínio
  3. senha

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.

    
por 05.05.2017 / 18:43