2017-10-06 93 views
0

我想知道如何使用Invoke-Command传递参数以在脚本内使用以远程运行。参数不会与Invoke-Command远程使用,-computername返回null

enter code here 
Param(
[string]$cname = (Read-Host "Computer Name?") , 
[string]$event = (Read-Host "What event?") , 
[string]$eventfilter = (Read-Host "What key word are you looking for?") ' 
[string]$amount = (Read-Host "How many events do you want to see?") 
) 
Invoke-Command -cn $cname -ScriptBlock {Get-EventLog -cn $cname -LogName $event -Message "*$eventfilter*" -Newest $amount | FT -Wrap} 

我想知道这是否可能,我需要做什么来修复这个脚本? 感谢

+0

做一些研究似乎我需要使用的参数通过调用命令cmdlet来传递变量。仍试图找出那部分。 – vnavna

+0

Param( [string] $ cname ='读取主机计算机名?', [string] $ event ='读取主机什么事件?', [string] $ eventfilter ='读取主机什么关键字是', [string] $ amount ='Read-Host你想看多少事件?' )Invoke-Command -ScriptBlock {Get-EventLog -cn $ cname -LogName $ event -Message * $ eventfilter *“| FT -Wrap} – vnavna

回答

0
$cname = Read-Host "Computer Name?" 
$event = Read-Host "What event?" 
$eventfilter = Read-Host "What key word are you looking for?" 
$amount = Read-Host "How many events do you want to see?" 


Invoke-Command -cn $cname -ScriptBlock {Get-EventLog -cn $using:cname -LogName $using:event -Message "*$eventfilter*" -Newest $using:amount | FT -Wrap} 
+0

$ using:命令修复了这个问题。 – vnavna

+0

使用变量只能用于脚本工作流中的Invoke-Command,Start-Job或InlineScript。当它与Invoke-Command, 一起使用时,只有在远程计算机上调用脚本块时,Using变量才有效。 – vnavna