以管理员身份运行脚本但显示当前登录用户的信息

以管理员身份运行脚本但显示当前登录用户的信息

我通常以域管理员的身份运行脚本,这需要一段时间才能完成他们正在执行的操作。例如,卸载一个版本的 Office 并安装另一个版本。

正如我之前提到的,这些脚本(主要是 powershell 和 bat)以管理员身份在与当前登录用户不同的用户会话中运行。

有没有办法通过该脚本向当前登录的用户显示信息?

任何形式或形状都不会太分散注意力,例如我更喜欢消息框、托盘气球等。

我不知道他们的资历。

Msg.exe 虽然确实可以传输信息,但如果可能的话,我还在寻找更具交互性的东西。

答案1

这是一个很好的应用程序msg实用程序。要在当前交互会话中弹出一个消息框,提示“我做了这件事!”,请使用以下命令:

msg console I did the thing!

您还可以使用开关让消息框在指定的秒数后自动消失/time。例如,此消息将仅保留十秒钟:

msg console /time:10 This message will self-destruct in 10 seconds.

答案2

您可以利用此功能让用户实际登录到控制台。我有几个应用程序需要此功能。

Function CurrentUser{
#CurrentUser function converts the username object string "@{username=domain\user}" 
#         to the exact logon string "user" like the example below
#@{username=DOMAIN\USER}
#@{username DOMAIN\USER}
#DOMAIN\USER}
#DOMAIN\USER
#DOMAIN USER
#USER
$loggedInUserName = get-wmiobject win32_computersystem | select username
$loggedInUserName = [string]$loggedInUserName
$loggedinUsername = $loggedInUserName.Split("=")
$loggedInUserName = $loggedInUserName[1]
$loggedInUserName = $loggedInUserName.Split("}")
$loggedInUserName = $loggedInUserName[0]
$loggedInUserName = $loggedInUserName.Split("\")
$loggedInUserName = $loggedInUserName[1]
Return $loggedInUserName
}

参考:在此处输入链接描述

相关内容