问题

问题

本周我面临的场景是,通过 GPO 部署快捷方式的常规技术已经不再足够了。

我面临的环境是 XP、7、10 同时存在于 32 位(x86)和 64 位(x64)架构中 - 并且有多种语言。

  • 许多应用程序可以在两种架构(x86 和 x64)上安装并在每个系统上运行。
  • 一些用户需要同时使用 x86 和 x64 版本,可通过不同的快捷方式获取。

那么,如何有效地为60多个自动分发的应用程序创建快捷方式呢?

答案1

问题

%programfiles%使用诸如 之类的众所周知的环境变量programfiles(x86)不再有效,因为:

  • XP 不知道programfiles(x86)变量
  • programfiles指的是 x86 或 x64 文件夹,具体取决于计算机的体系结构。(或者更具体地说:调用变量的进程的体系结构)
  • 对于 XP,32 位文件夹的名称已本地化(即C:\Programme (x86)对于运行 x64 的德国 XP)

假设有 2 种语言、2 种操作系统类型(7、10 在“类型”方面表现相同)和 2 种体系结构类型,则使用“本机”工具可以实现以下选项,但这已经很笨拙了:

要创建“最高”版本的快捷方式,需要部署 3 条快捷方式“规则”:

Shortcut |Target                           | Purpose
App      |%programfiles%\App\app.exe       | x86-app on a x86-xp-7-10 or
         |                                 | x64-app on a x64-xp-7-10
App      |%programfiles(x86)%\App\app.exe  | x86-app on a x64-7-10
App      |C:\Programme (x86)\App\app.xe    | x86-app on a x64-xp (german)

假设您还想让每个应用程序同时以 x86 和 x64 形式提供,情况会变得更糟,因为:%programfiles%会导致错误的结果(可能是 x86 或 x64) - 所以您需要在创建的每个“快捷方式”上都使用 WMI 过滤器来处理这个问题。

像这样的规则:

Shortcut |Target                           | Purpose
App 64   |%programfiles%\app\app.exe       | x64-app on a x64-7-10

会意外地将32 bit versionon32-bit-systems与名称链接起来x64- 如果没有某些 WMI 过滤器,则会停用该规则。

因此,它将有 4 条规则,其中 2 条带有 WMI 过滤器:

Shortcut |Target                           | Purpose
App 64   |%programfiles%\App\app.exe       | x64-app on a x64-xp-7-10 + wmi-filter
App 32   |%programfiles%\App\app.exe       | x86-app on a x86-xp-7-10 + wmi_filter
App 32   |%programfiles(x86)%\App\app.exe  | x86-app on a x64-7-10 
App 32   |C:\Programme (x86)\App\app.xe    | x86-app on a x64-xp (german) 

因此 - 240 条快捷规则,如果只有一种“外语” - 但是其中有 5 条 ->480 个容易出错的快捷规则。-> 不!

目标

我希望能够减少所需的工作量。只需为每个快捷方式创建(最坏情况)2 个条目,说明:

  • 该应用程序可以在任何地方使用,为 32 位版本。
  • 此应用程序仅在 64 位机器上可用,为 64 位版本。

使用 WMI 过滤器通过 GPO 自定义环境变量

为了解决这个问题,我创建了 1 个 GPO 来创建所需的自定义环境变量:

Variable | Purpose           
%pf_x86% | Program Files x86 on any system 
%pf_x64% | Program Files x64 on any system (if existing)

因此,这个(单个 GPO)总共有 6 条规则(XP 每增加一种语言就增加 1 条规则):

Variable | Value               | OS     | WMI Filter (Item-Level-Targeting): 
%pf_x86% | %programfiles%      |7 x86   | select * from Win32_OperatingSystem
                                          WHERE Version like "6.%" AND  
                                          ProductType="1" AND 
                                          NOT OSArchitecture = "64-bit"
%pf_x86% | %programfiles(x86)% |7,10 x64| select * from Win32_OperatingSystem
                                          WHERE  (Version like "6.%" OR 
                                          Version like "10.%") AND
                                          ProductType="1" AND 
                                          OSArchitecture = "64-bit"
%pf_x86% | %programfiles%      |XP x86  | select * from Win32_OperatingSystem 
                                          WHERE (Version like "5.1%") AND 
                                          ProductType="1"
%pf_x86% | C:\Programme (x86)  |XP x64  | select * from Win32_OperatingSystem 
                                          WHERE (Version like "5.2%") AND 
                                          ProductType="1" AND OSLanguage=1031
%pf_x64% | %programfiles%      |7,10 x64| select * from Win32_OperatingSystem
                                          WHERE Version like (Version like "6.%" OR 
                                          Version like "10.%") AND 
                                          ProductType="1" AND 
                                          OSArchitecture = "64-bit"
%pf_x64% | %programfiles%      |XP x64  | select * from Win32_OperatingSystem 
                                          WHERE (Version like "5.2%") AND 
                                          ProductType="1"

(操作系统语言概述如下:https://www.autoitscript.com/autoit3/docs/appendix/OSLangCodes.htm

在此处输入图片描述

结果

这个自定义环境变量现在允许我为每个应用程序精确配置两个 shurtcut - 无论哪个操作系统版本在任何架构或语言上运行

Shortcut |Target               | Purpose
App 64   |%pf_x64%\App\app.exe | x64-app on any environment.
App 32   |%pf_x86%\App\app.exe | x86-app on any environment.

如果两者都存在 - 那么两个快捷方式都会被部署。

Windows 7,64 位,ML

在此处输入图片描述

Windows 7,32 位,ML

在此处输入图片描述

Windows XP,32 位,德语

在此处输入图片描述

等页

相关内容