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

部分Microsoft Edge LGPO设置无法在非域环境下应用于所有用户

问题描述

我正在编写PowerShell脚本,为未加入域的计算机通过注册表应用部分LGPO设置。大部分设置已成功应用,但以下几项除外:

  • DefaultSearchProviderEnabled
  • DefaultSearchProviderSearchURL
  • DefaultSearchProviderName
  • SmartScreenEnabled
  • SmartScreenPuaEnabled

在普通用户会话中以管理员权限运行脚本后,上述设置仅对该用户生效,计算机上的其他所有用户(包括管理员)均未应用这些设置。

我查询到资料显示“此策略仅适用于已加入Microsoft Active Directory域的Windows实例”,但为何这些设置对运行脚本的用户生效了?是否可以在不加入域的情况下将其应用于所有用户?


解答

为什么仅运行脚本的用户生效?

你在当前用户会话中执行脚本时,即使使用管理员权限,注册表操作默认仍指向当前用户的HKCU分支(HKCU\Software\Policies\Microsoft\Edge)。Edge会优先读取用户级的策略设置,因此该用户的Edge能识别到这些配置并生效。

网上提到的“仅适用于已加入AD域的实例”,指的是通过**组策略对象(GPO)**官方部署这些设置的场景——域环境下GPO可以自动批量推送策略到所有用户/机器,但手动修改注册表的方式不受域限制,只是需要自行处理多用户覆盖的问题。

未加域时如何应用到所有用户?

可以通过以下三个维度的注册表操作,实现全用户覆盖:

1. 写入机器级注册表分支(HKLM)

Edge支持部分策略通过机器级注册表(HKLM:\Software\Policies\Microsoft\Edge)生效,对所有用户(包括新创建的用户)强制生效。执行以下PowerShell命令:

# 创建HKLM下的Edge策略路径
New-Item -Path "HKLM:\Software\Policies\Microsoft\Edge" -Force

# 配置搜索提供者相关设置
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderEnabled" -Value 1 -PropertyType DWord -Force
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderSearchURL" -Value "https://your-search-provider.com?q={searchTerms}" -PropertyType String -Force
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderName" -Value "你的搜索提供者名称" -PropertyType String -Force

# 配置SmartScreen相关设置
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Edge" -Name "SmartScreenEnabled" -Value 1 -PropertyType DWord -Force
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Edge" -Name "SmartScreenPuaEnabled" -Value 1 -PropertyType DWord -Force

执行后,用户需注销重新登录或重启Edge,机器级策略会覆盖用户级的冲突设置。

2. 批量修改现有用户的HKCU分支

机器级策略对已登录过的现有用户可能不生效(因为他们的HKCU已有相关配置),需要遍历所有本地用户的注册表文件(NTUSER.DAT)进行修改:

# 遍历C:\Users下的用户文件夹(排除系统默认文件夹)
$userProfiles = Get-ChildItem "C:\Users" | Where-Object { $_.Name -notin @("Public", "Default", "Default User") }

foreach ($profile in $userProfiles) {
    $ntuserPath = Join-Path $profile.FullName "NTUSER.DAT"
    if (Test-Path $ntuserPath) {
        try {
            # 加载用户注册表到临时项
            reg load HKU\TempUser $ntuserPath
            # 创建Edge策略路径
            New-Item -Path "HKU:\TempUser\Software\Policies\Microsoft\Edge" -Force -ErrorAction SilentlyContinue
            # 写入各项设置(同HKLM的属性配置)
            New-ItemProperty -Path "HKU:\TempUser\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderEnabled" -Value 1 -PropertyType DWord -Force
            New-ItemProperty -Path "HKU:\TempUser\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderSearchURL" -Value "https://your-search-provider.com?q={searchTerms}" -PropertyType String -Force
            New-ItemProperty -Path "HKU:\TempUser\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderName" -Value "你的搜索提供者名称" -PropertyType String -Force
            New-ItemProperty -Path "HKU:\TempUser\Software\Policies\Microsoft\Edge" -Name "SmartScreenEnabled" -Value 1 -PropertyType DWord -Force
            New-ItemProperty -Path "HKU:\TempUser\Software\Policies\Microsoft\Edge" -Name "SmartScreenPuaEnabled" -Value 1 -PropertyType DWord -Force
            # 卸载临时注册表项
            reg unload HKU\TempUser
        }
        catch {
            Write-Warning "无法修改用户 $($profile.Name) 的注册表:$($_.Exception.Message)"
        }
    }
}

注意:需确保目标用户未处于登录状态,否则NTUSER.DAT会被系统锁定无法加载。

3. 配置默认用户(Default User)

修改默认用户的注册表(C:\Users\Default\NTUSER.DAT),确保新创建的用户自动继承这些策略:

try {
    reg load HKU\DefaultUser "C:\Users\Default\NTUSER.DAT"
    New-Item -Path "HKU:\DefaultUser\Software\Policies\Microsoft\Edge" -Force -ErrorAction SilentlyContinue
    # 写入各项设置(同HKLM的属性配置)
    New-ItemProperty -Path "HKU:\DefaultUser\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderEnabled" -Value 1 -PropertyType DWord -Force
    New-ItemProperty -Path "HKU:\DefaultUser\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderSearchURL" -Value "https://your-search-provider.com?q={searchTerms}" -PropertyType String -Force
    New-ItemProperty -Path "HKU:\DefaultUser\Software\Policies\Microsoft\Edge" -Name "DefaultSearchProviderName" -Value "你的搜索提供者名称" -PropertyType String -Force
    New-ItemProperty -Path "HKU:\DefaultUser\Software\Policies\Microsoft\Edge" -Name "SmartScreenEnabled" -Value 1 -PropertyType DWord -Force
    New-ItemProperty -Path "HKU:\DefaultUser\Software\Policies\Microsoft\Edge" -Name "SmartScreenPuaEnabled" -Value 1 -PropertyType DWord -Force
    reg unload HKU\DefaultUser
}
catch {
    Write-Warning "无法修改默认用户注册表:$($_.Exception.Message)"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:50:35