more fixes
This commit is contained in:
@@ -596,6 +596,68 @@ Function Get-UniqueUserLogonActivity {
|
|||||||
Return $UniqueEvents
|
Return $UniqueEvents
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Function Write-PlainTextTable {
|
||||||
|
Param(
|
||||||
|
[AllowNull()]
|
||||||
|
[object[]]$Rows,
|
||||||
|
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string[]]$Columns
|
||||||
|
)
|
||||||
|
|
||||||
|
$TableRows = @($Rows | Where-Object { $null -ne $_ })
|
||||||
|
If ($TableRows.Count -eq 0) { Return }
|
||||||
|
|
||||||
|
$Widths = @{}
|
||||||
|
|
||||||
|
ForEach ($Column in $Columns) {
|
||||||
|
$ColumnWidth = $Column.Length
|
||||||
|
|
||||||
|
ForEach ($Row in $TableRows) {
|
||||||
|
$Property = $Row.PSObject.Properties[$Column]
|
||||||
|
$Value = ''
|
||||||
|
|
||||||
|
If ($null -ne $Property -and $null -ne $Property.Value) {
|
||||||
|
$Value = [string]$Property.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
If ($Value.Length -gt $ColumnWidth) {
|
||||||
|
$ColumnWidth = $Value.Length
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$Widths[$Column] = $ColumnWidth
|
||||||
|
}
|
||||||
|
|
||||||
|
$HeaderParts = @()
|
||||||
|
$SeparatorParts = @()
|
||||||
|
|
||||||
|
ForEach ($Column in $Columns) {
|
||||||
|
$HeaderParts += $Column.PadRight($Widths[$Column])
|
||||||
|
$SeparatorParts += ('-' * $Widths[$Column])
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output ($HeaderParts -join ' ')
|
||||||
|
Write-Output ($SeparatorParts -join ' ')
|
||||||
|
|
||||||
|
ForEach ($Row in $TableRows) {
|
||||||
|
$LineParts = @()
|
||||||
|
|
||||||
|
ForEach ($Column in $Columns) {
|
||||||
|
$Property = $Row.PSObject.Properties[$Column]
|
||||||
|
$Value = ''
|
||||||
|
|
||||||
|
If ($null -ne $Property -and $null -ne $Property.Value) {
|
||||||
|
$Value = [string]$Property.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
$LineParts += $Value.PadRight($Widths[$Column])
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Output (($LineParts -join ' ').TrimEnd())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Function Write-UserLogonActivityOutput {
|
Function Write-UserLogonActivityOutput {
|
||||||
Param(
|
Param(
|
||||||
[AllowNull()]
|
[AllowNull()]
|
||||||
@@ -609,7 +671,6 @@ Function Write-UserLogonActivityOutput {
|
|||||||
)
|
)
|
||||||
|
|
||||||
Write-Output "Search window: $($StartDateTime.LocalDateTime.ToString('yyyy-MM-dd HH:mm:ss')) through $($EndDateTime.LocalDateTime.ToString('yyyy-MM-dd HH:mm:ss'))"
|
Write-Output "Search window: $($StartDateTime.LocalDateTime.ToString('yyyy-MM-dd HH:mm:ss')) through $($EndDateTime.LocalDateTime.ToString('yyyy-MM-dd HH:mm:ss'))"
|
||||||
Write-Output ''
|
|
||||||
|
|
||||||
$Rows = @($ActivityEvents | Select-Object Date,Time,User,Activity,Source,Details)
|
$Rows = @($ActivityEvents | Select-Object Date,Time,User,Activity,Source,Details)
|
||||||
|
|
||||||
@@ -618,7 +679,7 @@ Function Write-UserLogonActivityOutput {
|
|||||||
Return
|
Return
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Output (($Rows | Format-Table -AutoSize | Out-String -Width 240).TrimEnd())
|
Write-PlainTextTable -Rows $Rows -Columns @('Date', 'Time', 'User', 'Activity', 'Source', 'Details')
|
||||||
}
|
}
|
||||||
|
|
||||||
Function Test-RedundantSessionReconnectUnlock {
|
Function Test-RedundantSessionReconnectUnlock {
|
||||||
@@ -738,15 +799,13 @@ Function Write-PossibleUseWindowOutput {
|
|||||||
$UseWindows = @(Get-PossibleUseWindow -ActivityEvents $ActivityEvents | Sort-Object -Property StartTime)
|
$UseWindows = @(Get-PossibleUseWindow -ActivityEvents $ActivityEvents | Sort-Object -Property StartTime)
|
||||||
|
|
||||||
If ($UseWindows.Count -eq 0) {
|
If ($UseWindows.Count -eq 0) {
|
||||||
Write-Output ''
|
|
||||||
Write-Output 'Possible use windows inferred from returned events: none'
|
Write-Output 'Possible use windows inferred from returned events: none'
|
||||||
Return
|
Return
|
||||||
}
|
}
|
||||||
|
|
||||||
$Rows = @($UseWindows | Select-Object Start,End,User,StartedBy,EndedBy)
|
$Rows = @($UseWindows | Select-Object Start,End,User,StartedBy,EndedBy)
|
||||||
Write-Output ''
|
|
||||||
Write-Output 'Possible use windows inferred from returned events:'
|
Write-Output 'Possible use windows inferred from returned events:'
|
||||||
Write-Output (($Rows | Format-Table -AutoSize | Out-String -Width 240).TrimEnd())
|
Write-PlainTextTable -Rows $Rows -Columns @('Start', 'End', 'User', 'StartedBy', 'EndedBy')
|
||||||
}
|
}
|
||||||
|
|
||||||
# Winlogon 7001/7002 tracks user session logon/logoff more reliably than Security 4624/4634.
|
# Winlogon 7001/7002 tracks user session logon/logoff more reliably than Security 4624/4634.
|
||||||
@@ -867,6 +926,5 @@ Try {
|
|||||||
}
|
}
|
||||||
Catch {
|
Catch {
|
||||||
$PossibleUseWindowError = Get-UserLogonActivityErrorMessage -ErrorRecord $_ -FallbackMessage 'Unable to infer possible use windows.'
|
$PossibleUseWindowError = Get-UserLogonActivityErrorMessage -ErrorRecord $_ -FallbackMessage 'Unable to infer possible use windows.'
|
||||||
Write-Output ''
|
|
||||||
Write-Output "Possible use windows inferred from returned events: unavailable. ${PossibleUseWindowError}"
|
Write-Output "Possible use windows inferred from returned events: unavailable. ${PossibleUseWindowError}"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user