powershell skriv alarm hvis fil antallet er over f.eks 10000
Hejsa
Jeg har igår været igang med at sammenstykket dette lille script. Meningen er scriptet skal gå ud og tælle antal filer for samme mappe i hver serverserie. Det gør det egentlig også nu :-) Men er det muligt at få scriptet til at skrive en alarm hvis antallet af filer overstiger f.eks 100000 filer ?
Du har jo antallet af filer i $Share.Count, så du kan f.eks. lave følgende check: $FileLimit = 10000 if($Share.Count -gt $FileLimit) { Write-Warning "There's more than $FileLimit files, do something!" }
Tak skal du have for det hurtige svar, som tænker jeg godt kan bruge. Har prøvet minglere lidt rundt med det. Men uanset, så får jeg ikke det resultat, jeg gerne vil have. Jeg vil gerne have den skal skrev for hver server i hver serie. Det gør den ikke nu, for hvad jeg er kommet frem til ... tænker jeg skal have noget foreach if else med, på en eller anden måde ....
foreach ($ePO in $ePOs) { $Share = Get-ChildItem -Path \\$ePO\C$\test -Recurse -File | Measure-Object | Select Count Write-host Agenthandler, $ePO, Counts $Share.count files in Eventshare} if($Share.Count -gt $FileLimit) { Write-Warning "There's more than $FileLimit files, do something!" }
foreach ($Agenthandler in $Agenthandlers) { Write-host Agenthandler, $Agenthandler, Counts $Share.count files in Eventshare} if($Share.Count -gt $FileLimit) { Write-Warning "There's more than $FileLimit files, do something!"
}
result: Agenthandler localhost Counts 6 files in Eventshare Agenthandler localhost Counts 6 files in Eventshare WARNING: There's more than 5 files, do something! Agenthandler LAPTOP-05 Counts 6 files in Eventshare Agenthandler LAPTOP-05 Counts 6 files in Eventshare WARNING: There's more than 5 files, do something!
Jeg er ikke helt med på hvad du gerne vil have som output, men prøv at se om det her kan bruges. Scriptet skriver kun én linie per ePO og Agenthandler der checkes. Hvis der er for mange filer bliver outputtet lavet som en warning, ellers noteres antallet bare.
foreach($ePO in $ePOs) { $Share = Get-ChildItem -Path "\\$ePO\c$\test" -Recurse -File | Measure-Object | Select-Object Count if($Share.Count -gt $FileLimit) { Write-Warning "ePO server $ePO has $($Share.Count) files in Eventshare. Do something!" } else { Write-Host "ePO server $ePO has $($Share.Count) files in Eventshare." } }
foreach ($Agenthandler in $Agenthandlers) { $Share = Get-ChildItem -Path "\\$Agenthandler\c$\test" -Recurse -File | Measure-Object | Select-Object Count if($Share.Count -gt $FileLimit) { Write-Warning "Agenthandler $Agenthandler has $($Share.Count) files in Eventshare. Do something!" } else { Write-Host "Agenthandler $Agenthandler has $($Share.Count) files in Eventshare." } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.