Próbuję wejść na nowy PSSession. Jeśli ręcznie uruchomię każdą linię działa, ale kiedy uruchomię go jako część skryptu, otrzymuję błąd. Kredyty są ważne i wydaje się, że sesja jest tworzona, po prostu nie mogę wejść w skrypt. Numer linii, do którego odnosi się, jest gospodarzem zapisu. Nawet jeśli tylko mam przypisanie do zmiennej błędów.

$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)"

Dostaję to jako błąd:

Nie można wykonać operacji, ponieważ działanie "NewnotimplemplementedException na OFFSET 63 w pliku: linia: kolumna: 0: 0" nie jest zaimplementowana. W C: DEV SANDBOX SANDBOX.PS1: 29 Char: 14 + Write-host "Błąd: Wdrożenie częściowe usługi ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ + CategoryInfo: Notimplemplemented: (:) [], RuntimeException + SELLUSEQualizedErrorid: Notimplementeded

0
Styxtb1598 16 luty 2017, 18:28

2 odpowiedzi

Najlepsza odpowiedź

Nie możesz użyć Enter-PSSession w skrypcie. Powód: jest przeznaczony do interaktywnego celu. Możesz użyć Invoke-Command za pomocą odpowiedniego parametru {x2}}, aby zdalnie wykonać polecenia.

Zobacz także to Wątek.

Przykład 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
2
Community 23 maj 2017, 12:24

Enter-PSSession może być używany tylko interaktywnie. Aby skrypować, użyj Invoke-Command i point na komputerze, na którym chcesz uruchomić polecenie lub scriptblock.

0
mjolinor 16 luty 2017, 15:48