0
私はPowerShellスクリプトを作成しようとしています(対象レベルのOS 2008 R2)1.無効にする方法/ポートの配列</li> <li>リストを関連するポート番号
- 実行されることに基づいて、Windowsファイアウォールのルールを有効にします各「ルール名」現在の状態に基づいて、有効または無効のいずれかのポリシーによって配列現在ここで立ち往生
- 実行にポート
- キャプチャ「ルール名」に関連付けられているすべてのファイアウォールポリシー。
私は上記の私のリストのポイント3で立ち往生しています。誰かを助けることができますか、あるいは正しい方向に私を指示することができますか?
現在のコード:私の現在のスクリプトに基づいて結果の
$array = @("3050", "300", "8080","7080","5090")
for ($i=0; $i -lt $array.length; $i++) {
$searchPort = "(LocalPort.*" + $array[$i] + ")"
$front = netsh advfirewall firewall show rule dir=in name=all |
Select-String -Pattern ($searchPort) -Context 9,4
Write-Host $front
}
コピー:
Rule Name: interbase port ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public Grouping: LocalIP: Any RemoteIP: Any Protocol: TCP LocalPort: 3050 RemotePort: Any Edge traversal: No Action: Allow Rule Name: MT ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public Grouping: LocalIP: Any RemoteIP: Any Protocol: UDP LocalPort: 300 RemotePort: Any Edge traversal: No Action: Allow Rule Name: medtech port ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public Grouping: LocalIP: Any RemoteIP: Any Protocol: UDP LocalPort: 300 RemotePort: Any Edge traversal: No Action: Allow
はい=いいえ=はい –
本当にありがとうございました! QTにいれば、ニュージーランドにはビールがあります! –
こんにちは、 追加した簡単なメモ私はので、私はこのように行ってきました新しい変数をしたトグルがパススルーしなかったことに「有効」が見つかり: \tのnetsh ... | Select-String -Pattern $ searchPort - テキスト9,4 | 。をForEach-Objectに{ \t \t $ルール= $ _ Context.PreContext [0] -replace 'ルール名:\ * S'。有効 \t \t $有効= $ _ Context.PreContext [2] -replace」:\ S *」 \t \t $ newstatus = $トグル[$有効] \t \t&netshをadvfirewallをファイアウォール設定ルール名を= "$ルール" 新しいイネーブル= "$のnewstatus" については申し訳ありません \t} おかげで再び –