Powershell
遠端執行另一個 powershell 的 Powershell 腳本
這是一個很長的故事,但我需要創建一個遠端執行腳本的 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 的更多詳細資訊。