簡體   English   中英

在C#Windows Service應用程序中運行PowerShell腳本

[英]Running PowerShell script in a C# Windows Service App

我的確不是在這里要求任何特定的代碼行,而是希望有人能夠向我解釋其思想以幫助我更好地理解。 我對使用PowerShell腳本進行編碼非常陌生,更不用說在C#應用程序中調用它們了。 任何人都可以解釋甚至指向正確的方向,以便我了解在這里我需要做些什么。 我有一個基本的“ Hello World”腳本,我想使用VS2010從C#Windows服務調用該腳本。 我在互聯網上看到了一些示例,但是它們非常簡短,並沒有真正講授其背后的概念。

任何幫助將非常感激! 謝謝!

這是有關如何從C#調用Powershell的很好的討論: http : //www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C

我建議您從RunScript函數開始,然后將其添加到VS2010控制台應用程序中。 然后Main()會調用RunScript之類的東西,例如RunScript( "echo 'hello from PS';get-date; get-culture; ")

Windows服務與普通控制台應用程序有很多差異。 您可以閱讀有關如何在MSDN上編寫Windows服務的信息,但是如果您以前從未編寫過代碼,那么您的學習就會很艱難。

舊資源工具包中有一項名為srvany.exe的服務(Google it),它將作為服務運行任何控制台應用程序。 但是,在Windows Vista(及更高版本)中,服務無法訪問桌面,因此,只有在EXE不需要鍵盤輸入或不需要寫入顯示器的情況下,srvany才能在Vista和更高版本中成功。 但是,您的EXE可以讀取/寫入文件。

這就是我能夠為我工作的能力。

我基本上遵循了從這篇文章中找到的信息,但是做了幾件事使它對我有用:從c#調用powershell函數的問題

例如,對於ps.AddCommand("BatAvg")我只是在.ps1文件ps.AddCommand("PS1FunctionName")添加了自己的函數,沒有添加任何參數,因為這不是必需的。 答案一直困擾着我,我只是不知道我需要在Windows服務中放置它的位置。 我能夠弄清楚,現在我正在巡航!

另外,不要忘記在代碼中using System.Management.Automationusing System.Management.Automation.Runspaces進行引用(對於所有將來可能會關注此問題的人)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM