2010-05-06 39 views
0

我有从WMI类select * from Win32_Product获得的已安装软件的列表。
我想拒绝某些软件的一些用户,像这样的执行权:拒绝访问为用户运行某些已安装的软件

  1. 找到path to installed software
  2. 递归删除执行权

我找到的Win32_Product INSTALLLOCATION列path to installed software。但问题是Win32_Product中的所有行都没有InstallLocation的值。我能做些什么来克服这一点?在注册表中有什么地方可以找到这条路?

回答

0

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

根本原因是当路径不在注册表中时,Win32_Product InstallLocation没有位置。他们基本上是对同一数据的两个观点。

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