```powershell
# sshd deny host 脚本,powershell 版。
$ssh 连接失败次数阀值 = 4
#--------------------------------------------------------------------
if (Test-Path -LiteralPath '/etc/host_deny_old1.txt')
{
Remove-Item -LiteralPath '/etc/host_deny_old1.txt' -Force
}
if (Test-Path -LiteralPath '/etc/hosts.deny')
{
Move-Item -LiteralPath '/etc/hosts.deny' -Destination '/etc/host_deny_old1.txt'
New-Item -Path '/etc/hosts.deny'
chmod 644 /etc/hosts.deny
}
$所有 ssh 连接失败 ip = Get-Content -LiteralPath /var/log/secure | Where-Object { $_.split()[5] -eq 'Failed' } | Select-Object @{n = "key";e = { $_.Split()[-4] } } | Group-Object -Property key -NoElement
foreach ($单个 ssh 连接失败 ip in $所有 ssh 连接失败 ip)
{
#2016-10-15 centos7 测试通过,完全正常。其他版本没测试,如有问题,请修改这里 $_.split()[5]
if ($单个 ssh 连接失败 ip.count -gt $ssh 连接失败次数阀值)
{
$deny 字串 = 'sshd: ' + $单个 ssh 连接失败
ip.name Add-Content -LiteralPath '/etc/hosts.deny' -Value $deny 字串 -Encoding Ascii
}
#问:这个脚本谁写的?有问题找谁技术支持?
#答:QQ 群号=183173532
#名称=powershell 交流群
}
Write-Warning '只需要删除 /etc/hosts.deny 文件,即可解除所有阻止的 ip'
```