如何在双击图标时提示用户输入运行凭据?

如何在双击图标时提示用户输入运行凭据?

我正在运行一个信息亭类型的系统,其中用户几乎没有权限。

我想在他们的桌面上放置一个图标,以作为他们的 Active Directory 凭据运行特定程序。我熟悉 SysInternals ShellRunAs,但它需要右键单击,这意味着要重新培训用户。

我是否可以通过让他们双击通常会出现的图标,然后他们会得到用户名/密码的提示,然后以此方式执行程序来实现这一点?

答案1

如果您选择 PowerShell,则 PowerShell 脚本可以提示输入凭据,然后使用这些凭据启动进程。

Start-Process -FilePath "C:\Windows\notepad.exe" -Credential (Get-Credential)

用户看到这个提示,然后流程就开始了。

在此处输入图片描述

答案2

您可以修改快捷方式为使用命令行RunAs实用程序。例如,以下是快捷方式的目标,它将尝试以用户身份在资源管理器中打开特定文件夹比利鲍勃

C:\Windows\System32\runas.exe /user:BillyBob "Explorer.exe F:\Projects"

/user 参数还可以接受域凭据(硬编码或使用 %USERDOMAIN% 环境变量):

C:\Windows\System32\runas.exe /user:%USERDOMAIN%\BillyBob "Explorer.exe F:\Projects"\BillyBob "Explorer.exe F:\Projects"

用户名可以分配给%username%环境变量:

C:\Windows\System32\runas.exe /user:%username% "Explorer.exe F:\Projects"

或者,域和用户名都来自环境:

C:\Windows\System32\runas.exe /user:%USERDOMAIN%\%username% "Explorer.exe F:\Projects"

打开快捷方式后,cmd.exe将显示一个窗口,要求输入指定帐户的密码:密码提示

如果您需要用户输入用户名,那么事情就会变得有点奇怪,您必须将其放入 .bat 文件中:

@Echo Off

set INPUT=
set /P INPUT=Username: %=%
C:\Windows\System32\runas.exe /user:%INPUT% "Explorer.exe F:\Projects"

答案3

ShellRunAs并不严格要求右键单击;它可以(事实上) 作为一个普通工具来调用,原始程序在命令行中给出——就像内置的runas但是图形化的一样。

shellrunas notepad foo.txt

这可以作为快捷方式使用。

答案4

这是我的做法:

@echo off
rem @--------Window config
COLOR F3
mode con cols=60 lines=10
echo.%date%
rem @--------Authentication
@echo.
@set /p user=Username:
@echo.
@runas /user:%user% "C:\Programas\Internet Explorer\IEXPLORE.EXE http://www.google.com"

rem @ if you are in a domain use:
rem @runas /user:DOMAIN\%user% "C:\Programas\Internet Explorer\IEXPLORE.EXE http://www.google.com"

rem @---------Window close time (after "-n" put window close time in seconds)
ping -n 3 127.0.0.1>NUL

@cls
@exit

您可以测试它并且它会正常工作。

相关内容