If it's an RMM error, then you will need to contact Action1.
If it's a Powershell error, then I would add a transcript to the script and see if that provide more details about the commands that it is trying to execute.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
I'm the IT person for a local church and we have about 11 computers I have to manage every week. I have a Powershell script to clean the system up and run cleanmgr.exe. The script works fine when I'm on the physical machine and I run it. The moment I put it in my Action1 RMM, the RMM rejects it based on a Param error.
Does anyone know what needs to be done so this script will run through an RMM?
param(
[Parameter()]
[ValidateNotNullOrEmpty()]
[string[]]$Section
)
$sections = @(
'Active Setup Temp Folders',
'BranchCache',
'Content Indexer Cleaner',
'Device Driver Packages',
'Downloaded Program Files',
'GameNewsFiles',
'GameStatisticsFiles',
'GameUpdateFiles',
'Internet Cache Files',
'Memory Dump Files',
'Offline Pages Files',
'Old ChkDsk Files',
'Previous Installations',
'Recycle Bin',
'Service Pack Cleanup',
'Setup Log Files',
'System error memory dump files',
'System error minidump files',
'Temporary Files',
'Temporary Setup Files',
'Temporary Sync Files',
'Thumbnail Cache',
'Update Cleanup',
'Upgrade Discarded Files',
'User file versions',
'Windows Defender',
'Windows Error Reporting Archive Files',
'Windows Error Reporting Queue Files',
'Windows Error Reporting System Archive Files',
'Windows Error Reporting System Queue Files',
'Windows ESD installation files',
'Windows Upgrade Log Files'
)
if ($PSBoundParameters.ContainsKey('Section')) {
if ($Section -notin $sections) {
throw "The section [$($Section)] is not available. Available options are: [$($Section -join ',')]."
}
} else {
$Section = $sections
}
Write-Verbose -Message 'Clearing CleanMgr.exe automation settings.'
$getItemParams = @{
Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches*'
Name = 'StateFlags0001'
ErrorAction = 'SilentlyContinue'
}
Get-ItemProperty @getItemParams | Remove-ItemProperty -Name StateFlags0001 -ErrorAction SilentlyContinue
Write-Verbose -Message 'Adding enabled disk cleanup sections...'
foreach ($keyName in $Section) {
$newItemParams = @{
Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\$keyName"
Name = 'StateFlags0001'
Value = 1
PropertyType = 'DWord'
ErrorAction = 'SilentlyContinue'
}
$null = New-ItemProperty @newItemParams
}
Write-Verbose -Message 'Starting CleanMgr.exe...'
Start-Process -FilePath CleanMgr.exe -ArgumentList '/sagerun:1' -NoNewWindow -Wait
Write-Verbose -Message 'Waiting for CleanMgr and DismHost processes...'
Get-Process -Name cleanmgr, dismhost -ErrorAction SilentlyContinue | Wait-Process
If it's an RMM error, then you will need to contact Action1.
If it's a Powershell error, then I would add a transcript to the script and see if that provide more details about the commands that it is trying to execute.
If the error is from PowerShell, you may find that you need to change some of the references to reflect that you're not running the script locally, but from a remote location.
I hope this answers your question.
-------------------------------------------------------------------------------------------------------------------------------------------
--If the reply is helpful, please Upvote and Accept as answer--