vbs Windowsシステムは、ネットワークカードのMACアドレスのスクリプトとソフトウェアを変更または修正する。


コアコード

'/*=========================================================================  
' * Intro          ,     ,        ,                 ,           ,    ,     VBS MAC        ,                          (        ),        MAC  :  -->    -->    -->      (   "    ")-->        -->  ..-->  -->  -->NetworkAddress-->    "   "  
' * FileName  ChangeMAC.vbs  
' * Author   yongfa365  
' * Version   v3.0  
' * WEB     http://www.yongfa365.com  
' * Email    yongfa365[at]qq.com  

' * MadeTime  2007-12-09 22:17:58  
' * LastModify 2007-12-13 18:35:58  
' *==========================================================================*/  
  
On Error Resume Next  
strComputer = "."  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=true", , 48)  
For Each objItem in colItems  
  msg = msg & "  :" & objItem.Index & "  MAC:" & objItem.MACAddress & vbCrLf & "  :" & objItem.Description & vbCrLf & vbCrLf  
Next  
  
idx = InputBox( msg , "1/2        MAC   ", "1")  
If Not IsNumeric(idx) Or Len(idx) = 0 Then  
  WScript.Echo "      ,  "  
  Wscript.Quit  
End If  
MAC = InputBox( "      MAC   (     12         ,    -、:    )" , "2/2       MAC  ", "000000000000")  
MAC = Replace(Replace(Replace(MAC, ":", ""), "-", ""), " ", "")  
If RegExpTest("[^\da-fA-F]", MAC)>0 Or Len(MAC)<>12 Then  
  WScript.Echo "MAC    ,  "  
  Wscript.Quit  
