Functions/Get-SplunkStatus.ps1

function Get-SplunkStatus {
<#
.NOTES
    Author: Skyler Hart
    Created: 2021-08-13 21:52:22
    Last Edit: 2021-08-13 21:52:22
    Keywords:
    Other:
        -RunAsAdministrator
.LINK
    https://wanderingstag.github.io
#>

    [CmdletBinding()]
    param(
        [Parameter(
            Mandatory=$false,
            Position=0
        )]
        [Alias('Host','Name','Computer','CN')]
        [string[]]$ComputerName = "$env:COMPUTERNAME"
    )

    if ($ComputerName -eq $env:COMPUTERNAME) {
        $info = Get-Service -Name SplunkForwarder -ComputerName $comp
        [PSCustomObject]@{
            ComputerName = $comp
            SplunkStatus = ($info.Status)
        }#new object
    }
    else {
        $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
        if ($currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
            $i = 0
            $number = $ComputerName.length
            foreach ($Comp in $ComputerName) {
                #Progress Bar
                if ($number -gt "1") {
                    $i++
                    $amount = ($i / $number)
                    $perc1 = $amount.ToString("P")
                    Write-Progress -activity "Getting status of Splunk Service" -status "Computer $i ($comp) of $number. Percent complete: $perc1" -PercentComplete (($i / $ComputerName.length)  * 100)
                }#if length
                $info = Get-Service -Name SplunkForwarder -ComputerName $comp
                [PSCustomObject]@{
                    ComputerName = $comp
                    SplunkStatus = ($info.Status)
                }#new object
            }
        }
        else {Write-Error "Must be ran as administrator"}
    }
}