2013-01-03 20 views
0

我用C#創建了一個Windows服務,它爲我執行網絡維護任務。其中一項任務是遠程拆除機器,對於我的一些舊盒子,我發現唯一的辦法是使用psexec和defrag.exe。當我簡單地運行我的C#代碼時,代碼工作正常,但是當我將它轉換爲Windows服務時,它使用Win32_Volume表進行了虛化操作,但它似乎在試圖使用PsExec對XP計算機進行碎片整理時掛起。在Windows服務中使用PsExec

我想我的問題是,在Windows服務中使用PsExec是否存在任何已知錯誤?如果有的話,我可以使用不同的方法嗎?

謝謝。

回答

0

psexec首次以給定用戶的身份運行軟件許可協議對話框,因此,如果該服務以某個其他用戶身份運行,則可能是您的問題。

您可以通過添加參數

/accepteula 

抑制這種這可能是你的問題,但很明顯,我不能肯定!

+0

很好,這解決了我的問題,非常感謝! – mgrenier

+0

我仍然有這個問題,我現在在代碼中走得更遠,但它似乎有某種權限問題在PsExec遠程計算機上運行defrag.exe的某種權限問題。我嘗試輸入具有足夠特權的帳戶的用戶名和密碼,但似乎沒有幫助。有任何想法嗎?? – mgrenier

+0

看起來像我繼續的問題是與PsExec和更多的與Windows服務有關,因爲任務在我的C#代碼中工作,但在我的Windows服務中給我退出代碼爲6(句柄無效)...我我正在運行一個帳戶,該帳戶在相關機器上具有管理員權限......任何想法? – mgrenier