拒绝为用户运行某些已安装的软件

时间:2010-05-06 10:23:36

标签: c++ c windows registry wmi

我有一个已安装软件的列表,从WMI类select * from Win32_Product获得 我想拒绝某些软件的某些用户的执行权,如下所示:

  1. 找到path to installed software
  2. 以递归方式删除执行权
  3. 我在Win32_Product InstallLocation列中找到path to installed software。但问题是Win32_Product中的所有行都不具有InstallLocation的值。我该怎么做才能克服这个问题?在注册表中哪里可以找到这条路径?

1 个答案:

答案 0 :(得分:0)

一般来说,没有。最边缘的情况是在USB磁盘上安装Firefox。它不会在注册表或Win32_Product InstallLocation中留下任何痕迹。

根本原因是当路径不在注册表中时Win32_Product InstallLocation没有位置。它们基本上是对同一数据的2次观看。

还有一个特殊问题,即某个产品甚至可能不需要执行权。例如,如果应用程序是用Perl编写的,则安装的“可执行文件”可能是。pl文件。然而,创建的Win32进程将为.pl扩展名注册可执行文件,即Perl解释器。