4

.EXEファイルを右クリックすると、コンテキストメニューに「ファイアウォールに追加」を追加する.REGファイルの次のコードを取得しました。手動で行うのではなく、選択した特定のファイルのアウトバウンドルールをWindowsファイアウォールに作成するだけです。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell]

[HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall]

[HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall\command]
@="netsh advfirewall firewall add rule name=\"%1\" dir=out action=block program=\"%1\""

http://oi46.tinypic.com/2rgnxaf.jpg

私の問題は、次の構文name=\"%1\"では、単純なtest.exeではなく、Windowsファイアウォールの名前として完全なディレクトリ(C:\ New folder \ test.exe)が指定されることです。

私が探しているもう1つの機能は、通常の右クリックではなく、シフト右マウスクリックにすべてを追加することです。これは、この機能をあまり使用しないため、.EXEを右クリックするたびに表示されるためです。

PS。次のコマンドを実行して、コンテキストメニューから再度削除します。

Windows Registry Editor Version 5.00


[-HKEY_CLASSES_ROOT\exefile\shell\Add To Firewall]

誰かからの連絡を希望し、事前にここから大いに感謝します;)

4

1 に答える 1

6

以下はあなたが求めていることを正確に実行しますが、UACを無効にする必要があります。スクリプトファイルを作成したり、サード パーティの ツールを使用したり、あるいはrunasキーを上書きしたりしないと、UACプロンプトを作成できないと思います。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock]
@="Add to Firewall"         ; String to be displayed in context menu
"HasLUAShield"=""           ; Adds UAC shield icon to the left of the command
"Extended"=""               ; Requires shift to be held when right-clicking

[HKEY_CLASSES_ROOT\exefile\shell\firewallblock\command]
@="cmd.exe /s /c for %%a in (\"%1\") do netsh advfirewall firewall add rule name=\"%%~na\" dir=out action=block program=\"%%~nxa\""

詳細を説明するために、このコマンドを使用するのFORは、ループ機能のためではなく、パラメーター拡張機能にアクセスできるためです。を使用して使用するように変更%%aします(値はx:\fully\qualified\path\filename.exe)です。%%~nxafilename.exe%%~nafilename

UACのものについては、上記のサードパーティツールの1つを使用し、それに応じてコマンドを変更します。例:

@="elevate.exe -c for %%a in (\"%1\") do netsh advfirewall firewall add rule name=\"%%~na\" dir=out action=block program=\"%%~nxa\""

それが役に立てば幸い!

于 2013-05-01T06:14:54.650 に答える