- PR -

Windows Vistaでのnetshコマンド実行の問題

1
投稿者投稿内容
まにゃの
会議室デビュー日: 2005/03/31
投稿数: 8
投稿日時: 2007-11-12 16:55
こんにちは。
もうひとつWindows Vistaで困っている部分がありますので
ついでというわけではございませんが、書き込ませていただきます。

Windows XpアプリのWindows Vista対応を実施しています。
アプリケーションの中にコマンドプロンプトの
netsh firewall show portopeningコマンドを用いて
Windows firewallの状態を監視していたのですが、
Windows Vistaではコマンドが実行できても
何も情報取得できずにいます。(コマンドラインで戻り表示がない)
MicrosoftではWindows VistaでのIISでもnetsh firewallコマンドは
使用可能と謳っているようですが、実施できないようです。

上記がセキュリティ権限のお話であれば
権限を妥当なものに摺ればよいのですが、adminユーザ+
管理者権限で実行してますので権限に関しては問題ないと思ってます。

どなたか、本件に関する情報や解決策をご存知であれば
恐縮ですがご教授いただけたらと思います。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-11-13 02:34
Microsoft は OS の version up をしても command の実行結果が一致していることを保障していません。
実際、Windows Vista になって多くの commnd の実行結果が日本語化されていますので、それを利用している場合そのままでは動かない方が多いと思いますねぇ。

OS の version up を行っても互換性が保障されているのは MSDN に載っている API のみです。

ということで、command prompt を介した処理なんてちゃんとした application を作成するつもりであるならば利用してはいけません。

Windows firewall を操作したいのであれば、それを扱うための API が公開されています。

Windows Firewall and Windows Firewall with Advanced Security

Windows Vista では Windows firewall がさらに拡張されていて、Windows Firewall with Advanced Security を利用することになっています。

ちなみに Windows firewall 設定の監視って行う必要ありますかね?
個人的には、そんなことを行うよりも、group policy で firewall を強制することをお勧めしますが。

もしかして、user が local の administrators group に所属しているんでしょうかね?
もし、そういうことなら administrators group に所属している user を利用している限り、管理者がどんなに対策を練ろうとも security 上では全く意味がないということを覚えておくべきだと思います。
_________________
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-11-13 02:37
なお、netsh firewall show portopening は Windows Vista で結果を返さないことは確認しました。

同等のものが本来は netsh advfirewall にあるべきですが、無いのでどうしようもないでしょう。
_________________
まにゃの
会議室デビュー日: 2005/03/31
投稿数: 8
投稿日時: 2007-11-13 09:33
ちゃっぴ様
ご返答ありがとうございます。

>>Microsoft は OS の version up をしても command の実行結果が一致していることを>>保障していません。
>>実際、Windows Vista になって多くの commnd の実行結果が日本語化されていますの
>>で、それを利用している場合そのままでは動かない方が多いと思いますねぇ。
>>
>>OS の version up を行っても互換性が保障されているのは MSDN に載っている
>>API のみです。

そうですか、上記のような事実があるのであれば仕方ありませんね。
私が調べた限りでは、「Vistaでもnetsh firewallコマンド使用できますよ」
という記載があったのでそれに飛びついてしまいました。
現状手がないのであればしょうがないです、、、


>>ちなみに Windows firewall 設定の監視って行う必要ありますかね?
>>個人的には、そんなことを行うよりも、group policy で firewall を強制することを
>>お勧めしますが。

私が開発しているアプリケーションの配布先や運用形態を考えると、group policy を
使用するのはちょっと大変です。(運用形態を変更せねばならず、それをのんでもらえるとは思えませんで、、、)
改善案の1材料として活用させていただきます。


貴重なご意見、どうもありがとうございました。

まにゃの
会議室デビュー日: 2005/03/31
投稿数: 8
投稿日時: 2007-11-13 14:52
本件netshが使用できないということで、
ちゃっぴ様よりご教授いただいた参考ページを参照して
処理を実施してみました。
結果、当初の目的を満たせました。

参考までに処理を記載しておきます。
----------------------------------------------------------------
' ファイアウォールマネージャオブジェクトを作成する
Dim fwMgr As Object
Set fwMgr = CreateObject("HNetCfg.FwMgr")

' 現在のプロファイルのファイアウォールポリシーを取得する
Dim profile As Object
Set profile = fwMgr.LocalPolicy.CurrentProfile

' 開放しているポートを調べる
Dim port As Object
For Each port In profile.GloballyOpenPorts

----ここでポートを検索する----

Next
----------------------------------------------------------------


ちゃっぴ様どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)