You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup实现安装目录自动添加Windows Defender白名单方案咨询

解决方案

一、PowerShell白名单添加脚本

要将指定目录加入Windows Defender排除列表,可使用以下PowerShell命令(已处理重复添加场景,避免报错):

$targetPath = "{0}"
$existingExclusions = Get-MpPreference | Select-Object -ExpandProperty ExclusionPath -ErrorAction SilentlyContinue
if ($existingExclusions -notcontains $targetPath) {
    Add-MpPreference -ExclusionPath $targetPath
}

后续Inno Setup会自动将{0}替换为用户选定的安装目录。

二、Inno Setup集成与执行时机控制

1. 配置管理员权限

修改[Setup]段,确保安装程序以管理员身份运行(修改Defender排除列表需要该权限):

[Setup]
PrivilegesRequired=admin

2. 在代码段实现流程控制

在[Code]段中,通过NextButtonClick事件拦截用户选择安装目录后的下一步操作,先创建目标目录,再执行PowerShell脚本添加白名单:

[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
var
  InstallPath: String;
  PowerShellCmd: String;
  ExitCode: Integer;
begin
  Result := True;
  // 拦截选择目录页的下一步操作
  if CurPageID = wpSelectDir then
  begin
    // 获取用户选定的安装目录
    InstallPath := WizardDirValue;
    // 提前创建目标目录(若不存在)
    if not DirExists(InstallPath) then
      CreateDir(InstallPath);
    
    // 构造PowerShell执行命令,隐藏窗口并绕过执行策略
    PowerShellCmd := Format(
      '-ExecutionPolicy Bypass -WindowStyle Hidden -Command "$targetPath = ''%s''; $existingExclusions = Get-MpPreference | Select-Object -ExpandProperty ExclusionPath -ErrorAction SilentlyContinue; if ($existingExclusions -notcontains $targetPath) { Add-MpPreference -ExclusionPath $targetPath }"',
      [InstallPath]
    );
    
    // 执行PowerShell命令并处理结果
    if not Exec('powershell.exe', PowerShellCmd, '', SW_HIDE, ewWaitUntilTerminated, ExitCode) then
    begin
      MsgBox('添加Defender白名单失败:无法启动PowerShell。', mbError, MB_OK);
      Result := False;
    end
    else if ExitCode <> 0 then
    begin
      MsgBox(Format('添加Defender白名单失败,错误代码:%d。', [ExitCode]), mbError, MB_OK);
      Result := False;
    end;
  end;
end;

3. 关键说明

  • 执行时机:用户在「选择安装目录」页点击下一步后,会优先完成目录创建和白名单添加,再进入后续文件复制环节。
  • 权限要求:必须以管理员身份运行安装程序,否则Add-MpPreference命令会因权限不足执行失败。
  • 兼容性:此逻辑仅适用于Windows 10及以上版本的Windows Defender,若用户使用第三方杀毒软件,该白名单设置无效。

内容的提问来源于stack exchange,提问作者John Titor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:33:21