【问题标题】:How to change MAC address with batch file on Windows 7? [closed]如何在 Windows 7 上使用批处理文件更改 MAC 地址? [关闭]
【发布时间】:2012-01-06 03:31:38
【问题描述】:

我想通过单击(使用批处理文件)更改我的无线设备的 MAC 地址。我将如何做到这一点?它需要选择一个随机的MAC地址。

【问题讨论】:

    标签: windows windows-7 batch-file mac-address


    【解决方案1】:

    我不确定这是否完全正确,但应该是这样的:

    在 .reg 文件中

    REGEDIT4
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0009]
    "NetworkAddress"="000011112222"
    

    0009 必须更改以匹配您的适配器的地址。

    【讨论】:

    • 它改变了 MAC 地址,但我想我有一个错误 social.technet.microsoft.com/Forums/en-US/w7itpronetworking/…
    • @George: 隐藏在那个长线程的中间是观察到它可以工作,只要您选择一个正确构造的地址,即第一个八位字节的低两位必须是 10 根据@987654322 @ - 你是这种情况吗?
    • @George:另请注意,更改 MAC 对我有用(即使是不正确的地址)并且 MS 无法重现该问题,因此该问题可能特定于某个品牌的网络适配器. (或者也许所有的无线适配器?我没有一个方便的玩。)
    • 由于这个(和所有其他基于注册表的解决方案)但是更改了注册表值而不是调用某些 API,我猜在重新启动某些东西之前不会应用更改。
    【解决方案2】:

    有一个changeMac.bat文件。

    @echo off
    netsh interface set interface "Local Area Connection" disable
    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0007 /v NetworkAddress /d 002622D90EFC /f
    netsh interface set interface "Local Area Connection" enable
    echo Ok, enjoy it :)
    

    您可能需要更改三个地方:Local Area Connection0007002622D90EFC注意:您必须打开 regedit 以找出应将 0007 参数更改为的内容。 Mac 地址有一些规则:第二位必须是以下数字之一:0 2 6 A E。

    您可能需要一个 recoverMac.bat。

    @echo off
    netsh interface set interface "Local Area Connection" disable
    reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0007 /v NetworkAddress /f
    netsh interface set interface "Local Area Connection" enable
    echo Ok,enjoy it :)
    

    【讨论】:

      【解决方案3】:

      从批处理文件运行下一个命令:

      reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0001 /v NetworkAddress /d 0123456789AB
      

      0001 替换为您的接口号,将0123456789AB 替换为所需的网络地址。

      【讨论】:

      • 它不会改变MAC地址。
      【解决方案4】:

      这是在 Windows 7 上更改 MAC 地址的明确批处理文件: 就像这个问题的(误导性)标题一样,它缺少随机部分(作为练习将 set /p 替换为对生成器标签的调用)。现在很方便,随着所有这些拒绝服务的卷土重来......

      :: Change MAC script by bobdynlan, release 1
      :: For each network adapter it will list RegPath, GUID, Name, previous modified MAC if exists
      :: Then you can input new MAC, clear previous MAC by inputting 0 or skip by pressing [Enter]
      :: You can paste directly from ipconfig or wireshark because : < > { } [ ] - ( ) . will be filtered out
      :: Note that for wireless in Win7 standard drivers has to start with 02... 06... 0A... 0E...
      @ECHO OFF &SET /A RLINE=1 &SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
      FOR /F "tokens=3*" %%I IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards" /S^|FINDSTR /I /L "REG_SZ"') DO (
      SET /A RLINE+=1 &SET /A PARITY=!RLINE!^%%2
      IF !PARITY! EQU 0 (SET "ADAPTERGUID=%%I") ELSE (
      SET "ADAPTERNAME=%%I %%J"
      FOR /F %%A IN ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}" /F "!ADAPTERGUID!" /D /E /S ^|FINDSTR /I /L /V "Linkage"^|FINDSTR /I /L "\\Class\\"') DO SET "REGPATH=%%A"
      CLS &echo       Change MAC script by bobdynlan, release 1 &echo. &echo     RegPath = !REGPATH!  &echo     GUID = !ADAPTERGUID!  &echo     Adapter name = !ADAPTERNAME!
      REG QUERY "!REGPATH!" /V "NetworkAddress" 2>&1 |FINDSTR /I /L "NetworkAddress"
      SET "CHANGEMAC=" &SET "RESETMAC="
      echo. &echo  Enter MAC address for this adapter [0 to reset it] or press [Enter] to skip: &SET /P "CHANGEMAC="
      IF "!CHANGEMAC!"=="0" (SET "RESETMAC=Y" &SET "CHANGEMAC=") ELSE SET "RESETMAC="
      IF DEFINED CHANGEMAC SET "CHANGEMAC=!CHANGEMAC: =!" &FOR %%I IN (: ^< ^> { } [ ] - ^( ^) .) DO SET "CHANGEMAC=!CHANGEMAC:%%I=!"
      IF DEFINED CHANGEMAC REG ADD "!REGPATH!" /F /V NetworkAddress /T REG_SZ /D !CHANGEMAC! >nul 2>&1
      IF DEFINED RESETMAC REG DELETE "!REGPATH!" /F /V NetworkAddress >nul 2>&1
      ))
      IF DEFINED CHANGEMAC FOR /F "tokens=2,4*" %%I IN ('netsh interface show interface^|FINDSTR /I /L "Enabled"') DO (
      netsh interface set interface %%J DISABLED
      netsh interface set interface %%J ENABLED
      )
      

      ChangeMAC.bat

      【讨论】:

        【解决方案5】:

        您可以使用Technitium MAC Address changer 命令行来执行此操作。只有您需要在目标机器上安装它。

        【讨论】:

          【解决方案6】:
          1. 为自己编写一个 cmd 行 regedit 的批处理脚本。
          2. 更改注册表项值,如链接:http://www.windowsreference.com/networking/how-to-change-mac-address-in-windows-registry/

          【讨论】:

            猜你喜欢
            • 2013-08-19
            • 1970-01-01
            • 2013-05-26
            • 1970-01-01
            • 2013-06-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多