Files
Zack Meier 03dba08135 sync
2026-04-15 15:42:41 -05:00

454 lines
7.0 KiB
PowerShell

$IISservers = @"
DHSSOSRVLNAPP
DHSSOSRVLNHUB
DOTSERVER3
ITDANDCONT2
ITDAPP11
ITDAPP12
ITDAPP7
ITDAPP8
ITDAPPSCANENT
ITDAPV
ITDASR1
ITDASR2
ITDAUDIT1
itdbzprod1
ITDCA5
ITDCA6
ITDCC2
ITDCDEWEB
ITDCDEWEB1
ITDCITRIXLIC
ITDCJISNETP1
ITDCJISNETT1
ITDCJISNETT2
ITDCJISSQLP1
ITDCJISSQLT1
ITDCLOUDNET1
ITDCLOUDNETP1
ITDCLOUDNETP2
ITDCLOUDNETP3
ITDCLOUDNETT2
ITDCLOUDNETTRN1
ITDCNDHEBOOKS1
ITDCNDHEFRDP10
ITDCNDHEFRDP6
ITDCNDHEHRDP1
ITDCNDHEHRDP7
ITDCNDHEUPK1
ITDCNDHEURDP1
ITDCNDSTBOOKS1
ITDCNDSTFRDP4
ITDCNDSTFRDP6
ITDCNDSTHQWT
ITDCNDSTHRDP6
ITDCNDSTLRDP6
ITDCNDSTLSCORM1
ITDCNDSTRDP855
ITDCNDSTRRDP6
ITDCNDSTRWP
ITDCNDSTUPK1
ITDCNDSTURDP1
ITDCOG11TST
ITDCOGENTDEV
ITDCOGENTPRD1
ITDCOGENTPRD2
ITDCOGENTPUB
ITDCOGENTTST
ITDCOGMMISPRM
ITDCOGMMISPRM2
ITDCOGMMISSIT
ITDCOGMMISTRN
ITDCOGMMISUAT
ITDCOGNDUS
ITDCOMPLIANCE1
ITDCOMPLIANCE2
ITDCRMP1
ITDCRMP2
ITDDEQAPPP1
ITDDEQAPPT1
ITDDEQNETP1
ITDDEQNETT1
ITDDESNETP1
ITDDESNETT1
ITDDEVOS
ITDDFSP1
itddhsawarepz1
itddhsawaretz1
ITDDHSMIDMZP1
ITDDHSMIDMZT1
ITDDHSMIRRIMGP1
ITDDHSMIRRIMGT1
ITDDHSPYXCCEP1
ITDDHSPYXCCET1
ITDDHSPYXESP1
ITDDHSPYXEST1
ITDDHSQMSP1
ITDDHSQMST1
ITDDLMACPT1
ITDDLMDEV1
ITDDLMPRTPROD
ITDDLMSIT1
ITDDLMTRNG1
ITDDLMUAT1
itddmrdmscnv
itddmrdmspfta
itddmrdmspftw
itddmrdmsprda
itddmrdmsprdw
itddmrdmssit
itddmrdmssta
itddmrdmsstw
itddmrdmstrn
itddmrdmsuat
itddmrdmsuit
itddmrdmsutlb
ITDDOCAPPP1
ITDDOCNETP1
ITDDOCNETT1
ITDDOCRCIPS
ITDDOCRRDS
ITDDOHICP1
ITDDOHIMSP1
ITDDOHIMST1
ITDDOHLEGENDP2
ITDDOHLEGENDP3
ITDDOHLEGENDT2
ITDDOHLEGENDT3
ITDDOHNETP3
ITDDOHNETT3
ITDDOHNETT4
ITDDOHPRSP1
itddohslimst1
ITDDOHVID
ITDDOTAPPT1
ITDDOTATMSQ1
ITDDOTDTIMSP1
ITDDOTDTIMST1
ITDDOTEXTDSAIIS
ITDDOTFCR1
ITDDOTFLEETP1
ITDDOTFLEETT1
ITDDOTFRSQL1
ITDDOTGISWEB
ITDDOTGISWEB2
ITDDOTGISWEB3
ITDDOTHEAT
ITDDOTINTDSAIIS
ITDDOTMVP1
ITDDOTMVP2
ITDDOTMVP3
ITDDOTMVS2
ITDDOTMVS3
ITDDOTNAS3
ITDDOTNETEP1
ITDDOTNETET1
ITDDOTNETP1
ITDDOTNETT1
ITDDOTNETT2
ITDDOTRTP1
ITDDOTRTT1
ITDDOTSCCM12
ITDDOTSERVER4
ITDDOTSTS
ITDDOTTFSP1
itddottrvltmp1
ITDDOTUNI3
ITDDOTUNI4
ITDDPA1
ITDDPINETT1
ITDDPISAARP1
ITDDPISAARP2
ITDDPISAART1
ITDDPISAART2
ITDECAS2
ITDERNSAG1
ITDERNSAG10
ITDERNSAG12
ITDERNSAG13
ITDERNSAG2
ITDERNSAG3
ITDERNSAG4
ITDERNSAG5
ITDERNSAG6
ITDERNSAG7
ITDERNSAG8
ITDERNSAG9
ITDEXCHCASBIS1
ITDEXCHCASMAN1
ITDEXCHMBXBIS1
ITDEXCHMBXBIS2
ITDEXCHMBXMAN1
ITDEXCHMBXMAN2
ITDEXCHT1
ITDEXCHT2
ITDFUSION
ITDGEOLYNX1
ITDGEOLYNX2
ITDGISUTILITY
ITDGNFCODY2
ITDGNFGEO1
ITDHEATDEV1
ITDHEATPROD1
ITDHEATT1
ITDHPNEARP1
ITDHPNEARP2
ITDHPNEARP3
ITDHPNEARP4
ITDHPNEART1
ITDHPNEART2
ITDILAPP1
ITDILAPP1TST
ITDILEF1
ITDILEF1TST
ITDILEM1
ITDILEM1TST
ITDILWEB1
ITDILWEB1TST
ITDILWEB2
ITDILWEB2TST
ITDJSNABSUITEP1
ITDJSNABSUITEP2
ITDJSNLDAPC
ITDJSNUIP1
ITDJSNUIT1
ITDK12ADFS1
ITDK12ADFS2
ITDK12ADFSD1
ITDK12ADFSPROXY
ITDK12ADFSS1
ITDK12FIMPTL1
ITDK12FIMPTL2
ITDK12FIMPTLS1
ITDK12FIMPTLS2
itdk12vpointweb
ITDLANSWEEPER
ITDLIST
ITDLISTDEV
ITDLOCALITY
ITDMBAM1
ITDMFA1
ITDMFA2
ITDMFA3
ITDMFAPORTAL1
ITDMFASERVER1
ITDMFASQL1
ITDMFASQL2
ITDMFAT1
ITDMFAVPNAGENT1
ITDMFAVPNAGENT2
ITDMIDMZT1
ITDMIGATEWAY
ITDMIGATEWAYT1
ITDMITRANSFERP1
ITDMMISTMART
ITDNADEFENDP1
ITDNANFSTEST
itdnbaio
itdnbweb1
ITDNET35P1
ITDNET35P2
ITDNET35T1
ITDNET35T2
ITDNETP1
ITDNETP2
ITDNETP4
ITDNETT1
ITDNETT2
ITDNETT4
ITDNETU2
ITDNPS2
ITDOMBNETP1
ITDOMBNETT1
ITDOMBWR
ITDOPENSCAN1
ITDOPENSCAN1TST
ITDOPENSCAN2
ITDOUTMAN1
ITDOWAPPTEST
ITDOWAPROD
ITDPAESMEXT1
ITDPAESMINT1
ITDPREMIERP1
ITDPREMIERP2
ITDPREMIERSQLT1
ITDPREMIERT1
ITDPREMIERTRN1
ITDPS-IMAGES
ITDPS-UPDATE
ITDPV2
ITDPVTEST
ITDPWDSG
ITDRATRPT2
ITDRATRPT3
ITDRATRPT4
ITDRFAX
itdrpaorchp1
itdrpaorcht1
ITDRRISYNERGY
itdsaoicp1
ITDSCCM1
ITDSCCM1REPORT
ITDSCCMP2
ITDSCCMP2MAC1
ITDSCCMUP1
ITDSCCMWSUS1
ITDSCCMWSUSUP1
ITDSHSAPPS
ITDSHSPRESRVP1
ITDSITXPR4
ITDSKYPEBIS1
ITDSKYPEBIS2
ITDSKYPEDIR1
ITDSKYPEEDGE1
ITDSKYPEEDGET1
ITDSKYPEFET1
ITDSKYPEMAN1
ITDSKYPEMAN2
ITDSLDSMLDE
ITDSLDSSPPROD2
ITDSLEDD1HE
ITDSLEDD1K12
ITDSLRWNDS
ITDSLRWNDSTEST
ITDSOSBLSAPPP1
ITDSOSBLSAPPT1
ITDSOSBLSWEBP1
ITDSOSBLSWEBT1
ITDSOSBPIWP1
ITDSOSBPIWP2
ITDSOSBPWT1
ITDSOSBPWT2
ITDSOSINDEXP1
ITDSOSINDEXP2
ITDSOSINDEXT1
ITDSOSINDEXTRN1
ITDSOSVIPP1
ITDSOSVIPP2
ITDSOSVIPT1
ITDSOSVOICESP1
ITDSOSVOICESP2
ITDSOSVOICEST1
ITDSPDEVK12TST
ITDSPSLDSPROD
ITDSPSPROD
ITDSPSPROD1DR13
ITDSPSPRODSERV
ITDSPSTEST
ITDSTORADMIN3
ITDTAXAPPP2
ITDTEAMP1
ITDTEAMT1
ITDTESTDEVCA6
ITDTEXCAS1
ITDTEXCAS2
ITDTEXMBX1
ITDTEXMBX2
ITDTFSP2
ITDTFSP3
ITDTFSSPPROD
ITDTFST2
ITDTRVPHRAPP1
ITDTRVPHRGW
ITDTSKYPEFE1
ITDTSKYPEFE2
ITDTSKYPEFE3
ITDTSKYPEFE4
ITDVMVCP1SCRIPT
ITDVMVCP2SCRIPT
ITDVMVRAIAASP1
ITDVMVRAIAAST1
ITDWSIEXTAPPC1
ITDWSIEXTAPPC2
ITDWSIEXTAPPD1
ITDWSIEXTAPPP1
ITDWSIEXTAPPP2
ITDWSIEXTAPPT1
ITDWSIEXTAPPT2
ITDWSIEXTSQLT1
ITDWSIEXTSRVP1
ITDWSIEXTSRVT1
ITDWSIITSM
ITDWSINETP1
ITDWSINETT1
ITDWSINETT2
ITDWSIPRDWEB01
ITDWSITESTCERT1
ITDWSITESTDEVM1
ITDWSITESTDEVR1
ITDWSITESTSYS01
ITDWSITESTUAT01
ITDWSSPROD
ITDWSSTEST
ITDWSUS
ITDWWW10
ITDWWW11
ITDWWW12
ITDWWW3
ITDWWW7
ITDWWW8
ITDWWW9
itdwwwdev10
ITDWWWDEV3
ITDWWWDEV7
ITDWWWDEV8
ITDWWWDEV9
NODAK00
NODAK02
NODAK04
WSIAPP1
"@
$servers = ConvertTo-Array -MultiLineString $IISservers
$result = @()
$func = {
try {
Import-Module WebAdministration
#$result=@()
$sites = Get-ChildItem IIS:\Sites\
ForEach ($site in $sites) {
$id = $site.id
$logdir = $site.logfile.directory + "\w3svc" + $id
If ($logdir -like "*%SystemDrive%*") {
$location = $site.logfile.directory -replace '%SystemDrive%', 'C:'
}
else {
$Location = $logdir
}
$LogFilesAll = Get-ChildItem $location -Recurse
$LogFiles15D = $LogFilesAll | Where-Object LastWriteTime -lt ((Get-Date).AddDays(-15))
$LogFiles30D = $LogFilesAll | Where-Object LastWriteTime -lt ((Get-Date).AddDays(-30))
$LogFiles60D = $LogFilesAll | Where-Object LastWriteTime -lt ((Get-Date).AddDays(-60))
$LogFiles90D = $LogFilesAll | Where-Object LastWriteTime -lt ((Get-Date).AddDays(-90))
$OldestDate = ($LogFilesAll | Sort-Object LastWriteTime | Select-Object -First 1).LastWriteTime
$obj = [PSCustomObject]@{
SiteName = $site.Name;
LogDir = $location;
LogsAll = [math]::round(($LogFilesAll | measure-object -sum length).sum/1MB, 2);
Logs15D = [math]::round(($LogFiles15D | measure-object -sum length).sum/1MB, 2);
Logs30D = [math]::round(($LogFiles30D | measure-object -sum length).sum/1MB, 2);
Logs60D = [math]::round(($LogFiles60D | measure-object -sum length).sum/1MB, 2);
Logs90D = [math]::round(($LogFiles90D | measure-object -sum length).sum/1MB, 2);
OldestFile = $OldestDate;
}
$obj
}
}
catch {
}
}
$result = Invoke-Command -Credential $AdminCred -ScriptBlock $func -ComputerName $servers
$funcCleanup = {
Get-Childitem -Path $args[0] | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$args[1]) }
}
ForEach ($site in $result) {
Invoke-Command -ComputerName $site.PSComputerName -ScriptBlock $funcCleanup -Credential $AdminCred -ArgumentList $site.PSComputerName, $site.LogDir, 90
}