我正在尝试使我的Powershell脚本尽可能简单。但是我在哪里对象子句有麻烦。以下代码可以满足我的要求:
# define calculated variables
$mytime = @{label="Time";expression={$_.timegenerated}}
$myeid = @{l="EID";e={$_.instanceid -band 0xffff}}
$mymsg = @{l="Msg 1st 20";e={$_.message.substring(0,20)}}
# get data
Get-Eventlog system |
where-object { ( $_.instanceid -band 0xffff ) -eq 6005} |
select-object -first 10 instanceid,
$mytime,
$myeid,
$mymsg
但是我想如果where对象可以使用$ myeid],那会更简单。
... where-object { $myeid -eq 6005} | ...
但是当我使用此where-object子句时,没有任何结果。我尝试了各种组合,将其用大括号,括号和$(...)包装,但没有运气。我想念什么?
[后来,我发现已经有一个脚本属性可以提取EventID,但是我仍然想知道为什么这不起作用。
我正在尝试使我的Powershell脚本尽可能简单。但是我在哪里对象子句有麻烦。以下代码满足我的要求:#定义计算变量$ mytime = @ {...
$ myeid只是一个带有字符串和脚本块的哈希表。选择对象已编程为可以使用它。您必须以某种方式运行脚本块$ myeid.e才能获得价值。这接近了。没有括号,“-eq 6005”将被忽略。我将0xf0000添加到6005。