ポジティブ回路

「楽しく生きること」が人生の目標。いかにモチベーションを上げるかを日々追求する、ポジティブ人間の足跡。

VistaSP1のport445を解放

2009年06月11日 | Windows Tips
意味がわかる人には幸せになれるネタです


作成目的: Vista ServicePack1では、Samba over SSHが失敗する。(KB942624パッチ問題)
システムがPort445を占有するのを阻止するためのスクリプト。

使用方法: スタートアップに以下のperlファイルとバッチファイルを作成し、システムの起動時に一度だけ実行する。
(シャットダウンせずに実行しても失敗する)

バッチファイルのショートカットを作り管理者として実行をチェックしておく。
UACが有効になっているとnet startでシステム エラー5が発生するので、
管理者権限でこのスクリプトを起動する。


参考にしたサイト(JSB2008さん) Port forwarding 445 for SMB and SSH problem
Perlがない場合は、こちらのサイトからActivePerlをダウンロードしてインストールする。
(ダウンロードの画像をクリックする)


VistaのPort445を解放するPerlスクリプト startSMB.pl
use Socket;
my $protocol = getprotobyname('tcp');
my $addr = inet_aton('169.254.0.1'); #loopback address
my $port = 445;
my $dest = sockaddr_in($port,$addr);
#Mask port 445 on loopback interface
socket(SOCK, AF_INET, SOCK_STREAM, $protocol) or die("Can't create socket - $!");
bind(SOCK, $dest) or die("Can't bind socket - $!");
listen(SOCK, SOMAXCONN) or die("Can't listen - $!");
#Start evil hoggy service
system("net start smb");
#Shield the port for 5 sec to give it time to start
sleep(5);
#Release port
close SOCK;


perlを実行するためのバッチファイル startSMB.bat

@echo off
set SCRIPT_PATH=%~d0%~p0
set BINPATH=%SCRIPT_PATH%startSMB.pl
if not exist "%BINPATH%" goto :error
cmd /c  perl "%BINPATH%"
goto end
:error
echo File not found!
pause
:end


実行ファイルの設定
バッチファイルのショートカットを作成し、管理者として実行にチェック



起動時にSMBサービスを起動するのを停止する
デバイスマネージャーから
表示→非表示のデバイスを表示
メッセージ指向 TCP/IP および TCP/IPv6プロトコルを選択
ドライバ→スタートアップ:種類→要求


ループバックアダプタの設定に関するメモ書き


レガシーハードウェアの追加
一覧から選択したハードウェアをインストールする
ネットワークアダプタ
製造元 microsoft ネットワークアダプタ microsoft Loopback Adapter

ネットワーク接続
Microsoft Loopback Adapterのプロパティ
Microsoft ネットワーク用ファイルとプリンタ共有 オフ

インターネットプロトコルバージョン4(TCP/IPv4)のプロパティ
IPアドレス 169.254.0.1
ネットマスク 255.255.0.0
DNS なし
詳細設定 WINS
NetBIOS over TCP/IPを無効にする にチェックを入れる

必要に応じてIPアドレスを追加
169.254.0.20
169.254.0.22

最新の画像もっと見る