Add functions to collect services and scheduled tasks information
This commit is contained in:
@@ -176,7 +176,7 @@ function Get-FirewallInfo {
|
|||||||
|
|
||||||
$FirewallInfo = @()
|
$FirewallInfo = @()
|
||||||
foreach ($profile in $FirewallProfiles) {
|
foreach ($profile in $FirewallProfiles) {
|
||||||
$FirewallInfo += @{
|
$FirewallInfo += [pscustomobject]@{
|
||||||
"Profile Name" = $profile.Name
|
"Profile Name" = $profile.Name
|
||||||
"Enabled" = $profile.Enabled
|
"Enabled" = $profile.Enabled
|
||||||
"Default Inbound Action" = $profile.DefaultInboundAction
|
"Default Inbound Action" = $profile.DefaultInboundAction
|
||||||
@@ -269,6 +269,54 @@ function Get-InstalledApplication {
|
|||||||
return $InstalledApps | Select-Object Name, Version, Publisher, InstallDate
|
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 {
|
<# function Get-WindowsUpdateSettings {
|
||||||
param(
|
param(
|
||||||
[string]$Target
|
[string]$Target
|
||||||
@@ -321,11 +369,16 @@ foreach ($server in $Target) {
|
|||||||
Write-Message -Type "Success"
|
Write-Message -Type "Success"
|
||||||
Write-Verbose ($FirewallConfiguration | Out-String)
|
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
|
$LocalAdminsInfo = Get-LocalUserAdmins -Target $server
|
||||||
Write-Message -Type "Success"
|
Write-Message -Type "Success"
|
||||||
Write-Verbose ($LocalAdminsInfo | Out-String)
|
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"
|
Write-Message -Message "Collecting server roles information"
|
||||||
if($GeneralInfo.'Domain Role Id' -ge 2) {
|
if($GeneralInfo.'Domain Role Id' -ge 2) {
|
||||||
$ServerRoles = Get-Roles -Target $server
|
$ServerRoles = Get-Roles -Target $server
|
||||||
@@ -340,6 +393,11 @@ foreach ($server in $Target) {
|
|||||||
Write-Message -Type "Success"
|
Write-Message -Type "Success"
|
||||||
Write-Verbose ($InstalledApplications| Out-String)
|
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
|
#region HTML Report
|
||||||
Write-Message -Message "Generating HTML report"
|
Write-Message -Message "Generating HTML report"
|
||||||
$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
|
$dateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
|
||||||
@@ -378,7 +436,14 @@ foreach ($server in $Target) {
|
|||||||
}
|
}
|
||||||
New-HTMLPanel {
|
New-HTMLPanel {
|
||||||
New-HTMLTable -DataTable $HardwareInfo.Disk -HideFooter -Simplify {
|
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-HTMLSection -Invisible {
|
||||||
New-HTMLPanel {
|
New-HTMLSection -HeaderText 'Scheduled Tasks' {
|
||||||
New-HTMLTable -DataTable $LocalAdminsInfo -HideFooter -HideButtons {
|
New-HTMLTable -DataTable $ScheduledTasksInfo -HideFooter -Title "$server $dateTime Scheduled Tasks" {
|
||||||
New-TableHeader -Title 'Local Admins'
|
New-TableHeader -Title 'Task Scheduler'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
New-HTMLPanel {
|
New-HTMLSection -HeaderText 'Server Roles' {
|
||||||
New-HTMLTable -DataTable $ServerRoles -HideFooter -HideButtons {
|
New-HTMLPanel {
|
||||||
New-TableHeader -Title 'Server Roles'
|
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"
|
Write-Message -Type "Success"
|
||||||
|
|||||||
Reference in New Issue
Block a user