Files
Backup/_NDGOV_WindowsTeam/ITD.Infra-Servers-PowerShellUniversal.Test/ITD-Windows.General/Remove-ITDExpiredFilesAuto_script.ps1
T
Zack Meier 1d304511b8 update
2026-04-15 15:45:50 -05:00

83 lines
3.2 KiB
PowerShell

Param(
[string]
$ComputerName,
[switch]
$WhatIf,
[switch]
$Quiet
)
$RemoveITDExpiredFilesAutoParams = @{
}
If ($PSBoundParameters.ContainsKey('ComputerName')) {
Write-Verbose -Message "ComputerName parameter"
$RemoveITDExpiredFilesAutoParams += @{ComputerName = $ComputerName }
}
If ($PSBoundParameters.ContainsKey('WhatIf')) {
Write-Verbose -Message "WhatIf parameter"
$RemoveITDExpiredFilesAutoParams += @{WhatIf = $true }
}
$StartTime = (Get-Date)
$FilesRemoved = Remove-ITDExpiredFilesAuto @RemoveITDExpiredFilesAutoParams -Verbose -Credential $Secret:itdsccmsrvcpiandgov
# get information for notes
$DiskBytesRecovered = ($FilesRemoved | Measure-Object -Sum length).Sum
$Notes = "PSComputerName~Length~FullName" + "`n"
$Notes += ForEach ($File in $FilesRemoved) {
If ($File) {
$File.PSComputerName + "~" + $File.Length + "~" + $File.FullName + "`n"
}
}
$Notes += "$DiskBytesRecovered bytes of disk saved."
Write-Verbose -Message "Notes: `n$Notes" -Verbose
$EndTime = (Get-Date)
If ($PSBoundParameters.ContainsKey('Quiet') -and $Quiet -eq $true) {
Write-Verbose -Message "Quiet mode enabled. No ServiceNow interactions will be done." -Verbose
}
Else {
Write-Verbose -Message "Quiet mode disabled. ServiceNow CHG will be generated."
# create std chg and close it
New-ITDServiceNowSession Test -Credential $Secret:SNowVMCred
$NewITDServiceNowChangeRequestParams = @{
TemplateName = 'NDIT-SPS-Server Add/Chg/Del'
RequestedByUsername = 'zmeier';
Category = 'Systems Platforms - Systems';
Subcategory = 'Windows';
Impact = 3;
ShortDescription = "Remove files flagged for expiration and cleanup - Remove-ITDExpiredFilesAuto_script - $UAJobId";
Description = "Remove files flagged for expiration and cleanup";
Justification = "Some files are generated on a recurring basis causing increase in disk space usage. This automation removes specific file types from specified file paths that have been flagged for removal.";
Implementation = "PSUniversal execution";
RiskImpactAnalysis = "Low, files can be discovered before the removal";
BackoutPlan = "Restore from backup (if applicable)"
TestPlan = "n/a"
WhoIsImpacted = "Windows System Administrators";
StartTime = $StartTime
EndTime = $EndTime;
AssignmentGroup = 'NDIT-Computer Systems Windows';
ChangeManagerUsername = 'khellman';
ChangeCoordinatorUsername = 'gpgolberg';
AssignedToUsername = 'zmeier';
}
If ($PSBoundParameters.ContainsKey('WhatIf')) {
$NewITDServiceNowChangeRequestParams.ShortDescription += " -WhatIf"
}
$CHG = New-ITDServiceNowChangeRequest @NewITDServiceNowChangeRequestParams
Update-ITDServiceNowRecord -ItemType "Change Request" -Number $CHG.Number.Value -Values @{
work_notes = $Notes;
}
Complete-ITDServiceNowChangeRequest -Number $CHG.Number.value -CloseCode "Successful" -CloseNotes "Files removed."
}