我有一個使用第三方軟件存儲機密醫療信息的客戶端。我們現在需要找出哪些用戶在數據庫中打開了特定的記錄。我一直與供應商聯繫,他們登錄它的唯一方式是在每臺計算機上的文本文件中(顯然)。我需要從每臺計算機上解析這個文本文件來提取我需要的信息。這是文本文件中信息的匿名示例 - 爲了便於閱讀,我在每行之間添加了空格。從文本文件解析日期並提取日期大於X的行
登錄| 10/03/2012 | 01:12:45 |約翰·史密斯博士| 3 | FS01 | Windows 7的域控制器的終端服務的Service Pack 1(6.1構建7601)| 3.12.1
進度備註 - 新紀錄已打開| 10/03/2012 | 01:13:33 | John Smith博士| 666241 | 8463 | Richard Test^05/09/1956 | .F。| .T。| 1 | FS01
進展注 - 由用戶丟棄| 10/03/2012 | 01:14:29 |約翰·史密斯博士| 666241 | 8463 |理查德測試| .F | .T | FS01
我可以很容易地拉出任何有問題的記錄名稱,即「理查德測試」,但這些日誌一直回到2012年。有沒有人有任何想法如何我可以解析每行的日期,以便我可以例如01/01/2016後拉什麼東西?
import-module activedirectory
$computers = "FS01"#get-adcomputer -filter * | Select-object -ExpandProperty Name
foreach($computer in $computers){
$path = "\\$computer\C$\Users\Public\Documents\HCN\MD\MDTrace.LOG"
If(Test-Connection -ComputerName $computer -Count 1 -ErrorAction SilentlyContinue){
If(Test-Path $Path){
Get-Content -Path $path | foreach { if($_ -match "Thomas Hogan"){Write-Output "$computer -- $_"} }
}
}
}
感謝Dave。我需要更密切地關注正則表達式。看起來很困難 –