Powershell

遠端執行另一個 powershell 的 Powershell 腳本

  • October 15, 2014

這是一個很長的故事,但我需要創建一個遠端執行腳本的 SQL 觸發器,該腳本遠端執行另一個腳本(是的,我知道)。我正在使用 PowerShell。

我已經開始了:

Get-Service –Name “service” –ComputerName “Server2” | Set-service –Status Stopped

Get-Service –Name “service” –ComputerName “Server2” | Set-service –Status Running

這工作得很好。然後,將在觸發器上執行的腳本:

Invoke-Command –computername “cluster” –command {d:\adminscripts\RestartServer2Service.ps1}    

(是的,我使用 NLB 集群,它正在讀取腳本)

但是,我明白了:

找不到任何服務名稱為“服務”的服務。

有什麼想法嗎?任何幫助將不勝感激。謝謝

這幾乎可以肯定是一個兩跳問題。如果我使用 Enter-PSSession 連接到 ServerA,然後執行Get-Service spooler -ComputerName ServerB,我會得到完全相同的“找不到具有服務名稱的任何服務”錯誤。

但是,如果我執行Enter-PSSession ServerA -Authentication CredSSP -Credential (Get-Credential),則 Get-Service 命令執行良好。

問題在於第二跳——從第一台遠端電腦到第二台(和第三台);對於 PS 遠端處理使用的預設身份驗證協議來說,這是一個“過分的橋樑”。我用於此類問題的解決方案是 CredSSP。

您可以在這篇 Scripting Guy 文章中找到有關該問題以及如何啟用/使用 CredSSP 的更多詳細資訊。

引用自:https://serverfault.com/questions/636915