我的组织使用 Windows 10 VirtualBox VM 来测试我们的内部应用程序。我们这样做的方法是创建一个已经连接到我们域的 OVA。域中的任何人都可以登录它。但是,我们的应用程序通过 Web 启动单点登录 Java 小程序。
我需要强制将 FireFox 设置为所有用户配置文件的默认设置。导出虚拟机时,将 FireFox 设置为默认设置仅适用于我的配置文件,大概是因为其他用户配置文件尚不存在。
我正在考虑让 VBS 脚本在所有用户登录时修改注册表。有没有更优雅的方法来实现这一点?
谢谢
答案1
对我有用的是@tyelford建议的程序,它与将 Chrome 设为 Windows 10 上的默认浏览器。不幸的是,Firefox 没有这么好的操作方法,所以我决定将其复制到这里并改编为适用于 Firefox:
在 Windows 10 上将 Firefox 设为默认浏览器
作为管理员,你可能需要配置火狐作为域中计算机的默认浏览器。要设置火狐作为运行 Microsoft® Windows 10® 及更高版本的已加入域的计算机上的默认浏览器,您必须:
- 创建默认的应用程序关联 XML 文件或使用提供的示例文件
- 创建组策略对象 (GPO)
- 设置默认关联配置文件
Microsoft® TechNet® 包含有关如何生成默认应用程序关联文件以及如何使用组策略设置默认浏览器。
创建默认应用程序关联 XML 文件
默认应用程序关联文件是将文件类型与应用程序关联的 XML 文件。例如,如果您将 .html 或 .htm 文件与火狐应用程序,然后默认火狐每次用户打开 html 或 htm 文件时都会启动。
对于加入域的计算机,您可以创建一个共享的 XML 文件,该文件会自动设置火狐作为默认浏览器应用程序。您必须将此文件放在服务器上所有加入域的计算机都可以访问的共享文件夹中。
笔记:如果火狐未安装在目标计算机上,则不应用文件关联,并且用户在打开链接(http 或 https)或文件(html 或 htm)时必须选择一个应用程序。
以下示例(
firefoxdefault.xml
)显示如何设置 火狐作为默认浏览器打开 html、htm、http 和 https 文件或链接:
<?xml version="1.0" encoding="UTF-8"?>
<DefaultAssociations>
<Association Identifier=".htm" ProgId="FirefoxHTML" ApplicationName="Firefox" />
<Association Identifier=".html" ProgId="FirefoxHTML" ApplicationName="Firefox" />
<Association Identifier=".shtml" ProgId="FirefoxHTML" ApplicationName="Firefox" />
<Association Identifier=".xht" ProgId="FirefoxHTML" ApplicationName="Firefox" />
<Association Identifier=".xhtml" ProgId="FirefoxHTML" ApplicationName="Firefox" />
<Association Identifier="ftp" ProgId="FirefoxURL" ApplicationName="Firefox" />
<Association Identifier="http" ProgId="FirefoxURL" ApplicationName="Firefox" />
<Association Identifier="https" ProgId="FirefoxURL" ApplicationName="Firefox" />
</DefaultAssociations>
(该文件实际上是我自己用电脑制作的)
笔记:每次登录时都会设置默认关联策略。用户可以在登录后更改关联,但更改仅适用于该登录会话。下次登录时,关联将重置为该策略。
创建组策略对象
组策略管理控制台允许您为域创建和管理组策略对象 (GPO)。这些 GPO 控制应用于所有与域关联的计算机的策略。创建 GPO 后,您可以使用安全筛选将其应用于域中的计算机。
在以下示例中,您将创建一个 GPO (放火狐作为默认浏览器) 并将其应用于计算机firefoxforwork.com 领域。
- 打开组策略管理控制台。转到开始 > 所有程序 > 管理工具 > 组策略管理。
- 在导航窗格中,转到组策略管理 > 域。
- 在导航窗格中,右键单击firefoxforwork.com域,然后单击在此域中创建一个 GPO,并将其链接到此处...
- 键入新 GPO 的名称(在我们的示例中,名称为放火狐作为默认浏览器)并点击好的。
- 在导航窗格中,转到组策略管理 > 域 > firefoxforwork.com > 组策略对象并选择放火狐 作为默认浏览器。
- 在里面安全过滤窗格中,单击添加。
- 在里面选择用户、计算机或组窗口中,输入要添加的对象的名称,单击检查姓名(以验证您输入的名称),然后单击好的。您可以输入域计算机添加加入该域的所有工作站和服务器(如下例所示)或者您可以指定不同的计算机组。
- GPO 现在适用于所有与域相关的计算机。
设置默认关联配置文件
要设置域链接计算机的默认关联配置文件,请在 Windows 服务器上编辑相关的 GPO。
- 打开组策略管理控制台。转到开始 > 所有程序 > 管理工具 > 组策略管理。
- 在导航窗格中,单击组策略管理 > 域 > firefoxforwork.com。
- 点击链接的组策略对象选项卡可查看此域的所有 GPO。
- 右键单击要选择的 GPO,然后单击“编辑”以打开组策略管理编辑器。在此示例中,右键单击 放火狐作为默认浏览器。
- 在组策略管理编辑器中,转到计算机配置 > 策略 > 管理模板 > Windows 组件 > 文件资源管理器,然后双击设置默认关联配置文件。
- 在里面设置默认关联配置文件窗口中,选择已启用选项。
- 在里面选项框中,输入默认应用程序关联 XML 文件的位置。这是将文件类型(例如 .htm、.html、http 和 https)与火狐 应用程序。这可以是火狐提供的示例 XML 文件或您自己创建的文件。
笔记:该文件不能是服务器上的本地文件。它必须位于域中每台计算机都可以访问的位置。
验证配置
在目标计算机(即运行 Windows 10 的 Active Directory 加入域的计算机)上,你可以验证你创建的 GPO 是否已应用,以及计算机是否正在使用火狐作为默认浏览器。
当 Windows 客户端刷新策略时,GPO 会自动应用,或者您可以
GPUpdate.exe /force
随时运行命令强制手动刷新。笔记:下载并应用策略后,必须重新启动计算机才能使策略生效。
- 在 Windows 客户端上,转到Windows > System32。 右键点击rsop命令并选择以管理员身份运行。
- 使用管理员凭据进行身份验证,然后单击是的。
- 去计算机配置 > 管理模板 > Windows 组件 > 文件资源管理器确认设置默认关联配置文件可用。
- 打开设置默认关联配置文件确认设置已启用且 XML 文件位置正确。
- 什么时候火狐设置为默认浏览器,则所有带有 htm 和 html 扩展名的文件都使用火狐图标。
参考:将 Chrome 设为 Windows 10 上的默认浏览器 - Chrome 企业和教育版帮助
其他可能有帮助的页面:
答案2
上面的 XML 将不再起作用!Antonio 的出色文档现已更新:
Firefox 目前(截至目前的版本 60)将不再使用 ProgId="FirefoxURL" 或 "FirefoxHTML",但 ProgId="FirefoxURL-308046B0AF4A39CB"或者FirefoxHTML-308046B0AF4A39CB。
请记住这一点!我只找到了一个提示https://github.com/MrAlex94/Waterfox/issues/384关于该问题。
这就是我的默认关联
<Association Identifier=".pdf" ProgId="FirefoxHTML-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier=".htm" ProgId="FirefoxHTML-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier=".html" ProgId="FirefoxHTML-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier=".shtml" ProgId="FirefoxHTML-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier=".xht" ProgId="FirefoxHTML-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier=".xhtml" ProgId="FirefoxHTML-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier="ftp" ProgId="FirefoxURL-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier="http" ProgId="FirefoxURL-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier="https" ProgId="FirefoxURL-308046B0AF4A39CB" ApplicationName="Firefox" />
<Association Identifier=".url" ProgId="FirefoxURL-308046B0AF4A39CB" ApplicationName="Firefox" />
如果 Firefox 的未来版本发生变化,请手动将其设置为默认浏览器并运行
dism /online /Export-DefaultAppAssociations:"c:\DefaultAppAssociations.xml"
检查当前有效的 ProgId。
答案3
要将所有当前用户应用关联(如浏览器)复制到任何新用户, 你可以做 :
DISM /Online /Export-DefaultAppAssociations:"%TEMP%\AppAssoc.xml"
DISM /Online /Import-DefaultAppAssociations:"%TEMP%\AppAssoc.xml"
DEL /q "%TEMP%\AppAssoc.xml"
备注:导入对现有用户没有影响。
对于像我一样尝试进行 sysprep 的人,您可以从默认配置文件中执行以下操作:
DISM /Online /Export-DefaultAppAssociations:"%WINDIR%\System32\Sysprep\AppAssoc.xml"
并在“中添加以下代码”%WINDIR%\安装程序\脚本\SetupComplete.cmd“ :
DISM /Online /Import-DefaultAppAssociations:"%WINDIR%\System32\Sysprep\AppAssoc.xml"
“SetupComplete.cmd”脚本将在创建第一个用户之前运行。(参见向 Windows 安装程序添加自定义脚本)
答案4
我肯定对这个问题想得太多了。
每次登录时我都会执行以下任务:
firefox.exe -silent -nosplash -setDefaultBrowser