我试图从Get-WinEvent
消息块中获取文本,通常我只是用它来获取第一句话:
($_.Message).split(".")[0]
如果第一部分由.
Message-Block看起来像这样:
Remotedesktopdienste: Die Sitzungsanmeldung war erfolgreich: Benutzer: testlab\testuser.local Sitzungs-ID: 1 Quellnetzwerkadresse: LOKAL.
我尝试仅提取部分Remotedesktopdienste: Die Sitzungsanmeldung war erfolgreich:
(包括:
将是完美的,但不是强制性的)
简单地使用:
作为分隔符不起作用(第二部分缺失)。
之后,我尝试使用
($_.Message).split(':',2)[0]
应该是消息块中的第二个:
,这会给出Remotedesktopdienste
另一个想法是使用
($_.Message).split('[\r\n]',2)[0]
使用第二个新行,也没有成功,结果是Remotedesktopdie
答案 0 :(得分:2)
所以你想按换行分开:
$MessageArray = $Message.Split("`n")
然后你可以迭代它
$Counter = 0
$MessageBody = ""
foreach($Line in $MessageArray) {
if($Counter -eq 0) {
$FirstLine = $Line
} else {
$MessageBody += $Line + "`n"
}
$Counter++
}
结果是:$FirstLine
有第一行.. $MessageBody
包含其余信息
更新:您甚至可以使用此在线人员
$FirstLine,$MessageBody = $Message.Split("`n")