Add functions to collect services and scheduled tasks information
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user