簡體   English   中英

在批處理文件中運行命令時安裝 Windows 服務失敗

[英]Installing Windows Service fails when command run in batch file

我正在將舊版 VC 6 C++ Windows 服務應用程序轉換為 Visual Studio 2022

轉換完成,如果我以管理員權限打開 CMD 提示符,我可以使用以下命令安裝服務:

服務.exe /安裝

它會立即安裝並正確啟動。

但是,我需要在安裝腳本中安裝它,該腳本通過調用包含啟動它們的命令的批處理文件來加載一堆服務。 它以提升的權限運行。 但是,它到達上面的行(Service.exe /Install)它掛起。 沒有錯誤消息,我什至無法使用 CTRL + C 終止它。解決它的唯一方法是關閉 CMD 提示符。 該服務未安裝。

當批處理文件掛起時,我的服務沒有出現在任務管理器的進程列表中。

我嘗試在批處理文件中添加服務的完整路徑,但沒有任何區別。 從提升的命令提示符(而不是安裝程序腳本)運行此批處理文件會遇到同樣的問題。

我為此撕毀了我的頭發(現在幾乎禿了:-)) - 任何人都可以提供任何建議嗎?

謝謝

安迪

調試發現啟動代碼中有邏輯錯誤。

基本上,直接從命令行調用 Service.exe /Install 只是將“Service.exe /Install”作為命令行傳遞,而從批處理文件 / CreateProcess() 調用它會將整個路徑傳遞給命令行中的服務,並且解析器沒有考慮到這一點。 也許它在舊 Windows 版本中的行為有所不同,但解析器寫得真的很糟糕。

我很高興是我寫的:-)

暫無
暫無

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

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