首页 > 解决方案 > 使用 cmd/powershell 使用存储的管理员密码启动 .exe

问题描述

我想在单击时为所有域用户创建一个快捷方式,例如在管理模式弹出窗口中的记事本++,而不要求用户输入密码。即管理员模式下的记事本++

与我告诉用户管理员用户名和密码并要求他们右键单击记事本++图标然后输入用户名和密码的效果相同。

我尝试关注但它不起作用。

  1. 在命令中
"runas /savecred /user:{hostname}\admin "C:\Program Files\Notepad++\notepad++.exe"

它实际上只在正常模式下启动记事本++,即使我输入了管理员密码。

我尝试了 autoit,但是由于即使在管理员模式下运行上述程序也没有启动 notepad++,所以它也无法正常工作。我认为 sanur 也不起作用。

  1. 在PowerShell中
Start-Process 'C:\Program Files\Notepad++\notepad++.exe' -Verb runAs

弹出高架窗口并要求输入管理员用户名和密码,启动的记事本++处于管理员模式,但我不希望弹出。而且我找不到传递用户名和密码的方法。

  1. 在PowerShell中
$用户名 = “管理员”
$password = "密码"
$credentials = 新对象 System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

powershell Start-Process "C:\Program Files\Notepad++\notepad++.exe" -Credential ($credentials)

它实际上只在正常模式下启动记事本++。

标签: powershellcmdadminautoitprivileges

解决方案


谢谢西奥的评论。

解决方案是

  1. 创建快捷方式并将其设置为以管理员身份运行,例如 C:\temp\Notepad++.lnk

通过右键单击普通快捷方式 --> 高级 --> 勾选以管理员身份运行 --> 确定

  1. 创建一个 .bat 来启动快捷方式,例如 C:\temp\notepad.bat (我们需要这一步,因为 runas 无法启动 .lnk 文件)这里的 .bat 文件也是为了避免在运行时弹出 cmd 窗口
    @echo 关闭
    @start "" "C:\temp\Notepad++.lnk"

  1. 创建 autoit 脚本以通过 runas 运行 .bat,例如。记事本.au3
    运行方式(“{adminAccount}”、“{hostname}”、“{adminPassword}”、1、“C:\temp\notepad.bat”)
  1. 使用autoit将au3脚本转为exe

管理员模式下的记事本++ 将启动,不会弹出任何提升的窗口要求您提供管理员凭据。


推荐阅读