2016-11-30 10 views
0

"Verbindung mit dem Remoteserver ist mit der folgenden Fehlermeldung fehlgeschlagen: WinRM kann die Anforderung nicht verarbeiten. Der folgende Fehler mit dem Fehlercode 0x80090304 ist bei der Verwendung der Negotiate-Authentifizierung aufgetreten: Ein unbekannter Sicherheitsfehler ist aufgetreten."WinRM kann die Anforderung nicht verarbeiten

Ich versuche Scripts remote auf Nicht-Domänenservern auszuführen und die Clients sind auch nicht Teil einer Domäne, da unsere Umgebung auf MicroFocus eDirectory basiert.

ich konfiguriert haben/versucht, die folgenden auf Client und Server:

winrm quickconfig 
WinRM set winrm/config/client @{TrustedHosts="*"} 
Set-item wsman:localhost\client\trustedhosts -value * 

Und wieder keine der Maschinen Teil einer Domäne sind, aber ich nahm an, es mit Trusted funktionieren würde.

Code sieht die Authentifizierung wie folgt versucht:

[xml]$windows=(Get-Content P:\script\windows.xml) 

$windows.servers.host | ForEach-Object { 

$password = ConvertTo-SecureString $_.pass -AsPlainText -Force 
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "$_.name+$_.user",$password 

Invoke-Command -ComputerName $_.name -Credential $credential -ScriptBlock {Get-Culture} 
} 
+0

Ist ps Remoting auf dem Zielcomputer aktiviert? 'enable-remoting' – Moerwald

+0

Es ist, die erste Zeile" winrm quickconfig "enthält die Aktivierung der PSremoting, ich habe auch versucht, es separat zu aktivieren, nachdem es nicht funktioniert hat, aber noch keine Würfel. –

Antwort

1

Ihr Problem ist in der Formatierung des Benutzernamen ein. "$ .name + $ .user" wird zu einem String mit einem + in der Mitte ausgewertet, da die Anführungszeichen um beide Elemente herum angeordnet sind. die richtige Art, es zu schreiben wäre "$($_.name)$($_.user)" oder wahrscheinlicher, wenn die Quelldatei kein abschließendes '\' auf dem Namensfeld platziert

+0

Dies ist nicht das Problem, da die Benutzervariable $ _. Mit einem \ beginnt, so wie ich es befürchte. –

+0

das '+' in der Mitte der Zeichenfolge wird immer noch als Zeichen und nicht als Operator ausgewertet, wenn der Schrägstrich in der Eingabe '" $ ($ _. Name) $ ($ _. User) "' oder '($ _. name + $ _. user) 'wäre die korrekte Formatierung. Du erzeugst derzeit eine Zeichenfolge, die aussieht wie "Name + \ User" –

+0

Ah, jetzt sehe ich, worauf du hinaus willst! Sie sind absolut richtig und es scheint, dass Ihr erster Vorschlag "$ ($ _. Name) $ ($ _. User)" 'viel besser funktioniert, aber der ($ _. Name + $ _. User) nicht verwendet werden kann Ich denke, da es eine Schnur will. Vielen Dank, die gesamte Verbindung funktioniert nun wie vorgesehen! –

Verwandte Themen