【问题标题】:How can I create a batch file that changes my MAC address?如何创建更改我的 MAC 地址的批处理文件?
【发布时间】:2020-04-23 17:12:48
【问题描述】:

感谢https://superuser.com/questions/1514745/how-to-change-mac-address-on-windows-10-without-third-party-software/1544773,我最近学会了如何更改我的 MAC 地址,但我想知道是否可以在批处理文件中实现这一点。我的 NIC 的注册表项是 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0011。我想创建一个随机化我的 MAC 地址的批处理文件。你不需要为我创建批处理文件(你可以,我无法控制你),但非常感谢指针。

提前致谢,

亚洲

【问题讨论】:

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


    【解决方案1】:

    这是我的代码,我以前做过。

    @echo off
    dism >nul
    if %errorlevel% NEQ 0 goto Elevate
    (call )
    netsh interface set interface Wi-Fi disable
    timeout /t 1 /nobreak >null
    netsh interface set interface Wi-Fi enable
    choice /c RC /m "Would you like to randomize your MAC adress or customize it?"
    if %Errorlevel% EQU 2 goto custom
    set loopcount=5
    :loop
    set /a loopcount=loopcount-1
    if %loopcount% LEQ 0 (goto exitloop)
    set /a "ascii = %random% * 26 / 32768 + 65"
    cmd /c exit /b %ascii%
    set "rl1=%rl1%%=ExitCodeAscii%
    goto loop
    :exitloop
    set MAC="0E%random:~0,2%%rl1:~0,2%%random:~0,2%%rl1:~3,2%%rl1:~-1%%random:~0,1%"
    goto after
    :custom
    echo What would you like to change your MAC address to?
    echo Remember to always have the second digit of your MAC address to always be a 2, 6, A, or E
    echo Format: AABBCCDDEEFF
    echo/
    set /p MAC="Input your MAC address here (no spaces or hyphens)> "
    :after
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0011" /v NetworkAddress /d %MAC% /f >null
    netsh interface set interface Wi-Fi disable
    timeout /t 1 /nobreak >null
    netsh interface set interface Wi-Fi enable
    echo Operation Successful
    echo %mac% is your new MAC address
    pause
    goto :eof
    :Elevate
    Echo Error: The requested operation requires elevation
    Echo Run file again as admin
    Echo Closing file in 10 seconds...
    timeout /t 10 /nobreak >nul
    goto :eof
    

    它有时需要重新启动才能工作,但它通常工作正常。

    【讨论】:

    • 提示:永远不要使用ControlSet001。不能保证它完全存在。应始终使用CurrentControlSet。哪个控件集是当前控件集,哪个控件集是最后一个已知的良好控件集,由 Windows 注册表中键 HKEY_LOCAL_MACHINE\SYSTEM\Select 下的双字值定义。我有一台 Windows PC,其中 ControlSet001 不再存在,ControlSet003CurrentControlSet
    • 确实如此,这取决于在计算机上如何下载 Windows 以及是否重新安装。然而,在这个问题中,Asian 说他的 NIC 注册表路径确实有 ControlSet001,这就是我把它放在那里的原因
    • 您的代码在我的机器上提供了无效的随机 MAC 0E26HZ66RBZ10E12BZ32JJ8。复制粘贴你的代码,我做错了什么?
    • @user2956477 stackoverflow.com/q/61862248/12671858 编写此代码时我没有意识到 Mac 地址是十六进制的,这在这篇文章中得到了解决
    • 没关系,我同时发现了这段代码dostips.com/forum/viewtopic.php?t=4833
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2013-05-26
    • 2013-08-31
    相关资源
    最近更新 更多