colleague of mine asked me to tweak his event log for dummies script. I’m not sure if there is any use for it, but I thought I would share it as it turned to be something different from the same-same old functions
Add-Type -AssemblyName System.Windows.Forms # Main Form $mainForm = New-Object System.Windows.Forms.Form $font = New-Object System.Drawing.Font(“Consolas”, 13) $mainForm.Text = ” Pick Time Frame” $mainForm.Font = $font $mainForm.ForeColor = 'black' $mainForm.BackColor = 'white' $mainForm.Width = 500 $mainForm.Height = 500 # DatePicker Label $startDatePickerLabel = New-Object System.Windows.Forms.Label $startDatePickerLabel.Text = “start date” $startDatePickerLabel.Location = “15, 10” $startDatePickerLabel.Height = 22 $startDatePickerLabel.Width = 120 $mainForm.Controls.Add($startDatePickerLabel) # MinTimePicker Label $minTimePickerLabel = New-Object System.Windows.Forms.Label $minTimePickerLabel.Text = “start time” $minTimePickerLabel.Location = “15, 45” $minTimePickerLabel.Height = 22 $minTimePickerLabel.Width = 120 $mainForm.Controls.Add($minTimePickerLabel) # DatePicker Label $EndDatePickerLabel = New-Object System.Windows.Forms.Label $EndDatePickerLabel.Text = “End Date” $EndDatePickerLabel.Location = “15, 80” $EndDatePickerLabel.Height = 22 $EndDatePickerLabel.Width = 120 $mainForm.Controls.Add($EndDatePickerLabel) # MaxTimePicker Label $maxTimePickerLabel = New-Object System.Windows.Forms.Label $maxTimePickerLabel.Text = “End time” $maxTimePickerLabel.Location = “15, 115” $maxTimePickerLabel.Height = 22 $maxTimePickerLabel.Width = 120 $mainForm.Controls.Add($maxTimePickerLabel) # tBoxComputerName Label $tBoxComputerNameLabel = New-Object System.Windows.Forms.Label $tBoxComputerNameLabel.Text = “computer” $tBoxComputerNameLabel.Location = “15, 150” $tBoxComputerNameLabel.Height = 22 $tBoxComputerNameLabel.Width = 120 $mainForm.Controls.Add($tBoxComputerNameLabel) # EventLog Label $eventLogLabel = New-Object System.Windows.Forms.Label $eventLogLabel.Text = “EventLog” $eventLogLabel.Location = “15, 185” $eventLogLabel.Height = 22 $eventLogLabel.Width = 120 $mainForm.Controls.Add($eventLogLabel) # startDatePicker $startDatePicker = New-Object System.Windows.Forms.DateTimePicker $startDatePicker.Location = “140, 7” $startDatePicker.Width = “150” $startDatePicker.MaxDate = $(get-date) $startDatePicker.Format = [windows.forms.datetimepickerFormat]::custom $startDatePicker.CustomFormat = “dd/MM/yyyy” $mainForm.Controls.Add($startDatePicker) # startTimePicker $startTimePicker = New-Object System.Windows.Forms.DateTimePicker $startTimePicker.Location = “140, 42” $startTimePicker.Width = “150” $startTimePicker.Format = [windows.forms.datetimepickerFormat]::custom $startTimePicker.CustomFormat = “HH:mm:ss” $startTimePicker.ShowUpDown = $TRUE $mainForm.Controls.Add($startTimePicker) # endDatePicker $endDatePicker = New-Object System.Windows.Forms.DateTimePicker $endDatePicker.Location = “140, 77” $endDatePicker.Width = “150” $endDatePicker.MaxDate = $(get-date) $endDatePicker.Format = [windows.forms.datetimepickerFormat]::custom $endDatePicker.CustomFormat = “dd/MM/yyyy” $mainForm.Controls.Add($endDatePicker) # EndTimePicker $endTimePicker = New-Object System.Windows.Forms.DateTimePicker $endTimePicker.Location = “140, 112” $endTimePicker.Width = “150” $endTimePicker.Format = [windows.forms.datetimepickerFormat]::custom $endTimePicker.CustomFormat = “HH:mm:ss” $endTimePicker.ShowUpDown = $TRUE $mainForm.Controls.Add($endTimePicker) # computername $tBoxComputerName = New-Object System.Windows.Forms.TextBox $tBoxComputerName.Location = New-Object System.Drawing.Size("140,147") $tBoxComputerName.Size = New-Object System.Drawing.Size("260,20") $mainForm.Controls.Add($tBoxComputerName) # eventlog list box $eventLogBox = New-Object System.Windows.Forms.ListBox $eventLogBox.Location = New-Object System.Drawing.Point(140,182) $eventLogBox.Size = New-Object System.Drawing.Size(260,40) $eventLogBox.Height = 120 $options = "Error","Information","FailureAudit","SuccessAudit","Warning" foreach ($option in $options) { [void] $eventLogBox.Items.Add($option) } $mainForm.Controls.Add($eventLogBox) # OD Button $okButton = New-Object System.Windows.Forms.Button $okButton.Location = “15, 400” $okButton.ForeColor = “Black” $okButton.BackColor = “White” $okButton.Text = “OK” $okButton.add_Click({$mainForm.close()}) $mainForm.Controls.Add($okButton) [void] $mainForm.ShowDialog() $outStartDate = get-date ($startDatePicker.Value.Date) $outStartDate = $outStartDate.AddHours($startTimePicker.Value.Hour).AddMinutes($startTimePicker.Value.Minute).AddSeconds($startTimePicker.Value.Second) $outEndDate = get-date ($endDatePicker.Value.Date) $outEndDate = $outEndDate.AddHours($endTimePicker.Value.Hour).AddMinutes($endTimePicker.Value.Minute).AddSeconds($endTimePicker.Value.Second) if ($outEndDate -gt (Get-Date)) {$outEndDate = Get-Date} Get-EventLog -ComputerName $tBoxComputerName.Text -LogName System -After $outStartDate -Before $outEndDate -EntryType $eventLogBox.Text | Out-GridView