Add Creation Filter & seperated into multiple functions (modular enhancement)

This commit is contained in:
Alexander Stoll 2019-10-31 11:16:33 +01:00
parent c587467c89
commit 6b8576c0cc

View file

@ -6,44 +6,58 @@ function Get-IcingaDirectoryAll()
[string]$Path, [string]$Path,
[array]$FileNames, [array]$FileNames,
[bool]$Recurse, [bool]$Recurse,
[string]$YoungerThan, [string]$ChangeTimeEqual,
[string]$OlderThan, [string]$ChangeYoungerThan,
[string]$ChangeOlderThan,
[string]$CreationTimeEqual,
[string]$CreationOlderThan,
[string]$CreationYoungerThan,
[string]$FileSizeGreaterThan, [string]$FileSizeGreaterThan,
[string]$FileSizeSmallerThan [string]$FileSizeSmallerThan
); );
if ($Recurse -eq $TRUE) { if ($Recurse -eq $TRUE) {
$DirectoryData = Get-ChildItem -Recurse -Path $Path -Include $FileNames; $DirectoryData = Get-IcingaDirectoryRecurse -Path $Path -FileNames $FileNames;
} else { } else {
$DirectoryData = Get-ChildItem -Path $Path -Include $FileNames; $DirectoryData = Get-IcingaDirectory -Path $Path -FileNames $FileNames;
}
if ([string]::IsNullOrEmpty($OlderThan) -eq $FALSE -And [string]::IsNullOrEmpty($YoungerThan) -eq $FALSE) {
$OlderThan = Set-NumericNegative (ConvertTo-Seconds $OlderThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -lt (Get-Date).AddSeconds($OlderThan)})
$YoungerThan = Set-NumericNegative (ConvertTo-Seconds $YoungerThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -gt (Get-Date).AddSeconds($YoungerThan)})
} elseif ([string]::IsNullOrEmpty($OlderThan) -eq $FALSE) {
$OlderThan = Set-NumericNegative (ConvertTo-Seconds $OlderThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -lt (Get-Date).AddSeconds($OlderThan)})
} elseif ([string]::IsNullOrEmpty($YoungerThan) -eq $FALSE) {
$YoungerThan = Set-NumericNegative (ConvertTo-Seconds $YoungerThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -gt ((Get-Date).AddSeconds($YoungerThan))})
} }
if ([string]::IsNullOrEmpty($ChangeTimeEqual) -eq $FALSE) {
$DirectoryData = Get-IcingaDirectoryChangeTimeEqual -ChangeTimeEqual $ChangeTimeEqual -DirectoryData $DirectoryData;
}
if ([string]::IsNullOrEmpty($CreationTimeEqual) -eq $FALSE) {
$DirectoryData = Get-IcingaDirectoryCreationTimeEqual -CreationTimeEqual $CreationTimeEqual -DirectoryData $DirectoryData;
}
If ([string]::IsNullOrEmpty($ChangeTimeEqual) -eq $TRUE -Or [string]::IsNullOrEmpty($CreationTimeEqual) -eq $TRUE) {
if ([string]::IsNullOrEmpty($ChangeOlderThan) -eq $FALSE) {
$DirectoryData = Get-IcingaDirectoryChangeOlderThan -ChangeOlderThan $ChangeOlderThan -DirectoryData $DirectoryData;
}
if ([string]::IsNullOrEmpty($ChangeYoungerThan) -eq $FALSE) {
$DirectoryData = Get-IcingaDirectoryChangeYoungerThan -ChangeYoungerThan $ChangeYoungerThan -DirectoryData $DirectoryData;
}
if ([string]::IsNullOrEmpty($CreationOlderThan) -eq $FALSE) {
$DirectoryData = Get-IcingaDirectoryCreationOlderThan -CreationOlderThan $CreationOlderThan -DirectoryData $DirectoryData;
}
if ([string]::IsNullOrEmpty($CreationYoungerThan) -eq $FALSE) {
$DirectoryData = Get-IcingaDirectoryCreationYoungerThan -CreationYoungerThan $CreationYoungerThan -DirectoryData $DirectoryData;
}
}
if ([string]::IsNullOrEmpty($FileSizeGreaterThan) -eq $FALSE) { if ([string]::IsNullOrEmpty($FileSizeGreaterThan) -eq $FALSE) {
$FileSizeGreaterThanValue = (Convert-Bytes $FileSizeGreaterThan -Unit B).value $DirectoryData = (Get-IcingaDirectorySizeGreaterThan -FileSizeGreaterThan $FileSizeGreaterThan -DirectoryData $DirectoryData);
$DirectoryData = ($DirectoryData | Where-Object {$_.Length -gt $FileSizeGreaterThanValue})
} }
if ([string]::IsNullOrEmpty($FileSizeSmallerThan) -eq $FALSE) { if ([string]::IsNullOrEmpty($FileSizeSmallerThan) -eq $FALSE) {
$FileSizeSmallerThanValue = (Convert-Bytes $FileSizeSmallerThan -Unit B).value $DirectoryData = (Get-IcingaDirectorySizeSmallerThan -FileSizeSmallerThan $FileSizeSmallerThan -DirectoryData $DirectoryData);
$DirectoryData = ($DirectoryData | Where-Object {$_.Length -gt $FileSizeSmallerThanValue})
} }
return $DirectoryData; return $DirectoryData;
} }
# RECURSE
function Get-IcingaDirectory() function Get-IcingaDirectory()
{ {
param( param(
@ -65,5 +79,109 @@ function Get-IcingaDirectoryRecurse()
$DirectoryData = Get-ChildItem -Recurse -Include $FileNames -Path $Path; $DirectoryData = Get-ChildItem -Recurse -Include $FileNames -Path $Path;
return $DirectoryData;
}
# FILE SIZE
function Get-IcingaDirectorySizeGreaterThan()
{
param(
[string]$FileSizeGreaterThan,
$DirectoryData
);
$FileSizeGreaterThanValue = (Convert-Bytes $FileSizeGreaterThan -Unit B).value
$DirectoryData = ($DirectoryData | Where-Object {$_.Length -gt $FileSizeGreaterThanValue})
return $DirectoryData;
}
function Get-IcingaDirectorySizeSmallerThan()
{
param(
[string]$FileSizeSmallerThan,
$DirectoryData
);
$FileSizeSmallerThanValue = (Convert-Bytes $FileSizeSmallerThan -Unit B).value
$DirectoryData = ($DirectoryData | Where-Object {$_.Length -gt $FileSizeSmallerThanValue})
return $DirectoryData;
}
# TIME BASED CHANGE
function Get-IcingaDirectoryChangeOlderThan()
{
param (
[string]$ChangeOlderThan,
$DirectoryData
)
$ChangeOlderThan = Set-NumericNegative (ConvertTo-Seconds $ChangeOlderThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -lt (Get-Date).AddSeconds($ChangeOlderThan)})
return $DirectoryData;
}
function Get-IcingaDirectoryChangeYoungerThan()
{
param (
[string]$ChangeYoungerThan,
$DirectoryData
)
$ChangeYoungerThan = Set-NumericNegative (ConvertTo-Seconds $ChangeYoungerThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -gt (Get-Date).AddSeconds($ChangeYoungerThan)})
return $DirectoryData;
}
function Get-IcingaDirectoryChangeTimeEqual()
{
param (
[string]$ChangeTimeEqual,
$DirectoryData
)
$ChangeTimeEqual = Set-NumericNegative (ConvertTo-Seconds $ChangeTimeEqual);
$ChangeTimeEqual = (Get-Date).AddSeconds($ChangeTimeEqual);
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime.Day -eq $ChangeTimeEqual.Day -And $_.LastWriteTime.Month -eq $ChangeTimeEqual.Month -And $_.LastWriteTime.Year -eq $ChangeTimeEqual.Year})
return $DirectoryData;
}
# TIME BASED CREATION
function Get-IcingaDirectoryCreationYoungerThan()
{
param (
[string]$CreationYoungerThan,
$DirectoryData
)
$CreationYoungerThan = Set-NumericNegative (ConvertTo-Seconds $CreationYoungerThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.CreationTime -gt (Get-Date).AddSeconds($CreationYoungerThan)})
return $DirectoryData;
}
function Get-IcingaDirectoryCreationOlderThan()
{
param (
[string]$CreationOlderThan,
$DirectoryData
)
$CreationOlderThan = Set-NumericNegative (ConvertTo-Seconds $CreationOlderThan);
$DirectoryData = ($DirectoryData | Where-Object {$_.CreationTime -lt (Get-Date).AddSeconds($CreationOlderThan)})
return $DirectoryData;
}
function Get-IcingaDirectoryCreationTimeEqual()
{
param (
[string]$CreationTimeEqual,
$DirectoryData
)
$CreationTimeEqual = Set-NumericNegative (ConvertTo-Seconds $CreationTimeEqual);
$CreationTimeEqual = (Get-Date).AddSeconds($CreationTimeEqual);
$DirectoryData = ($DirectoryData | Where-Object {$_.CreationTime.Day -eq $CreationTimeEqual.Day -And $_.CreationTime.Month -eq $CreationTimeEqual.Month -And $_.CreationTime.Year -eq $CreationTimeEqual.Year})
return $DirectoryData; return $DirectoryData;
} }