joe*_*rty 9 windows windows-server-2003 group-policy
我们在 Windows 2003 域中运行终端服务器场,我发现应用到我们的 TS 服务器的软件限制 GPO 设置存在问题。以下是我们的配置和问题的详细信息:
我们所有的服务器(域控制器和终端服务器)都运行 Windows Server 2003 SP2,域和林都在 Windows 2003 级别。我们的 TS 服务器位于一个 OU 中,我们在其中链接了特定的 GPO 并阻止了继承,因此只有 TS 特定的 GPO 会应用于这些 TS 服务器。我们的用户都是远程用户,没有工作站加入我们的域,因此我们不使用环回策略处理。我们采用“白名单”方法允许用户运行应用程序,因此只有我们批准并添加为路径或哈希规则的应用程序才能运行。我们将“软件限制”中的“安全级别”设置为“不允许”,并将“强制执行”设置为“除库外的所有软件文件”。
我发现,如果我给用户一个应用程序的快捷方式,即使它不在“白名单”应用程序的附加规则列表中,他们也可以启动该应用程序。如果我向用户提供该应用程序的主要可执行文件的副本,并且他们尝试启动它,他们会收到预期的“此程序已被限制...”消息。似乎软件限制确实有效,除非用户使用快捷方式启动应用程序而不是从主可执行文件本身启动应用程序,这似乎与使用软件限制的目的相矛盾。
我的问题是:有没有其他人看到过这种行为?其他人可以重现这种行为吗?我对软件限制的理解是否遗漏了什么?是否有可能是我在软件限制中配置错误?
编辑
稍微澄清一下问题:
没有执行更高级别的 GPO。运行 gpresults 表明,事实上,只有 TS 级别的 GPO 正在被应用,我确实可以看到我的软件限制正在被应用。没有使用路径通配符。我正在使用位于“C:\Program Files\Application\executable.exe”的应用程序进行测试,并且该应用程序可执行文件不在任何路径或哈希规则中。如果用户直接从应用程序的文件夹启动主应用程序可执行文件,则会强制执行软件限制。如果我给用户一个指向“C:\Program Files\Application\executable.exe”中的应用程序可执行文件的快捷方式,那么他们就可以启动该程序。
编辑
此外,LNK 文件列在指定文件类型中,因此它们应被视为可执行文件,这意味着它们受相同的软件限制设置和规则约束。
所以我终于找到了答案。在我们的软件限制规则中,有一个路径规则如下:
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%
这允许 Program Files 目录中的任何可执行文件及其子目录不受阻碍地运行。配置软件限制时默认添加此路径。删除此路径规则会导致所有程序被拒绝,即使它们的可执行文件被明确添加为不受限制的路径。
这就引出了一个问题:如果 99% 的程序都安装到 Program Files 目录中,但我想限制某些程序,我如何通过软件限制来实现这一点?
同样重要的问题是,除了那些不在程序文件中的程序或可执行文件之外,软件限制究竟有什么用?