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

时间:2014-07-02 07:46:11

标签: command-line vbscript cmd

我正在尝试使用简单的脚本制作CMD。问题变成当我通过CMD在用户计算机上打开这个脚本以管理员身份运行时(我的用户帐户)它将打开我的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

1 个答案:

答案 0 :(得分:0)

要检测当前运行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等)捕获并通过正则表达式提取。还应注意,runas将提示输入其他用户的密码。