系统启动不了的情况下用PE查看网络IP配置信息(Windows系列系统)


先说下网络找到的思路,通过查看注册表来找原来系统的IP地址信息。


最后感想无忧论坛的pznpt大神根据思路用脚本命令写了一个自动化查看工具,极其方便,放在文件末尾。


操作思路解析


1. 准备一个安装好PE的U盘,并设置优盘为第一启动项。



2. 进入PE系统,开始->运行,输入regedit,打开注册表编辑器。

3. 选中HKEY_LOCAL_MACHINE

4. 点击文件->加载配置单元,如果文件类型不是所有文件,改成所有文件,然后选择C:\Windows\System32\config\SYSTEM文件。




5. 此时会提示输入项名称,可以随便输入,此处我输入的是TEST。






6. 点击确定后,再次展开HKEY_LOCAL_MACHINE,此时在最下面一个子菜单会看到刚才导入的注册表项。




7.依次展开HKEY_LOCAL_MACHINE\TEST\ControlSet001\Services\Tcpip\Parameters\Interfaces,




在Interfaces目录下,有几个子目录,就是你电脑上的IP配置情况,有线网卡、无线网卡、虚拟网卡等。这里我使用的是手动配置的内网IP地址,对应参数为:

IP地址:IPAddress->192.168.6.100

子网掩码:SubnetMask->255.255.248.0

网关:DefaultGateway->192.168.0.1

DNS:NameServer->218.2.135.1


脚本命令工具

本帖最后由 pznpt 于 2014-9-2 01:23 编辑

P处理 获取网卡名称及IP信息.bat
考虑到在WinPE中运行,但PE精简程度不一样,除reg.exe外,未使用其它外部命令
也可以在正常系统中运行,查看其它系统安装分区的IP信息,或本系统IP信息
2014-9-1
改正按F8进入“最后一次正确配置”后,注册表项HKLM\SYSTEM\ControlSet001不存在而无法运行的问题;
增加获取Domain名称和HostName名称;
将结果保存到脚本所在目录下IPInfo.txt文本中,而不是打印到屏幕

2014-6-4
修正了在xp上获取的DNS地址可能出现多余的\0字符

@echo off 2>nul 3>nul
setlocal enabledelayedexpansion
set /p Input=输入要查询的系统安装盘符[例如D]:
if /i "%Input%:" neq "%systemDrive%" (
    for %%a in (software system) do (
        if not exist "%Input%:\Windows\System32\config\%%a" echo,输错啦&pause & exit/b
    )
    reg load HKLM\Temp_HIV1 %Input%:\Windows\System32\config\software >nul
    reg load HKLM\Temp_HIV2 %Input%:\Windows\System32\config\system >nul
    call :GetIPInfo Temp_HIV1 Temp_HIV2
    reg unload HKLM\Temp_HIV1 >nul
    reg unload HKLM\Temp_HIV2 >nul
) else call :GetIPInfo SOFTWARE SYSTEM
start "" "%~dp0IPInfo.txt" & exit/b

:GetIPInfo
for /f "tokens=1,2*" %%a in ('reg query "HKLM\%2\select"') do (
    if /i "%%a" == "Default" set /a x=%%c
)
set "v1=Microsoft\Windows NT\CurrentVersion\NetworkCards"
set "v2=ControlSet00%x%\Control\Network"
set "v3=ControlSet00%x%\services\Tcpip\Parameters"
set "s=EnableDHCP NameServer IPAddress SubnetMask DefaultGateway"
set "s=%s% DHCPNameServer DHCPIPAddress DHCPSubnetMask DHCPDefaultGateway"

for /f "delims=" %%a in ('reg query "HKLM\%1\%v1%"') do (
    set "v=%%a"
    if "!v:%v1%\=!" neq "!v!" (
        set /a n+=1
        for /f "tokens=1,2*" %%b in ('reg query "%%a"') do (
            if /i "%%b" == "ServiceName" (
                set "Guid!n!=%%d"
            ) else if /i "%%b" == "Description" set "NetCard!n!=%%d"
        )
    )
)
if not defined n echo,找不到网卡&pause & exit

(for /f "tokens=1,2*" %%a in ('reg query "HKLM\%2\%v3%"') do (
    if /i "%%a" == "Domain" (
        if "%%c" neq "" (echo,域名名称:%%c)else echo,域名名称:^<nul^>
    ) else if /i "%%a" == "HostName" echo,主机名称:%%c
))>"%~dp0IPInfo.txt"

for %%a in (%s%) do set "_%%a=1"
(for /l %%a in (1 1 %n%) do (
    echo,&echo,网卡名称:!NetCard%%a!
    for %%b in (%s%) do set "%%b="
    for /f "delims=" %%b in ('reg query "HKLM\%2\%v2%" /s') do (
        if defined flag (
            for /f "tokens=1,2*" %%c in ("%%b") do (
                if /i "%%c" == "Name" echo,连接名称:%%e& set "flag="
            )
        ) else (
            set "v=%%b"
            for %%c in ("\!Guid%%a!") do if "!v:%%~c=!" neq "!v!" set flag=1
        )
    )
    for /f "tokens=1,2*" %%b in ('reg query "HKLM\%2\%v3%\Interfaces\!Guid%%a!"') do (
        if defined _%%b if "%%d" neq "" set "v=%%d" & set "%%b=!v:\0=!"
    )
    if /i "!EnableDHCP!" == "0x1" (
        echo,IP 地 址:!DHCPIPAddress!
        echo,子网掩码:!DHCPSubnetMask!
        echo,默认网关:!DHCPDefaultGateway!
        echo,DNS 地址:!DHCPNameServer!
    ) else (
        echo,IP 地 址:!IPAddress!
        echo,子网掩码:!SubnetMask!
        echo,默认网关:!DefaultGateway!
        echo,DNS 地址:!NameServer!
    )
))>>"%~dp0IPInfo.txt"


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页