Windows-Server-2008
確保批處理以管理員權限執行
我們使用批處理文件來進行 COM 伺服器的簡單安裝——主要是一些文件副本和 regsvr32s。由於 regsvr32 寫入系統資料庫的本地電腦配置單元,因此必須以管理權限執行批處理。我希望能夠辨識出這種情況,並在安裝失敗之前讓使用者知道。
一個可能的解決方案是嘗試在 system32 中創建一個文件,然後檢查它是否存在。如果是這樣,使用者很可能(總是?)也有權寫入系統資料庫。否則,讓使用者知道安裝將失敗。但是,我不確定檢查的準確性如何——我真的不希望能夠在 system32 中創建(然後刪除)文件,只需安裝一個 COM 伺服器。有沒有更好的辦法?
這個問題在 Windows 7 和 2008 中最為常見——如果有一種解決方案只適用於它們,那就這樣吧。但是,我想繼續使用簡單的批處理文件。
為什麼不嘗試一些無害的東西,例如:
`%SystemRoot%\System32\net.exe file | %SystemRoot%\System32\findstr /l /c:“Access is denied.”
if %ERRORLEVEL% NEQ 0 (
echo Not an admin.
exit
)`