我想以另一个用户身份运行一个应用程序而无需编写密码

Posted

技术标签:

【中文标题】我想以另一个用户身份运行一个应用程序而无需编写密码【英文标题】:I want to run one application as another user without having to write password 【发布时间】:2016-09-14 20:06:15 【问题描述】:

我在桌面上有一个应用程序的快捷方式;根据用户权限,应用程序的工作方式不同。我想要的是从特权较少的用户调用快捷方式,并自动访问将管理员密码隐藏给当前用户的管理员帐户。这样,普通用户就可以在不知道其他用户账户数据的情况下访问应用程序中的更多选项。

我尝试过创建 bat 文件,但密码很容易看到。我正在寻找使用 VB 的方法,但我不确定这是否是最佳选择。这个软件做我想做的事,就是不是免费的。

https://4sysops.com/archives/run-a-program-with-administrator-rights-runasspc-cpau-and-steel-run-as-compared/ http://www.robotronic.de/runasspcEn.html

感谢您的帮助。

【问题讨论】:

为什么不给普通用户必要的权限? 但是,如果您想编写一个程序来执行此操作,则可以从研究 Windows DPAPI(数据保护 API)开始。这允许您根据特定于该机器的密钥对密码和事物进行加密。通常,您在安装时设置和加密密码。 @RB。不能给普通用户特权,因为管理员帐户使用另一个应用程序,并且谈论系统,只有一个管理员帐户被承认。我希望普通用户只拥有 1 个应用程序的权限,正如您可以想象的那样,每次普通用户想要执行它时都打电话给管理员很麻烦。 您可以使用命令行runas/savecred 执行应用程序。您只需输入一次管理员密码,它将继续运行。但是,围绕它存在大量安全问题,因此在使用此方法之前请进行一些研究。 【参考方案1】:
#Create a Desktop Shortcut with Windows PowerShell
If(!$ShortcutFileName)

    $ShortcutFileName = (Get-Item $TargetFile).Basename

$ShortcutFile = "$env:Public\Desktop\$ShortcutFileName.lnk"
$WScriptShell = New-Object -ComObject WScript.Shell
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
#Run as different user, saves the password  
$a="runas.exe /savecred /user:$RunAsUser ""$TargetFile"""
$Shortcut.TargetPath = "runas.exe"
$Shortcut.Arguments = "/savecred /user:$RunAsUser ""$TargetFile"""
$Shortcut.IconLocation = $TargetFile
$Shortcut.Save()  

您可以从how to create a shortcut to run an application as a different user(PowerShell)下载详细的SQL脚本

【讨论】:

虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。

以上是关于我想以另一个用户身份运行一个应用程序而无需编写密码的主要内容,如果未能解决你的问题,请参考以下文章

设计无需密码的身份验证,仅使用用户名

Golang如何让子进程以另一个用户身份运行

以不同用户身份运行应用程序

使用 CodeIgniter 进行用户身份验证

windows 中的类似于sudo的命令(在cmd中以另一个用户的身份运行命令)

我可以在 phpmyadmin (XAMPP) 中禁用 mysql 保护允许访问而无需任何身份验证吗?