End If  
  
  
idx = Right("00000"&idx, 4)  
reg = "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & idx  
Set WSHShell = CreateObject("WScript.Shell")  
WshShell.RegWrite reg & "\NetworkAddress", MAC , "REG_SZ"  
WshShell.RegWrite reg & "\Ndi\params\NetworkAddress\default" , MAC , "REG_SZ"  
WshShell.RegWrite reg & "\Ndi\params\NetworkAddress\ParamDesc" , "NetworkAddress" , "REG_SZ"  
WshShell.RegWrite reg & "\Ndi\params\NetworkAddress\optional" , "1" , "REG_SZ"  
'       ,  “     2”  
NetWorkName = WshShell.RegRead("HKLM\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & WshShell.RegRead(reg & "\NetCfgInstanceId") & "\Connection\Name")  
  
restartNetWork NetWorkName  
'WScript.Echo "    "  
  
Function restartNetWork(sConnectionName)  
  '      
  'sConnectionName = "     5" '            , "      "   
  '         
  Set shellApp = CreateObject("shell.application")  
  Set oControlPanel = shellApp.Namespace(3)  
  For Each folderitem in oControlPanel.Items  
    If folderitem.Name = "    " Then  
      Set oNetConnections = folderitem.GetFolder  
      Exit For  
    End If  
  Next  
  '           
  For Each folderitem in oNetConnections.Items  
    If LCase(folderitem.Name) = LCase(sConnectionName) Then  
      Set oLanConnection = folderitem  
      Exit For  
    End If  
  Next  
  '      
  For i = 1 To 2  
    For Each verb in oLanConnection.verbs  
      If RegExpTest("  |  |  ", verb.Name)>0 Then  
        verb.DoIt  
        Exit For  
      End If  
    Next  
    '           ,                     ,           
    WScript.Sleep 5000  
  Next  
    
    
End Function  
  
  
'             
  
Function RegExpTest(patrn, strng)  
  Set re = New RegExp  
  re.Pattern = patrn  
  re.IgnoreCase = True  
  re.Global = True  
  Set Matches = re.Execute(strng)  
  RegExpTest = Matches.Count  
End Function 
インターネット関連の紹介一:
どのようにネットカードのMAC住所を修正しますか?
簡単にネットカードのMAC(物理)の住所を修正します。今はみんなADSLでインターネットを利用しています。ネットを調べていると、インターネットの通信は毎回あなたのネットカードのMACアドレスを記録しています。これはIPアドレスがダイナミックなためです。MACアドレスは変わりません。カードごとに違ったMAC(物理)アドレスがあります。したがって、MACアドレスはお客様のオンライン身分証となります。MACアドレスを記録することによって、あなたのネットであることを確認できます。
一、MACアドレスの用途
MACアドレスはネットカードで固定されています。カードごとにMACアドレスが違います。ネットカードは制作過程で、メーカーがそのEPROMの中で一組の数字を記録します。この数字はネットカードごとに違っています。これはネットカードのMAC(物理)住所です。
MACアドレスの一意性のため、それは主にネットワーク内のユーザのアイデンティティを識別するために使用される。例えばADSLがインターネットを利用する時、電信はそれで料金を記録して、確認はあなたのネットです。キャンパス・ネットワークにおいて、MACアドレスはユーザを識別するためにも使用されうる。キャンパスネットの正式なユーザーに対して、そのMAC住所はサーバーの端で登録して、もしあなたは不法なユーザーだならば、サーバーの中であなたのネットカードのMAC住所がなくて、このようにあなたがインターネットを接続しようとする時、サーバーはすぐにあなたを見分けて、あなたがネットに接続することを阻止します。
二、MACアドレスは修正可能です。
いくつかの場合、例えば、ネットワーク内の正式のユーザーになりすまして、あなたのネットカードMACを修正しなければなりません。MACアドレスを修正するには、ハードウェアの方法で実現できます。つまり、ネットカードメーカーが提供する修正プログラムを利用して、インターネットカードのEEPROMを記録します。このようにすればいいですが、リスクが高くて、操作も複雑です。
実はあなたは全くマジコンの方法を使う必要がなくて、ネットカードの中のMAC住所を修正します。Windowsがインストールされていることを知ると、自動的にLANカードからMACアドレスを読み込み、レジストリに保存して準備します。データがネットワークで転送されるとき、LANカードから送信されるパケットの中にソースMACアドレスが要求されます。このMACアドレスはレジストリから読み取られます。したがって、レジストリのMACアドレスを修正すれば、ネットワークカードEEPROMのMACアドレスを変更するのと同じです。
三、レジストリ内のMACを修正する方法
1、ソフトウェアで修正する
この方法はすべての種類のネットカードに適用されます。異なるWindowsでは、異なるソフトウェアでMACを修正します。
(1)Win 2003/XP/2000
あなたのシステムがWin 2003/XP/2000なら、SMAC(ダウンロードアドレス)が使えます。http://www.klcconsulting.net/smac/#Downloadを選択します。このソフトウェアはネットカードのMACアドレスを修正することができません。レジストリのMACを修正するしかないです。
このソフトウェアは2つの動作モードがあります。 Management Instruction (WMI)「サービス、ソフトは[WBEM]で実行されます。 ON]モードでは、より多くのカード情報を表示できます。そうでないと、[WBEM]で動作します。 OFF]モードでは、ソフトウェアウィンドウのタイトルバーに現在の運転モードが表示されます。
ソフトウェアの使用は非常に簡単で、実行後に「Refresh」をクリックすると、画面のリストボックスにネットカードの種類、IPアドレス、Activeが表示されます。 MACなどは、次の6つの入力ボックスに指定されたMACアドレス(図1)を入力し、右側の「Update」をクリックします。 MAC"は修正できます。最後にパソコンを再起動して修正値を有効にします。
図1
なお、試用版は新しいMACアドレスを入力できません。MACを0 C-0 C-0 C-0 C-0 C-01に変更するしかありません。
(2)Win 98
あなたのシステムがWin 98なら、「Macスキャナ」を使うことを勧めます。このツールはレジストリのMACアドレスを修正して、コンピュータを再起動して修正を有効にします。
2、ネットカードの属性で変更する
あなたのネットカードがRealTekのRTL 8139チップを採用すれば、ネットカードの属性の中でMACを修正できます。そうするとレジストリの中のMACアドレスも一緒に変更されます。方法は以下の通りです。
図2
Win 2003/XP/2000で、メニュー「開始」/設定/コントロールパネルをクリックし、「システム」をダブルクリックし、「ハードウェア」/機器マネージャをクリックして、デバイスマネージャの中で「ネットワークアダプタ」を展開し、MACアドレスを変更するネットワークカードを右クリックして、「プロパティ」を選択します。「詳細」タブをクリックして、「プロパティ」の下で、Networkをクリックします。 Addressプロジェクト(図2)は、右側の「値」の下に、指定されたMACアドレス値(例えば0202020202)を入力し、12個の数字またはアルファベットを連続して入力することに注意してください。パソコンを再起動すると、修正が有効になります。Win 98におけるMAC修正方法は、上記の方法と同様である。
もし修正したら、Win 2003/XP/2000 また、レジストリのMACアドレスを元に戻したいです。「Network」を選択してもいいです。 Addressの項目は、右の値を「存在しない」に選択し、再起動すればいいです。Win 98では「表示されていない」を選択します。
3、レジストリで修正する
非RTL 8139チップのネットカードについては、レジストリ内のMACを直接修正してもいいです。レジストリを修正する前に、レジストリをバックアップしてください。
(1)Win 2003/XP/2000
「開始」/運転をクリックして、regeditを入力してレジストリを開けて、HKEY_に位置決めします。LOCAL_MACHINE\SYSTEM\CurrenntControl Set\Control\Class\{4 D 36E 972-E 325-11 CE-BFC 1-0802 BE 1038}\0000、0001、0002などのメインキーの下で、DriverDescの内容を調べて、LANカードがどのキーを使っているかを知る(例えば0001)。
例えば、インターネットカードは0001キーを使っていますので、右側に文字列項目(NetworkAddresという)を作って、この列をダブルクリックして、指定されたMACアドレス値を入力します。0001のNDI\paramsにサブキー(NetworkAddresという)を追加し、このサブキーを選択し、その右にdefaultという文字列を追加し、キーの値は修正されたMACアドレスで、上の値と同じです。変更後に再起動します。
(2)Win 98
「開始」をクリックして実行し、wingipcfgを入力して修正するネットカードを選択し、MACアドレスの値を記録します。その後、「開始」/運転をクリックして、regeditを入力してレジストリを開けて、HKEY_に位置決めします。LOCAL_MACHINE\System\Current Control Set\Services\Class\Netは、下に「0000」、「0001」、「0002」などのサブキーがあります。「0000」サブキーからクリックして、先ほど記録したMACアドレスが見つかるまで、サブキーの下の「DriverDesc」キーの内容を順次検索します。
例えば、インターネットカードは0001キーを使っていますので、右側に新しいシリアルを作って、名前はnetworkddresです。もう一度ダブルクリックして、新しいMACアドレス値を入力します。最後にパソコンを再起動して修正を有効にします。
ネット上に公開コードのプログラムがあります。漢化しました。ダウンロード住所: MACAddres Changer.rar