Linux

將 Powershell 腳本與非 Windows 工作流集成的方法?

  • October 27, 2012

我喜歡早上新機器的味道。

我正在自動化機器創建工作流程,該工作流程涉及我的基礎架構中的多個獨立系統,其中一些涉及 Solaris 主機上已有 15 年曆史的 perl 腳本、PXE 引導 Linux 系統和 Windows Server 2008 上的 Powershell。

我可以為每個單獨的部分編寫腳本,集成 Linux 和 Unix 自動化相當簡單,但我不知道如何可靠地將 Powershell 腳本與其餘程序聯繫起來。

如果該過程在 Linux 主機上開始,我會更喜歡,因為我認為它最終將作為一個存在於 Apache 伺服器上的 Web 應用程序,但如果它需要在 Windows 上開始,我會猶豫不決。

理想情況下,我希望 Linux 上的psexec類似的東西可以在 Windows 上執行,但是Cygwin似乎給出了這個方向的答案,儘管我很感激他們付出的所有辛勤工作,但它從來沒有感覺正確,如果你明白我的意思。它非常適合台式機並提供了很多功能,但我覺得 Windows 伺服器應該被視為 Windows 伺服器,而不是混蛋的 Unix 機器(順便說一句,這也是我反對 OSX 伺服器的論點,它們實際上是Unix) . 無論如何,除非這是最後也是唯一的選擇,否則我不想使用 Cygwin。

所以我想我要問的是是否有一種方法可以從 Linux 在 Windows 機器上執行作業。沒有 Cygwin。我對想法和建議持開放態度,包括“看白痴,每個人都在使用 Cygwin,所以接受它並處理它”。提前致謝!

我花了幾個小時研究這個問題,最終歸結為兩個可行的選擇(那裡有很多不可行的選擇):

  1. 建構一個帶有 IIS 服務的 Windows 機器,該服務託管一個 WebAPI,該 WebAPI 既是域的,又是這樣設置的,以便來自它的 WinRM 會話可以工作。
  2. 賽格溫

使用第二個選項,您將不得不通過 GNU/Posix 抽象層來獲取實際的 Windows 位。這確實限制了你可以用它做什麼。

第一個選項幾乎建構了一個基於 Web 的抽象層,您自己編寫在完整的本機堆棧 Windows 安裝之上。如果您願意投入工作,Linux 主伺服器只需執行一堆 curl 呼叫即可完成需要執行的操作。這在腳本是即發即棄的情況下效果最好,因為建構回調系統需要付出更多的努力。

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