# Disable remote interaction with services $services = Get-Service foreach ($service in $services) { if (($service.Name -ne "LanmanServer") -and ($service.Name -ne "LanmanWorkstation")) { Set-Service -Name $service.Name -StartupType Disabled } } # Disable remote interaction with scheduled tasks $scheduledTasks = Get-ScheduledTask foreach ($task in $scheduledTasks) { Unregister-ScheduledTask -TaskName $task.TaskName } # Disable DCOM $DCOM = New-Object -com "Microsoft.SecurityConfiguraion.WmiV2Helper" $DCOM.DCOMConfig("default") # Disable Admin Shares $shares = Get-WmiObject Win32_Share | Where-Object { $_.Type -eq 0 } foreach ($share in $shares) { Remove-WmiObject -InputObject $share } # Disable Anonymous Access to Named Pipes $pipes = Get-WmiObject -Class Win32_Pipe foreach ($pipe in $pipes) { if ($pipe.Name -like "*anonymous*") { Remove-WmiObject -InputObject $pipe } } # Disable OLE objects $olereg = New-Object -com "Microsoft.SecurityConfiguraion.WmiV2Helper" $olereg.OLEConfig("default")