Posted in
Windows Powershell,
Windows Server |
No Comment | 3,900 views | 20/07/2011 12:44
Öncelikle Windows Advanced Firewall üzerinden kurallarınızın bir yedeğini almayı unutmayın.
Bu basit scripti, bir müşterimin isteğinden sonra Windows firewall kurallarını değiştirebilmek için yazdım.
Description’a göre arama yaparak, Remote Address bölümüne tanımlamak istediğiniz IP adresini ekliyor.
1
2
3
4
5
6
7
| $Rules=New-object -comObject HNetCfg.FwPolicy2
$Rules=$Rules.Rules | where {$_.Description -like "Inbound *" }
Foreach ($Rule in $Rules)
{
$Rule.RemoteAddresses = "10.10.10.1-10.10.10.50"
Write-Host "Kural değişti."
} |
$Rules=New-object -comObject HNetCfg.FwPolicy2
$Rules=$Rules.Rules | where {$_.Description -like "Inbound *" }
Foreach ($Rule in $Rules)
{
$Rule.RemoteAddresses = "10.10.10.1-10.10.10.50"
Write-Host "Kural değişti."
}
Eğer yukarıda girdiğiniz firewall kuralını sonradan değiştirmek istiyorsanız, aşağıdakini kullanabilirsiniz.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $Rules=New-object -comObject HNetCfg.FwPolicy2
$Rules=$Rules.Rules | where {$_.Description -like "Inbound *" }
Foreach ($Rule in $Rules)
{
if ($Rule.RemoteAddresses -like "*10.10.10.1*")
{
$Rule.RemoteAddresses = "10.10.10.1-10.10.10.50,172.16.254.0/24"
Write-Host "Kural değişti."
}
else
{
Write-Host "Kural değişmedi çünkü vermiş olduğunuz IP adresi ile eşleşmedi."
}
} |
$Rules=New-object -comObject HNetCfg.FwPolicy2
$Rules=$Rules.Rules | where {$_.Description -like "Inbound *" }
Foreach ($Rule in $Rules)
{
if ($Rule.RemoteAddresses -like "*10.10.10.1*")
{
$Rule.RemoteAddresses = "10.10.10.1-10.10.10.50,172.16.254.0/24"
Write-Host "Kural değişti."
}
else
{
Write-Host "Kural değişmedi çünkü vermiş olduğunuz IP adresi ile eşleşmedi."
}
}
Arama için çok sayıda bileşen kullanabilirsiniz. Ben sadece basitce mantığını göstermeye çalıştım.