UAC 引入後,應用程式預設以標準使用者權限執行。早期安裝程式需管理員權限寫入 Program Files、HKLM\Software 等受保護位置。Windows Vista/7 內建安裝程式偵測機制:針對無資訊清單的 32 位元執行檔,掃描檔名關鍵字 (setup、install、update),若符合則自動加上盾牌圖示並提權執行。但此機制會誤判一般應用程式 (如 StockUpdater.exe),造成不必要的提權提示;反之,自訂安裝程式若檔名不含關鍵字,又會因未提權而安裝失敗。
控制台 > 使用者帳戶 > 變更使用者帳戶控制設定,滑桿保持預設 (勿設為「從不通知」)。
BrokenStockUpdater\Debug 資料夾,切換至中/大圖示檢視。BrokenManagedStockUpdater.exe 圖示上有盾牌疊加圖示。

update,且為無資訊清單的 32 位元應用程式,觸發安裝程式偵測誤判。Debug 資料夾右鍵 > 新增 > 文字文件,命名為 BrokenManagedStockUpdater.exe.manifest (檔名必須為 <執行檔名>.manifest)。<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0"
xmlns="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="StockUpdater"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
關鍵屬性: level="asInvoker" 表示「以呼叫者相同權限執行」 (通常為標準使用者),明確宣告非安裝程式。另可用 requireAdministrator (需管理員)、highestAvailable (最高可用權限)。
BrokenStockUpdater.sln,檢查 BrokenManagedStockUpdater 專案屬性 > 應用程式 > 資訊清單:預設為「不含資訊清單建立應用程式」。level="asInvoker")。
若需自訂 level 值,可在專案加入「應用程式資訊清單檔」項目,直接編輯 XML。
FixedStockUpdater\FixedStockUpdater.sln
level="asInvoker" 關閉偵測。level="requireAdministrator" 強制提權。