$profiles = get-wmiobject -class win32_userprofile Write-Host "Getting Firewall Rules" # deleting rules with no owner would be disastrous $Rules = Get-NetFirewallRule -All | Where-Object {$profiles.sid -notcontains $_.owner -and $_.owner } Write-Host "Getting Firewall Rules from ConfigurableServiceStore Store" $rules2 = Get-NetFirewallRule -All -PolicyStore ConfigurableServiceStore | Where-Object { $profiles.sid -notcontains $_.owner -and $_.owner } $total = $rules.count + $rules2.count Write-Host "Deleting" $total "Firewall Rules:" -ForegroundColor Green $result = measure-command { # tracking $start = Get-Date; $i = 0.0 ; # $total = $rules.Count foreach($rule in $rules){ # action remove-itemproperty -path "HKLM:\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules" -name $rule.name # progress $i = $i + 1.0 $prct = $i / $total * 100.0 $elapsed = (Get-Date) - $start; $totaltime = ($elapsed.TotalSeconds) / ($prct / 100.0) $remain = $totaltime - $elapsed.TotalSeconds $eta = (Get-Date).AddSeconds($remain) # display $prctnice = [math]::round($prct,2) $elapsednice = $([string]::Format("{0:d2}:{1:d2}:{2:d2}", $elapsed.hours, $elapsed.minutes, $elapsed.seconds)) $speed = $i/$elapsed.totalminutes $speednice = [math]::round($speed,2) Write-Progress -Activity "Deleting rules ETA $eta elapsed $elapsednice loops/min $speednice" -Status "$prctnice" -PercentComplete $prct -secondsremaining $remain } # tracking # $start = Get-Date; $i = 0 ; $total = $rules2.Count foreach($rule2 in $rules2) { # action remove-itemproperty -path "HKLM:\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System" -name $rule2.name # progress $i = $i + 1.0 $prct = $i / $total * 100.0 $elapse = (Get-Date) - $start; $totaltime = ($elapsed.TotalSeconds) / ($prct / 100.0) $remain = $totaltime - $elapsed.TotalSeconds $eta = (Get-Date).AddSeconds($remain) # display $prctnice = [math]::round($prct,2) $elapsednice = $([string]::Format("{0:d2}:{1:d2}:{2:d2}", $elapsed.hours, $elapsed.minutes, $elapsed.seconds)) $speed = $i/$elapsed.totalminutes $speednice = [math]::round($speed,2) Write-Progress -Activity "Deleting rules2 ETA $eta elapsed $elapsednice loops/min $speednice" -Status "$prctnice" -PercentComplete $prct -secondsremaining $remain } # Remove additional rules Remove-ItemProperty "HKLM:\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\AppIso\FirewallRules" -Name * } $end = get-date write-host end $end write-host eta $eta write-host $result.minutes min $result.seconds sec