windows - 如何在不重启的情况下使用 SEE_MASK_NOZONECHECKS 运行 msi

标签 windows security cmd installation windows-installer

我正在尝试安装一个带有远程框架的驱动程序,它允许我在远程计算机上运行作为远程处理/监控应用程序的子级生成的 shell 命令,作为 cmd/c“命令”运行。但是由于安全功能认为驱动程序可能不安全,驱动程序拒绝安装。

驱动程序也有引号(路径中的空格)所以它类似于

Dim command: command =  "\\\\server\\driver\\folder\\Autorun.exe" /passive   /norestart";
Set retVal = remote.Shell(command)

运行

cmd /c " "\\server\driver\folder\Autorun.exe" /passive /norestart"

在远程机器上

我已经尝试并在之前的语句中使用 setx SEE_MASK_NOZONECHECKS 1/m 时遇到了问题,我猜测子进程没有看到新的全局环境变量,这些变量在它的父进程启动时不存在,并且不会'不重启就无法工作。我想避免重启。

我试过运行

cmd /c " set SEE_MASK_NOZONECHECKS=1 & "\\server\driver\folder\Autorun.exe" /passive /norestart" 

但是好像不行。有什么想法吗?

最佳答案

您对使用 SEE_MASK_NOZONECHECKS 的方式有点迷茫。它不是环境变量,不能在命令提示符下修改,它是 ShellExecuteEx() 的一个选项.确实用于启动程序的 winapi 函数。不太清楚您可以访问哪些编程工具,在批处理文件或 VBScript 中使用它是行不通的。您至少需要 VB.NET 并调用函数。您可以从 pinvoke.net 网站获取所需的声明。

让我们谈谈实际情况,您可能会找到更简单的解决方案。当您从 Internet 网站下载文件时,Windows 会向该文件添加一个额外的流,指示该文件的来源。这基本上说明“这个文件不是来自安全的地方”并且使驱动程序安装程序犹豫不决。如果您考虑一下,这是一个相当重要的功能,您的用户将安装可以执行很多的软件,如果您可以安装驱动程序,您几乎可以自由支配机器。

如果您在资源管理器中右键单击该文件并单击“属性”,您将在窗口底部看到:

enter image description here

所需要做的就是单击取消阻止按钮。因此,这是您的用户解决问题的简单方法。您可以在安装说明中记录额外的步骤。还有一个好处是,现在是用户负责允许安装可能不安全的代码。

解锁文件的其他方法是使用 PowerShell 的 Unblock-File command和 SysInterals 的 streams utility , -d 选项。

而且您可能应该考虑编写自己的安装程序的选项。这将使驱动程序打包在安装文件中,这样它就不会被 Windows 修改。而用户在启动安装程序时会收到警告。它可以被签名,这样用户就可以对文件的来源有一定的信心,并且它不会在到达他的机器的途中被弄乱。有许多实用程序可以帮助您编写安装程序,例如 InstallAware、InstallShield、NSIS 等。

关于windows - 如何在不重启的情况下使用 SEE_MASK_NOZONECHECKS 运行 msi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17716110/

相关文章:

android - 用于分割二进制文件的 Windows 命令

android - Hook Android 系统 API 相关的文本输出

c - 加速 Windows C 端口扫描程序

security - Apache:如何将虚拟目录限制为本地网络

javascript - 如何通过 PHP 搜索 Linkedin?

security - SSL 的替代品

node.js - Windows : Install node and then in same . ps1 脚本 npm 包出现错误 "npm"无法识别

windows - 批处理脚本或 PowerShell 脚本从文本文件读取多个值并将其插入变量

mysql - 无法从 MySQL Workbench (Windows 10) 连接到 mysql 容器

windows - Perl:如何可移植地保留 TCP 端口(因此会有一个不可用的 URL)