2017-02-16 3 views
0

Ich versuche, eine neue PSSession eingeben. Wenn ich jede Zeile manuell ausführe, funktioniert es, aber wenn ich es als Teil eines Skripts ausführe, erhalte ich einen Fehler. Die Credits sind gültig und es scheint, dass die Sitzung erstellt wurde, ich kann sie einfach nicht in das Skript eingeben. Die angegebene Zeilennummer ist der Write-Host. Auch wenn ich nur eine Zuweisung zu einer Variablen habe, ist sie dort fehlerhaft.Powershell Fehler beim Versuch, Psssession eingeben

$cred = New-Object Management.Automation.PSCredential ($username, $pw) 
New-PSSession -ComputerName App02 -Credential $cred 
Get-PSSession | Enter-PSSession 

Write-Host "ERROR: Partial Service Deployment. See error log file(s)" 

ich dies als Fehler:

Cannot perform operation because operation "NewNotImplementedException at offset 63 in file:line:column :0:0 " is not implemented. At C:\DEV\Sandbox\Sandbox.ps1:29 char:14 + Write-Host "ERROR: Partial Service Deployment. See error log file(s ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotImplemented: (:) [], RuntimeException + FullyQualifiedErrorId : NotImplemented

Antwort

2

Sie nicht Enter-PSSession in einem Skript verwenden können. Grund: Es ist für interaktive Zwecke gedacht. Sie können Invoke-Command mit dem entsprechenden Parameter -Session verwenden, um Befehle remote auszuführen.

Siehe auch diese thread.

Beispiel Invoke-Command:

$cred = New-Object Management.Automation.PSCredential ($username, $pw) 
$session = New-PSSession -ComputerName App02 -Credential $cred 
Invoke-Command -Session $session -ScriptBlock { Get-Service * } #Return all services from the remote machine 
0

Enter-PSSession können nur interaktiv verwendet werden. Verwenden Sie für die Skripterstellung Invoke-Command und richten Sie sie auf den Computer, auf dem der Befehl oder der Skriptblock ausgeführt werden soll.