简体   繁体   English

在定义的时间后关闭远程系统上的Powershell弹出消息

[英]Powershell popup message on remote system closing after defined time

I like to be able to configure in my gui how much time will elapse before closing a popup message on remote cpu. 我希望能够在gui中配置关闭远程CPU上的弹出消息之前要经过多少时间。 I would like to have 2 options. 我想有2个选择。 Popup not close and popup close after x seconds. 弹出窗口未关闭,弹出窗口在x秒后关闭。 My $seconds parameter not work. 我的$ seconds参数不起作用。

Function Send-PopupMessage1 {
Param(
[Int]$Seconds=""
)


Process{
Invoke-Command -ComputerName $cpu -Scriptblock {
    $CmdMessage = "msg.exe * $using:var2 /Time:$($Seconds)"
    Write-Host $CmdMessage
    $CmdMessage | Invoke-Expression
    }
}
}

if ($checkBox1.Checked)
{
Send-PopupMessage
}
else
{
Send-PopupMessage1 -Seconds $var1
}

This work better. 这样工作更好。 Now its good. 现在好了。

Function Send-PopupMessage1 {
Param(
[String]$Message="$var",

[Parameter(ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True)]
[Alias("Name")]
[String[]]$Computername=$var2,

[Int]$Seconds="$var1"
)


Process{
Invoke-Command -ComputerName $Computername -ScriptBlock{

    $cmd = "msg.exe * /Time:$($using:Seconds)"
    $cmd += " $($using:Message)"

    Invoke-Expression $cmd
    }
}
}

Use the using qualifier that make $Seconds available inside the Invoke-Command block: 使用使$SecondsInvoke-Command块内可用的using限定符:

Invoke-Command -ComputerName $cpu -Scriptblock {
  $CmdMessage = "msg.exe * $using:var2 /Time:$($using:Seconds)"
  Write-Host $CmdMessage
  $CmdMessage | Invoke-Expression
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM