powershell - PowerShell - 在远程计算机屏幕上显示消息
问题描述
当我使用 PowerShell - Invoke-Command 等远程运行命令或安装软件时,我有时希望能够在远程屏幕上显示一条消息,以便用户知道发生了什么事情,或者工作何时完成等。
如果可能的话,我想使这条消息看起来尽可能专业,例如,如果可以的话,它比标准的 winform 消息框更好吗?如果可能的话,也许更多的是带有彩色背景和使用图像的 Windows 10 风格。
花了一段时间谷歌搜索,但大多数似乎与使用过时的方法有关,例如 net-send 或使用 msg.exe。
谢谢
解决方案
https://michlstechblog.info/blog/powershell-show-a-messagebox/
所以问题真的不是创建消息框本身,而是让它显示在用户会话中。
因此,当您对系统运行命令时,您正在使用您的凭据来运行该命令,因此它不会显示在用户会话中。您可以通过使用任务调度程序在用户上下文中运行它来解决此问题。我有一个脚本可以为您完成所有这些工作,但是我讨厌重新创建轮子,并且必须等到星期一(当我在工作时)才能在此处发布。
它在您的会话中接受用户输入,将其输出到 vbs,然后将其通过消息复制到用户机器,并且任务计划设置为立即为登录的用户运行。
编辑:脚本是没有任务调度程序的。我只是调用gwmi win32_computersystem | Select -ExpandProperty username
以使当前用户登录并将其添加到任务中。
#Prompt for messge
$strMSG = Read-Host -Prompt "Enter message"
#deleting vbs if it exists
del C:\brief\test.vbs
#creating vbs from scratch so it doesnt override
New-Item C:\brief\test.vbs
#Appending each the values to a seperate line
Add-Content C:\brief\test.vbs 'Set objShell = Wscript.CreateObject("WScript.Shell")'
Add-Content C:\brief\test.vbs "strText = `"$strMSG`""
Add-Content C:\brief\test.vbs 'intButton = objShell.Popup(strText,0,"Computer Support",48)'
#calling on the script
& cscript C:\brief\test.vbs
推荐阅读
- php - 如何使用带有 Recaptcha 的 AJAX 发送表单?[拉拉维尔]
- flutter - Flutter iOS 致命错误:找不到“Flutter/Flutter.h”文件
- terraform - 重定位或重命名 .terraform 文件夹
- python - 如何在cvxpy中实现segment功能?
- post - 如何将发布请求保留一段时间,以便用户可以按下按钮?
- linux - 从 Web 访问 Nextcloud
- assembly - MIPS 中的掩蔽
- php - 带有 IF 语句的 PHP Fgets(STDIN)
- tensorflow - 解析文本格式的错误 opencv_tensorflow.GraphDef
- flutter - 如何在颤动中更改文本按钮颜色?