I'm working on a script that cleanup old user account and some data from computers. I would like to run the script on 5 computers at one time from the attached list of PCs. Is it possible? If so, how can it be done?
[CmdletBinding()] Param( [Parameter(Mandatory=$true)] [string]$host_path = 'Host path' ) $computer = Get-Content "$host_path" foreach ($computer in $computer){ Invoke-Command -ComputerName $computer -ScriptBlock { Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddDays(-30))}| Remove-WmiObject } Invoke-Command -ComputerName $computer -ScriptBlock { Remove-Item -Path C:\Windows\ccmcache\* -Confirm:$false -Force -Recurse -Debug } Invoke-Command -ComputerName $computer -ScriptBlock { Remove-Item -Path C:\ProgramData\1E\NomadBranch\* -Confirm:$false -Force -Recurse -Debug } }
$Computer |ForEach-Object -Parallel -ThrottleLimit 5?