如何通过CMD修改文件的兼容性设置?

时间:2014-08-08 18:33:03

标签: batch-file cmd administrator

我有一个分发到多台机器的软件包,包括一个将一些文件移动到目录中的批处理文件。其中一个被移动的文件是可执行文件(.exe)。一旦批处理文件第一次运行,这个exe将按计划运行,并相应地移动文件,它永远不会再次使用。

如果我右键单击.exe文件> Properties> CompatibilitySettings下有一个选项可以管理员身份运行此程序。该应用程序仅在以管理员身份运行时才起作用,因此我希望每当批处理文件运行时都启用此设置。

有没有办法在批次中或通过CMD修改此设置?

我在搜索中继续发现的是如何以管理员身份运行cmd,或者如何向批处理添加runas命令,以便批处理本身作为管理员执行。由于批处理文件仅在安装时运行,而且从不再运行,我需要一种方法来设置exe本身的设置以管理员身份运行。

1 个答案:

答案 0 :(得分:2)

根据this answer中提供的信息,您可以使用REG命令添加注册表项Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers的完整路径,如下所示:

一切都应该在一条线上,但为了清楚起见,我将每个论点放在一个单独的行上

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
    /v "c:\full\path\to\your\exe\file.exe"
    /t REG_SZ
    /d "RUNASADMIN"

以上命令为所有用户/系统范围设置兼容性标志。如果您只想为当前用户设置它,请使用HKCU而不是HKLM。

请注意,在HKLM子树中设置值需要提升。

这是在Win7上测试的,但应该适用于Vista和Win8。