powershell - 使用 cmd/powershell 使用存储的管理员密码启动 .exe
问题描述
我想在单击时为所有域用户创建一个快捷方式,例如在管理模式弹出窗口中的记事本++,而不要求用户输入密码。即管理员模式下的记事本++
与我告诉用户管理员用户名和密码并要求他们右键单击记事本++图标然后输入用户名和密码的效果相同。
我尝试关注但它不起作用。
- 在命令中
"runas /savecred /user:{hostname}\admin "C:\Program Files\Notepad++\notepad++.exe"
它实际上只在正常模式下启动记事本++,即使我输入了管理员密码。
我尝试了 autoit,但是由于即使在管理员模式下运行上述程序也没有启动 notepad++,所以它也无法正常工作。我认为 sanur 也不起作用。
- 在PowerShell中
Start-Process 'C:\Program Files\Notepad++\notepad++.exe' -Verb runAs
弹出高架窗口并要求输入管理员用户名和密码,启动的记事本++处于管理员模式,但我不希望弹出。而且我找不到传递用户名和密码的方法。
- 在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)
它实际上只在正常模式下启动记事本++。
解决方案
谢谢西奥的评论。
解决方案是
- 创建快捷方式并将其设置为以管理员身份运行,例如 C:\temp\Notepad++.lnk
通过右键单击普通快捷方式 --> 高级 --> 勾选以管理员身份运行 --> 确定
- 创建一个 .bat 来启动快捷方式,例如 C:\temp\notepad.bat (我们需要这一步,因为 runas 无法启动 .lnk 文件)这里的 .bat 文件也是为了避免在运行时弹出 cmd 窗口
@echo 关闭 @start "" "C:\temp\Notepad++.lnk"
- 创建 autoit 脚本以通过 runas 运行 .bat,例如。记事本.au3
运行方式(“{adminAccount}”、“{hostname}”、“{adminPassword}”、1、“C:\temp\notepad.bat”)
- 使用autoit将au3脚本转为exe
管理员模式下的记事本++ 将启动,不会弹出任何提升的窗口要求您提供管理员凭据。
推荐阅读
- amazon-web-services - 使用 wget 从 s3 获取文件
- reactjs - Apollo 客户端未解析 UserInputError
- angular - 下拉启用和禁用
- asp.net-core - 使用 Retrofit 发送多图像 - Android Studio
- ios - Twitter Api如何将unicode转换为字符串?
- flyway - 关于 FlywayDB 问题
- react-native - 根据 React Native 中的答案更改测验中按钮的颜色
- javascript - 如何在 forEach 循环中使用 Puppeteer 的 page.click?
- c# - DataGridView ArgumentOutOfRangeException C#
- java - 在这里我得到了错误.class预期..请告诉问题出在哪里