前言

为什么要限制程序运行?

比如家长不希望小孩玩游戏;

老板不希望员工使用某些软件;

拦截广告程序;

限制恶意软件运行,提高系统安全性等等。。

限制方法一

在运行中打入:gpedit.msc

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(1)

打开组策略编辑器,定位到 用户配置->管理模板->系统:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(2)

在右侧窗口中,有两个选项分别是:不运行指定的Windows应用程序、只运行指定的Windows应用程序

很容易理解,一个黑名单模式,一个白名单模式。使用方法也很简单,以“不运行指定的Windows应用程序”为例,双击打开,选择“已启用”:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(3)

点击下方的“显示...”,然后输入不允许运行的程序名即可限制运行:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(4)

​但是这种方式功能太弱,仅仅只是针对程序名称,稍微懂点电脑的改一下文件名就绕过了限制。很多时候难以满足需求。。

限制方法二

同样是通过组策略编辑器来设置,但是位置不一样,定位到:计算机配置->Windows设置->安全设置->软件限制策略:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(5)

如果之前没有创建过策略,默认是什么都没有的,在“软件限制策略”上点击右键,选择“创建软件限制策略:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(6)

点击之后,会创建出一些默认策略:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(7)

点击“其他规则”,然后在右侧窗口的空白处点击右键:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(8)

​如上图所示,可以根据程序的证书、哈希值、网络区域、路径等来创建限制规则!

这样大大加强了限制的效果,不是简单改名就能破除限制!随机命名的程序也可以轻松限制!

这里不做详解,就以新建路径规则为例,稍微演示一下功能的使用:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(9)

如上图,路径支持使用%temp%这样的环境变量,也支持*.exe这样的通配符!

上图这条规则,将会限制系统临时文件夹下所有后缀名为.exe的程序运行。

运行效果如图:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(10)

需要注意的是,像我这样写,并不会连同子目录下的程序一起限制!

如果要连同所有子目录下的程序一起限制,可以这样写:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(11)

限制方法三

这是一种特殊的限制方式,虽然功能也不强,但仍是值得一提,它叫:映像劫持

在运行或者CMD中输入:

例1,点击qq.exe时提示找不到文件:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\qq.exe" /v debugger /t reg_sz /d bucunzai.exe /f

效果如图:

windows强制运行某个程序(Windows中禁止程序运行的几种方法)(12)

​例2,点击qq.exe时,打开cmd.exe:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\qq.exe" /v debugger /t reg_sz /d cmd.exe /f

当然,也可以把cmd.exe换成其它指定位置的程序,比如 D:\soft\test.exe

这个映像劫持是不是还有点好玩?

,