如何在Windows 7上使用批处理文件更改MAC地址?

时间:2012-01-06 03:31:38

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

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

6 个答案:

答案 0 :(得分:5)

我不确定这是否完全正确,但它会是这样的:

在.reg文件中

REGEDIT4

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

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

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:3)

以下是在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

答案 3 :(得分:3)

有一个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注意:您必须打开注册表以找出应将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 :)

答案 4 :(得分:2)

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

答案 5 :(得分:0)

  1. 批量编写自己的cmd行regedit。
  2. 更改注册表项值,例如链接:http://www.windowsreference.com/networking/how-to-change-mac-address-in-windows-registry/