diff --git a/PCRemediation/Invoke-PCRemediation.ps1 b/PCRemediation/Invoke-PCRemediation.ps1 index 13ab9b3..9e378d6 100644 --- a/PCRemediation/Invoke-PCRemediation.ps1 +++ b/PCRemediation/Invoke-PCRemediation.ps1 @@ -279,6 +279,7 @@ function Clear-TempFiles { } else { $systemRoot = (Get-CimInstance -ClassName Win32_OperatingSystem -CimSession $CimSession).SystemRoot $maxAge = (Get-Date).AddDays(-$MaxAgeDays) + $maxAgeStr = $maxAge.ToString('yyyyMMddHHmmss.ffffff+000') $tempDirs = @( "$systemRoot\Temp", @@ -286,7 +287,8 @@ function Clear-TempFiles { ) foreach ($dir in $tempDirs) { - $files = Get-CimInstance -ClassName CIM_DataFile -CimSession $CimSession -Filter "Path='$($dir -replace '\\', '\\')\\' AND LastWriteTime < '$($maxAge.ToString('yyyyMMddHHmmss.ffffff+000))'" -ErrorAction SilentlyContinue + $dirPath = $dir -replace '\\', '\\' + $files = Get-CimInstance -ClassName CIM_DataFile -CimSession $CimSession -Filter "Path='$dirPath\\' AND LastWriteTime < '$maxAgeStr'" -ErrorAction SilentlyContinue foreach ($file in $files) { $file | Invoke-CimMethod -MethodName Delete -ErrorAction SilentlyContinue | Out-Null } @@ -294,7 +296,8 @@ function Clear-TempFiles { $userDirs = Get-CimInstance -ClassName Win32_Directory -CimSession $CimSession -Filter "Name LIKE '%\\AppData\\Local\\Temp'" -ErrorAction SilentlyContinue foreach ($dir in $userDirs) { - $files = Get-CimInstance -ClassName CIM_DataFile -CimSession $CimSession -Filter "Directory='$($dir.Name -replace '\\', '\\')' AND LastWriteTime < '$($maxAge.ToString('yyyyMMddHHmmss.ffffff+000))'" -ErrorAction SilentlyContinue + $dirPath = $dir.Name -replace '\\', '\\' + $files = Get-CimInstance -ClassName CIM_DataFile -CimSession $CimSession -Filter "Directory='$dirPath' AND LastWriteTime < '$maxAgeStr'" -ErrorAction SilentlyContinue foreach ($file in $files) { $file | Invoke-CimMethod -MethodName Delete -ErrorAction SilentlyContinue | Out-Null }