diff --git a/start-audit.ps1 b/start-audit.ps1 index aa55553..599c0fd 100644 --- a/start-audit.ps1 +++ b/start-audit.ps1 @@ -176,7 +176,7 @@ function Get-FirewallInfo { $FirewallInfo = @() foreach ($profile in $FirewallProfiles) { - $FirewallInfo += @{ + $FirewallInfo += [pscustomobject]@{ "Profile Name" = $profile.Name "Enabled" = $profile.Enabled "Default Inbound Action" = $profile.DefaultInboundAction @@ -269,6 +269,54 @@ function Get-InstalledApplication { return $InstalledApps | Select-Object Name, Version, Publisher, InstallDate } +function Get-Services { + param( + [string]$Target + ) + $Services = Get-Service -ComputerName $Target + $ServicesInfo = @() + foreach ($service in $Services) { + $ServicesInfo += [pscustomobject]@{ + "Service Name" = $service.Name + "Display Name" = $service.DisplayName + "Status" = $service.Status + "Start Mode" = $service.StartType + } + } + + return $ServicesInfo +} + +function Get-ScheduledTasks { + param( + [string]$Target + ) + $ScheduledTasksInfo = Invoke-Command -ComputerName $Target -ScriptBlock { + $Tasks = Get-ScheduledTask + $ScheduledTasks = @() + foreach ($task in $Tasks) { + $TaskInfo = Get-ScheduledTaskInfo -TaskName $task.TaskName -TaskPath $task.TaskPath + + $ScheduledTasks += [pscustomobject]@{ + "Task Name" = $task.TaskName + "Task Path" = $task.TaskPath + "Task State" = $task.State + "RunAS" = $Task.Principal.UserId + "Task Last Run Time" = $TaskInfo.LastRunTime + "Task Next Run Time" = $TaskInfo.NextRunTime + "Last Task Result" = $TaskInfo.LastTaskResult + "Autor" = $Task.Author + } + } + + $ScheduledTasks + } + + return $ScheduledTasksInfo + + +} + <# function Get-WindowsUpdateSettings { param( [string]$Target @@ -321,11 +369,16 @@ foreach ($server in $Target) { Write-Message -Type "Success" Write-Verbose ($FirewallConfiguration | Out-String) - Write-Message -Message "Collecting information abut local admins" + Write-Message -Message "Collecting information about local admins" $LocalAdminsInfo = Get-LocalUserAdmins -Target $server Write-Message -Type "Success" Write-Verbose ($LocalAdminsInfo | Out-String) + Write-Message -Message "Collecting Scheduled Tasks information" + $ScheduledTasksInfo = Get-ScheduledTasks -Target $server + Write-Message -Type "Success" + Write-Verbose ($ScheduledTasksInfo | Out-String) + Write-Message -Message "Collecting server roles information" if($GeneralInfo.'Domain Role Id' -ge 2) { $ServerRoles = Get-Roles -Target $server @@ -340,6 +393,11 @@ foreach ($server in $Target) { Write-Message -Type "Success" Write-Verbose ($InstalledApplications| Out-String) + Write-Message -Message "Collecting information about services" + $ServicesInfo = Get-Services -Target $server + Write-Message -Type "Success" + Write-Verbose ($ServicesInfo | Out-String) + #region HTML Report Write-Message -Message "Generating HTML report" $dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" @@ -378,7 +436,14 @@ foreach ($server in $Target) { } New-HTMLPanel { New-HTMLTable -DataTable $HardwareInfo.Disk -HideFooter -Simplify { - New-TableHeader -Title 'Disk' + New-TableHeader -Title 'Disk' -Alignment 'left' + } + } + } + New-HTMLSection -HeaderText 'Users & Groups' { + New-HTMLPanel { + New-HTMLTable -DataTable $LocalAdminsInfo -HideFooter -HideButtons { + New-TableHeader -Title 'Local Admins' } } } @@ -395,16 +460,18 @@ foreach ($server in $Target) { } } - New-HTMLSection -HeaderText 'Server Roles' { - New-HTMLPanel { - New-HTMLTable -DataTable $LocalAdminsInfo -HideFooter -HideButtons { - New-TableHeader -Title 'Local Admins' + New-HTMLSection -Invisible { + New-HTMLSection -HeaderText 'Scheduled Tasks' { + New-HTMLTable -DataTable $ScheduledTasksInfo -HideFooter -Title "$server $dateTime Scheduled Tasks" { + New-TableHeader -Title 'Task Scheduler' } } - - New-HTMLPanel { - New-HTMLTable -DataTable $ServerRoles -HideFooter -HideButtons { - New-TableHeader -Title 'Server Roles' + + New-HTMLSection -HeaderText 'Server Roles' { + New-HTMLPanel { + New-HTMLTable -DataTable $ServerRoles -HideFooter -HideButtons { + New-TableHeader -Title 'Server Roles' + } } } } @@ -419,6 +486,16 @@ foreach ($server in $Target) { } } } + New-HTMLTab -TabName 'Services' { + New-HTMLSection -HeaderText 'Services' { + New-HTMLPanel { + New-HTMLTable -DataTable $ServicesInfo -HideFooter -PagingLength 50 -Title "$server $dateTime Installed Apps" { # Title will be used for filename when using export + New-TableHeader -Title 'Services' + + } + } + } + } } Write-Message -Type "Success"