失败时生成事件日志事件

时间:2016-08-30 14:31:25

标签: powershell

尝试使用powershell

获取echo命令失败的事件日志
echo $null > d:\test.write
 if ($?.Status -eq $False) {
   Write-EventLog -LogName "Application" -Source "Drive Checker" -EntryType Error -Message "Touch file failed d:\test.write" -Category 1 -EventId 12 
}

不确定我缺少什么让这项工作..

2 个答案:

答案 0 :(得分:0)

automatic variable $?是一个没有属性Status的布尔值,因此表达式$?.Status的计算结果为$null,而不是等于$false。只需检查布尔值本身:

if (-not $?) {
  Write-EventLog ...
}

答案 1 :(得分:0)

我认为您必须省略.Status并仅在if中使用$?

PS C:\Windows\system32> echo $null > Z:\test.write
PS C:\Windows\system32> $?
True

$? Contains the execution status of the last operation. It contains TRUE if the last operation succeeded and FALSE if it failed.