Tuesday, 2 December 2025

PowerShell Functions with Parameters Tasks

 #PowerShell Functions with Parameters

#1. Get Disk Space Info
function Get-DiskSpace {
    param(
        [string]$DriveLetter = "C"
    )
    Get-PSDrive -Name $DriveLetter | Select-Object Name,
        @{Name="FreeGB";Expression={($_.Free/1GB)}},
        @{Name="UsedGB";Expression={(($_.Used/1GB))}}
}
Get-DiskSpace -DriveLetter "D"

#2. List Running Services
function Get-RunningServices {
    param(
        [string]$Status = "Running"
    )
    Get-Service | Where-Object {$_.Status -eq $Status} | Select-Object Name, DisplayName
}
Get-RunningServices -Status "Stopped"

#3. Rename Files in Bulk
function Rename-Files {
    param(
        [string]$Path,
        [string]$Prefix
    )
    Get-ChildItem -Path $Path -File | ForEach-Object {
        Rename-Item $_.FullName -NewName ($Prefix + $_.Name)
    }
}
Rename-Files -Path "C:\Temp" -Prefix "New_"

#4. Check Internet Connectivity
function Test-Internet {
    param(
        [string]$Host = "google.com"
    )
    try {
        Test-Connection -ComputerName $Host -Count 2 -Quiet
    } catch {
        $false
    }
}
Test-Internet -Host "bing.com"

#5. Clear Temporary Files
function Clear-TempFiles {
    param(
        [string]$Path = "$env:TEMP"
    )
    Get-ChildItem -Path $Path -Recurse -Force | Remove-Item -Force -Recurse
    Write-Output "Temporary files cleared from $Path"
}
Clear-TempFiles -Path "C:\Windows\Temp"

#6. Check Installed Modules
function Get-InstalledModules {
    param(
        [string]$Name
    )
    if ($Name) {
        Get-InstalledModule -Name $Name | Select-Object Name, Version
    } else {
        Get-InstalledModule | Select-Object Name, Version
    }
}
Get-InstalledModules -Name "Az"

#7. Restart Spooler Service Safely

function Restart-ServiceSafe {
    param(
        [string]$ServiceName
    )
    $service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
    if ($service) {
        Restart-Service -Name $ServiceName -Force
        Write-Output "$ServiceName restarted successfully."
    } else {
        Write-Output "Service $ServiceName not found."
    }
}
Restart-ServiceSafe -ServiceName "Spooler"