Command line CMD-以用户身份打开应用程序

Command line CMD-以用户身份打开应用程序,command-line,vbscript,cmd,Command Line,Vbscript,Cmd,我正在尝试用我制作的简单脚本使用CMD启动outlook。当我在用户计算机上以管理员身份(我的用户帐户)通过CMD ran打开此脚本时,问题就出现了。它将打开outlook,就像我现在打开它一样。所以我的收件箱不会显示为用户。如果我只是在普通cmd而不是提升模式下运行它,脚本就可以完美地工作 如何确保从提升的CMD中打开我用户的收件箱,而不是已升级CMD的用户的收件箱 strPath = WshShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%

我正在尝试用我制作的简单脚本使用CMD启动outlook。当我在用户计算机上以管理员身份(我的用户帐户)通过CMD ran打开此脚本时,问题就出现了。它将打开outlook,就像我现在打开它一样。所以我的收件箱不会显示为用户。如果我只是在普通cmd而不是提升模式下运行它,脚本就可以完美地工作

如何确保从提升的CMD中打开我用户的收件箱,而不是已升级CMD的用户的收件箱

strPath = WshShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%")
outlook15 = strPath & "\Microsoft Office\Office15\outlook.exe"
outlook14 = strPath & "\Microsoft Office\Office14\outlook.exe"

If fso.FileExists(outlook15) Then 
   msgbox "TITUS successfully fixed!", 64
   WScript.Sleep 3000
   WshShell.Run Chr(34) & outlook15 & Chr(34)
   Set fso = Nothing
   Set WshShell = Nothing
Else
   msgbox "TITUS successfully fixed!", 64
   WScript.Sleep 3000
   WshShell.Run Chr(34) & outlook14 & Chr(34)
   Set fso = Nothing
   Set WshShell = Nothing
End If

要检测当前运行CMD的用户,可以从whoami命令获取如下输出:

Set oExec = WshShell.Exec("whoami")
strUser = oExec.StdOut.ReadLine
然后,您可以将runas添加到WshShell.Run语句以更改用户上下文:

If strUser = "admin" Then
    WshShell.Run "runas /user:" & otherUser & " " & Chr(34) & outlook15 & Chr(34)
End If
需要通过输入提示符提供另一个用户名,或者可以从另一个命令(qwinsta、psloggedon等)捕获并通过regex提取。还应该注意,runas将提示输入其他用户的密码