我们在powershell配置文件中添加了以下内容,以便收集在命令行中输入的内容。
$LogCommandHealthEvent = $true
$LogCommandLifeCycleEvent = $true
但是如何从这里获取信息,我正在寻找在命令行输入到powershell控制台的内容 -
$event = Get-WinEvent -FilterHashtable @{logname=’Windows Powershell'; id=500} -MaxEvents 1
$Event.Message
给了我信息,但我想要的只是最后一行" CommandLine"
Details:
NewCommandState=Started
SequenceNumber=313
HostName=Windows PowerShell ISE Host
HostVersion=4.0
HostId=6fda55e7-4366-4719-ad59-8962eda1521f
EngineVersion=4.0
RunspaceId=e82c8130-1c67-4d61-b513-9ac55bc148ba
PipelineId=52
CommandName=Get-WinEvent
CommandType=Cmdlet
ScriptName=
CommandPath=
CommandLine=$event = Get-WinEvent -FilterHashtable @{logname=’Windows Powershell'; id=500} -MaxEvents 1
有什么建议吗?
答案 0 :(得分:1)
Message
属性是一个多行字符串,我会用换行符拆分并选择最后一行:
$Event.Message -split "`r?`n" |Select-Object -Last 1