自提升批处理文件(非管理员用户)

Self-Elevating Batch file (non-Admin user)

我们的移动宽带调制解调器在掉线后重新连接时遇到问题。该问题已升级,但解决方案可能需要一段时间。我们发现一个快速解决方法是禁用并重新启用该设备,但是安全设置使得我们的用户无法 enable/disable 网络连接中的网络适配器。

我创建了一个批处理文件来处理 disable/enable,但希望它能为非管理员用户自动提升权限。即使我必须将本地管理员帐户硬编码到文件中并将其转换为可执行文件以隐藏代码。这是我目前拥有的:

@echo off
echo Please wait while the Sprint modem is reset...
wmic path win32_networkadapter where name="Sierra Wireless Mobile Broadband Network Adapter" call disable
timeout /t 5 /nobreak
wmic path win32_networkadapter where name="Sierra Wireless Mobile Broadband Network Adapter" call enable

如果我选择 运行 As: Admin,这将非常有效。我非常感谢所有帮助。

我遇到了类似的问题,并在 windows 任务调度程序的帮助下解决了它。

  1. 在调度程序中创建一个新任务,它只是 运行bat 文件。
  2. Select 管理员用户作为 运行 任务的帐户。
  3. 输入密码(这是一个很大的优势 - 您不需要将其作为纯文本存储在某些脚本中)
  4. 创建另一个包含以下内容的 bat 文件:schtasks /Run /TN <taskname>
  5. 运行新的bat文件。

如果这不起作用,可能是因为用户无权执行 运行 任务。在这种情况下,您仍然必须将凭据存储为纯文本,但是

schtasks /Run /U <username> /P <password> /TN <taskname>

会成功的。