Powershell脚本可将文件从一个位置移动到另一位置,然后将消息框显示到我们网络上的另一台计算机上

问题描述

此Powershell脚本存在问题。我对Powershell完全陌生。我正在尝试自动化特定过程。我试图创建一个可以拍摄图像的脚本,将其移动到另一个驱动器上的另一个文件夹,然后将消息框发送到域上的另一台计算机,以使用户知道文件传输已完成。我能够获得将文件一个位置移动到另一位置的脚本,可以正常工作。我也能够显示一个消息框,但是当我尝试将图像添加到消息框时,出现以下错误。另外,我不知道如何将此消息框发送到脚本运行所在的计算机以外的另一台计算机。请帮助。

无法将参数“ icon”转换为值: “ C:\ Users \ austin.holmes \ Downloads \ botpic.jpg”,用于键入“显示” “ System.Windows.MessageBoxImage”:“无法转换值 键入“ C:\ Users \ austin.holmes \ Downloads \ botpic.jpg” “ System.Windows.MessageBoxImage”。错误:“无法匹配 标识符名称C:\ Users \ austin.holmes \ Downloads \ botpic.jpg到 有效的枚举器名称。指定以下枚举器名称之一 然后重试:无,手,错误,停止,问题,感叹号, 警告,星号,信息“”在第9行:1+ [System.Windows.MessageBox] :: Show($ msgBody,$ msgTitle,$ msgButton,$ msgimage)

  • CategoryInfo:未指定:(:) [],MethodException
  • FullyQualifiedErrorId:MethodArgumentConversionInvalidCastArgument

代码

$_SourcePath = "C:\dummy.txt"
$_DestinationPath = "D:\"
copy-item –path $_SourcePath –destination $_DestinationPath
$msgButton = [System.Windows.MessageBoxButton]::OK
$msgTitle = “Little Sis Sync Agent Bot!”
$msgbody = “Little Sis Sync Agent files have been moved. Thank me later. :]”
$msgimage = 'C:\Users\austin.holmes\Downloads\botpic.jpg'
[System.Windows.MessageBox]::Show($msgBody,$msgTitle,$msgButton,$msgimage)

我尝试了Invoke-Command,但收到以下错误

$_SourcePath = "C:\Users\austin.holmes\Desktop\dummy.txt"
$_DestinationPath = "C:\"
copy-item –path $_SourcePath –destination $_DestinationPath
Invoke-Command -ComputerName AHC-L80316-AH -ScriptBlock{
$msgButton = [System.Windows.MessageBoxButton]::'OK'
$msgTitle = “Little Sis Sync Agent Bot!”
$msgbody = “Little Sis Sync Agent files have been moved!”
$msgimage = 'Warning'
[System.Windows.MessageBox]::Show($msgBody,$msgimage)}

[AHC-L80316-AH]连接到远程服务器AHC-L80316-AH失败,原因是 以下错误消息:客户端无法连接到 请求中指定的目的地。验证服务上的 目标正在运行并且正在接受请求。查看日志 运行在WS-Management服务上的WS-Management服务和文档 目标,最常见的是IIS或WinRM。如果目的地是 WinRM服务,在目标位置运行以下命令 分析和配置WinRM服务:“ winrm quickconfig”。对于 有关更多信息,请参见about_Remote_Troubleshooting帮助主题

解决方法

在MessageBox中,您只能在MessageBoxImage枚举器中显示可用图标之一。如错误消息所述,请使用无,手,错误,停止,问题,感叹号,警告,星号或信息

要显示自己的图像,必须创建一个单独的表单。

要在远程计算机(在本例中为您自己的计算机)上运行代码,请使用Invoke-Command,并将computername和scriptblock作为参数。锁定以下链接: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/invoke-command?view=powershell-7