web-dev-qa-db-ja.com

ネットワーク上のコンピューターのMASS pingグループへのバッチファイル(名前、返信の確認、ホスト名の解決)

だから、私はWindows Active Directoryネットワーク上にまだ存在しているかどうかわからない5000台のコンピュータのリストを持っています(わかっています、尋ねません... 、そして私に与えるデータの多くのエラー)

コンピューター名はSAT1からSAT5000までです。ただし、それらの一部は新しいOSにアップグレードされ、名前が変更されている場合があります。この場合、私は新しい名前も検出したいと思います。

コンピューター名のリストを含むテキストファイルを与えられたスクリプトを誰かが持っているのではないかと思います。1.コンピューターにpingを実行して、存在を確認します(はい、オンになっている必要があります)。
2。最初のpingからIPを受信した後、ping -aを実行してホスト名を取得します
3。結果をテキストファイルに書き出す

(さらに良い...初期ファイルを複数に分割し、いくつかのバッチファイルを同時に実行するように生成して、同期的に5,000台のマシンにpingを送信する速度を落とすことは可能ですか?)

更新

この記事は私が探しているものと多少関係があるようです: http://www.enterpriseitplanet.com/networking/features/article.php/1571771

アップデート2

これは私が終わったものです:

@echo off
rem del output.txt
rem Loop thru list of computer names in file specified on command-line

for /f %%i in (%1) do call :check_machine %%i
goto end

:check_machine

rem Check to see if machine is up.
echo %1
ping -n 2 %1 >NUL 2>NUL
if errorlevel 1 goto down

rem Reverse-lookup machine name and report
  for /f "usebackq tokens=2,3" %%d in (`ping -n 1 -a %1 ^| find "Pinging "`) do echo %1, %%d,%%e >> output.txt
goto end

:down
  rem Report machine down
  echo %1 >> output.txt

:end

そして、出力は次の形式になります。

SAT10 
SAT1209 
SAT601, CGY2601.na.sat.com,[110.3.111.70] 
SAT3592, CGY3592.na.sat.com,[110.0.237.45] 

コンピューターのリストを複数の小さいファイルに分割すると、次のように非同期にpingを実行できます。

del output.txt
start MassPing.cmd Computers1.txt
start MassPing.cmd Computers2.txt
start MassPing.cmd Computers3.txt
start MassPing.cmd Computers4.txt
start MassPing.cmd Computers5.txt
start MassPing.cmd Computers6.txt
3
tbone

ここにあなたのためのバッチファイルがあります:

@echo off
rem Loop thru list of computer names specified on command-line
for /f %%i in (%1) do call :check_machine %%i
goto end

:check_machine

rem Check to see if machine is up.
ping -n 2 %1 >NUL 2>NUL
if errorlevel 1 goto down

rem Reverse-lookup machine name and report
for /f "usebackq tokens=2" %%d in (`ping -n 1 -a %1 ^| find "Pinging"`) do echo %1:Up:%%d
goto end

:down
rem Report machine down
echo %1:Down

:end

コンピュータ名のリストを含むテキストファイルを渡して、PINGします(2回試行します。1回目のPINGコマンドラインで "-n"の後に数字を増やすことで増やすことができます)。応答の場合、名前の逆検索を実行します。結果は次のように返されます。

computer-name-1:Up:name-it-resolved-to
computer-name-2:Down
computer-name-3:Up:name-it-resolved-to
...

複数を並行して実行するには、マシン名の異なるリストを使用して複数のテキストファイルを作成し、いくつかのコピーを並行して起動します。

迅速かつ汚いことで1日を節約できます。

7
Evan Anderson

本当にpingする必要がありますか?コンピュータアカウントは、30日ごとにパスワードを自動的に変更します。 200/2003/2008機能レベルでは、dsquery computer -stalepwd Xここで、Xは最後のパスワード変更からの日数です。このプロセスは通常、これに応答するコンピューターアカウントを「古い」OUに移動することで自動化され、さらに30〜90日後にパスワードがまだ変更されていない場合は自動的に削除されます。

4
MDMarra

スキャンには nmap を使用することもできます。

nmap -sn -PE -oG scan.txt 192.168.1.1 192.168.2.0/24

Manページからの引用:

-sn: Ping Scan - disable port scan
   The default Host discovery done with -sn consists of an ICMP echo request,
   TCP SYN to port 443, TCP ACK to port 80, and an ICMP timestamp request
   by default.

-oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
   and Grepable format, respectively, to the given filename.

-PE; -PP; -PM (ICMP Ping Types) .
   In addition to the unusual TCP, UDP and SCTP Host discovery types discussed
   previously, Nmap can send the standard packets sent by the ubiquitous ping
   program. Nmap sends an ICMP type 8 (echo request) packet to the target IP
   addresses, expecting a type 0 (echo reply) in return from available hosts.
   [...] Use the -PE option to enable this echo request behavior.

scan.txtは次のようになります。

# Nmap 5.50 scan initiated Fri Aug 19 17:59:59 2011 as: nmap -vv -sn -PE -oG /tmp/scan.txt  192.168.1.1 192.168.2.0/24
# Ports scanned: TCP(0;) UDP(0;) SCTP(0;) PROTOCOLS(0;)

Host: 192.168.1.1 ()    Status: Down
Host: 192.168.2.0 (www.dummy.example.org)   Status: Up
Host: 192.168.2.1 (www.foo.example.org) Status: Down
...
# Nmap done at Fri Aug 19 18:03:26 2011 -- NNN IP addresses (1 Host up) scanned in 4.02 seconds
3

あなたのために働くかもしれないもう一つの方法は、DHCPサーバーのリースを吐き出すように「ネットワークの男」を手に入れることです。 5000台のコンピューターにpingを実行すると、しばらく時間がかかります。

1
Dayton Brown

私も数千台のコンピューターで同様のことを行う必要があり、それを処理するPowerShellスクリプトを開発しました。このスクリプトは、pingプロセスを高速化するために複数のバックグラウンドジョブを同時に実行し、オプションでDnsLookupを実行してIPアドレスと完全修飾ドメイン名を検索できます。パフォーマンスは、発生したタイムアウトの数によって異なりますが、12,000以上のホストのスクリプトを15分ほどで完了しました。

スクリプトは大きすぎてここに投稿できませんが、ここで確認(およびダウンロード)できます。

http://poshtips.com/2011/03/28/bgping-a-high-performance-bulk-ping-utility/

1
xb90

これはおそらくあなたが頭に描いたものとはまったく違うかもしれませんが、私がそのような目的で使用する1つのツールは Networkview です。それはあなたが求めている以上のものを明らかにし、数ドルの費用がかかりますが、価格に見合う価値があります。 1回限りの場合は、評価モードで使用できます。

0
John Gardeniers