簡體   English   中英

使用模擬以編程方式啟動Windows Service

[英]Starting windows service programatically using impersonation

數小時以來,我一直在尋找問題的答案,但是在嘗試了很多建議后,我仍然陷入困境。

我有一個基於C#Windows窗體的應用程序,並且必須以編程方式(當用戶單擊適當的按鈕時)啟動Windows服務(也是解決方案的一部分)。 這部分已經到位-我可以啟動該服務,但是... Windows 7和2008 Server中存在一些問題。

問題是我無法執行此操作,因為我的應用程序是由計算機管理員加載的,但是作為過濾的標准而不是完全管理員的身份( 此處提供更多信息 )。 如果我們以管理員身份啟動該應用程序,則可以正常運行,但我不想每次都打擾用戶。

我想知道當用戶輸入可以啟動該服務的表單時,是否可以彈出Windows確認屏幕-作為正式管理員。

有任何想法嗎?

謝謝

IIRC-您無法提升現有進程的特權,需要生成一個新進程來執行需要該進程的操作。

找到了一個先前的問題 ,這進一步解釋了這一點。

您可以通過ShellExecute啟動另一個應用程序(使用runas謂詞),以便Windows提示用戶或使用COM Elevation Moniker (均在用戶單擊按鈕時)。

如果您的目標是Windows Server 2008 R2 / Windows 7,則可以使用服務觸發事件

最好

暫無
暫無

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

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