第一篇:DOS批处理设置(修改)IP、wins、计算机名及工作组名
DOS批处理设置(修改)IP、wins、计算机名及工作组名 2009-03-18 13:35 单位电脑几百台,新增电脑、维修重装系统、拆东墙补西墙等等的事,单位电脑维修人员屡做屡厌,又非做不可,总冇找到最好的办法解决ip地址、局域网共享等的方法,总也免不了手工设置。这不,设ip、工作组的事也是天天有的做。被问有冇得简单、直接点的法子?于是在网上收集了哈子,整理了个适合社会主义本单位特色的小工具。不是为了摆哈子,实为防止日后遗失,再有用得着的;再或许更多人有值得借鉴的也说不准。
单位楼栋、楼层、科室网段分布较多,各段间不能相互访问,但可访问中心指定电脑;各科电脑内部可彼此访问。因此,维修人员将系统按机型备好,临时按需改ip、计算机名及工作组名。这两道工序之外,还有一套一套的应用系统环境,也不是一成不变的;且科室不同,环境要求不同。哎,不说了,蛮遭孽的!饿就按要求整了。
@echo off cls color 0a echo.echo #-----------------------echo 功能:IP地址及计算机名快速设置 echo 说明:供单位电脑维护人员使用
echo #-----------------------rem 当前及默认设置
for /f “tokens=15” %%i in('ipconfig /all^|find /i “ip address”')do set IP=%%i if %IP%.==.set IP=192.168.0.1 set MASK=255.255.255.0 for /f “tokens=1-3 delims=.” %%i in(“%IP%”)do set dmn=%%i.%%j.%%k set GATEWAY=%dmn%.254 set wgname= for /f “tokens=*” %%i in('wmic computersystem get workgroup')do(if not defined wgname(set “wgname=%%i”))set mywins= for /f “tokens=12” %%i in('ipconfig /all^|find /I “Primary WINS Server”')do set mywins=%%i echo %mywins% rem 本单位固定wins服务器地址 set mynewwins=192.168.0.100 rem 暂不需设dns rem set DNS1= rem set DNS2= goto BEGIN :BEGIN echo.echo 请输入以下操作选项序号并回车: echo
1、使用方法,2、显示当前设置,3、手动交互设置,4、退出 set KEY=1 set /p KEY=请输入:
if %KEY% == 1 goto USAGE if %KEY% == 2 goto CURRE if %KEY% == 3 goto MANUAL goto END :USAGE cls echo.echo 使用方法:
echo #---------------------echo
1、网卡必需启用,网络连接中默认为“本地连接”;
echo
2、手动设置将一步一步要求你输入楼栋、楼层、科室拼音简码 echo 以及 ip、网关、dns等,并自动按此设置
echo 其中计算机名为你输入的楼栋+楼层+科室+ip最后一节数字。echo
3、手工设置完毕将自动重启 goto BEGIN :CURRE echo.echo 正在显示当前ip设置.......netsh-c interface ip dump echo.echo 当前计算机名为: %COMPUTERNAME% set wgname= for /f “tokens=*” %%i in('wmic computersystem get workgroup')do(if not defined wgname(set “wgname=%%i”))echo.echo 当前工作组名:%wgname% echo.netsh interface ip show wins goto BEGIN :MANUAL ECHO.ECHO.echo 请输入本机所在楼栋拼音简称(譬如办公楼输入:bgl)set /p Bq=请输入: echo.echo 请输入本机所在楼层(譬如党办在5楼输入:5)set /p Floor=请输入: echo.echo 请输入本机所在科室名简称(譬如党办输入:db,主任办公室后加A,职员办公室后加B;即dba或dbb)set /p Depart=请输入: echo.echo 请输入 IP 地址,本机当前ip为:%IP% set /p IP=请输入:
rem 网关掩码不要求输,自动填
rem set /p MASK= [请输入子网掩码MASK 地址]: rem echo.rem set /p GATEWAY= [请输入网关GATEWAY地址]: rem 暂不要求设 dns rem echo.rem set /p DNS1= [请输入主 DNS地址]: rem echo.rem set /p DNS2= [请输入第二DNS地址]: echo.if %Bq%.==.goto CURRE if %IP%.==.goto CURRE for /f “tokens=1-3 delims=.” %%i in(“%IP%”)do set dmn=%%i.%%j.%%k set GATEWAY=%dmn%.254 for /f “tokens=4 delims=.” %%i in(“%IP%”)do set addr=%%i set computername=%Bq%_%Floor%_%Depart%_%addr% set newwg=%Bq%_%Floor%_%Depart% ECHO 即将生效的 计算机名是 %computername% ECHO 即将生效的 IP 地址是 %IP% ECHO 即将生效的子网掩码 MASK 是 %MASK% ECHO 即将生效的网关GATEWAY地址是 %GATEWAY% ECHO 即将生效的工作组名是 %newwg% ECHO 即将生效的Wins地址是 %mynewwins% rem ECHO 即将生效的 主DNS 地址是 %DNS1% rem ECHO 即将生效的第二DNS地址是 %DNS2% echo.echo 请输入操作选项序号并回车:
echo
1、马上更改,2、重新设置,3、退出 set REEN=2 set /p REEN=请输入: if %REEN% == 1 goto DO if %REEN% == 2 goto MANUAL goto END :DO echo.echo 正在更改计算机名请稍后......echo.reg add HKLMSYSTEMCurrentControlSetControlComputerNameActiveComputerName /v ComputerName /t REG_SZ /d %computername% /f > nul reg add HKLMSYSTEMCurrentControlSetControlComputerNameComputerName /v ComputerName /t REG_SZ /d %computername% /f > nul reg add HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v Hostname /t REG_SZ /d %computername% /f > nul reg add HKLMSYSTEMCurrentControlSetServicesTcpipParameters /v “NV Hostname” /t REG_SZ /d %computername% /f > nul echo.echo 正在更改IP请稍后......echo.echo IP地址及子网掩码设置完成
netsh interface ip set address name=“本地连接” source=static addr=%IP% mask=%MASK% echo 网关地址设置完成
netsh interface ip set address name=“本地连接” gateway=%GATEWAY% gwmetric=0 rem echo 主DNS地址设置完成
rem netsh interface ip set dns name=“本地连接” source=static addr=%DNS1% register=PRIMARY rem echo 第二DNS地址设置完成 rem netsh interface ip add dns name=“本地连接” addr=%DNS2% index=2 echo 更改工作组:%wgname%为%newwg% wmic computersystem where Name=“%COMPUTERNAME%” call JoinDomainOrWorkgroup Name=“%newwg%” echo 设置wins: %mynewwins% netsh interface ip delete wins “本地连接” all netsh interface ip set wins name=“本地连接” source=static addr=%mynewwins% echo 重启电脑
%systemroot%system32iisreset.exe /reboot /timeout:0 goto END :END echo.echo 退出
第二篇:用命令行怎样通过IP地址知道对方的计算机名和工作组名
局域网中,用命令行怎样通过IP地址知道对方的计算机名和工作组名? 方法:nbtstat-A ip Nbtstat命令
显示基于 TCP/IP 的 NetBIOS(NetBT)协议统计资料、本地计算机和远程计算机的 NetBIOS 名称表和 NetBIOS 名称缓存。Nbtstat 可以刷新 NetBIOS 名称缓存和使用 Windows Internet 名称服务(WINS)注册的名称。使用不带参数的 nbtstat 显示帮助。语法
nbtstat[-a RemoteName] [-A IPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Interval] 参数
-a remotename 显示远程计算机的 NetBIOS 名称表,其中,RemoteName 是远程计算机的 NetBIOS 计算机名称。NetBIOS 名称表是与运行在该计算机上的应用程序相对应的 NetBIOS 名称列表。-A IPAddress 显示远程计算机的 NetBIOS 名称表,其名称由远程计算机的 IP 地址指定(以小数点分隔)。-c 显示 NetBIOS 名称缓存内容、NetBIOS 名称表及其解析的各个地址。-n 显示本地计算机的 NetBIOS 名称表。Registered 的状态表明该名称是通过广播还是 WINS 服务器注册的。-r 显示 NetBIOS 名称解析统计资料。在配置为使用 WINS 且运行 Windows XP 或 Windows Server 2003 操作系统的计算机上,该参数将返回已通过广播和 WINS 解析和注册的名称号码。-R 清除 NetBIOS 名称缓存的内容并从 Lmhosts 文件中重新加载带有 #PRE 标记的项目。-RR 释放并刷新通过 WINS 服务器注册的本地计算机的 NetBIOS 名称。-s 显示 NetBIOS 客户端和服务器会话,并试图将目标 IP 地址转化为名称。-S 显示 NetBIOS 客户端和服务器会话,只通过 IP 地址列出远程计算机。Interval 重新显示选择的统计资料,可以在每个显示内容之间中断 Interval 中指定的秒数。按 Ctrl+C 停止重新显示统计信息。如果省略该参数,netstat 将只显示一次当前的配置信息。/? 在命令提示符下显示帮助。注释
• Nbtstat 命令行参数区分大小写。• 下表描述由 nbtstat 生成的列标题。
标题 描述 Input 接收的字节数。Output 发送的字节数。
In/Out 该连接是否从计算机传出或者从其他计算机传入到本地计算机。Lift 名称表缓存项在被清除之前所存留的时间。Local Name 与连接相关的本地 NetBIOS 名称。Remote Host 与远程计算机相关的名称或 IP 地址。<03> 转化为十六进制的 NetBIOS 名称的最后一个字节。每个 NetBIOS 名称长度均为 16 个字符。最后一个字节通常有特殊的意义,因为相同的名称(只有最后一个字节不同)可能在一 台计算机上出现几次。例如,<20> 在 ASCII 文本中是一个空格。Type 名称类型。名称可以是唯一名称,也可以是组名称。Status 远程计算机上是否在运行 NetBIOS 服务(已注册),或同一计算机名是否已注册了相同的 服务(冲突)。State NetBIOS 连接的状态。
下表描述可能的 NetBIOS 连接状态。
State 描述 Connected 会话已建立。
Associated 连接的终结点已经被创建并与 IP 地址关联。Listening 该终结点对入站连接可用。Idle 该终结点已被打开但不能接收连接。
Connecting 会话处于连接阶段。在此阶段正在解析所选目标的由名称到 IP 地址的映射。Accepting 当前正在接受入站会话,并将立即连接。Reconnecting 会话将试图重新连接(如果第一次连接尝试失败)。Outbound 会话正处于连接阶段。当前正在创建 TCP 连接。Inbound 入站会话处于连接阶段。Disconnecting 会话正在断开连接。Disconnected 本地计算机已断开连接,并正等待远程系统的确认。
• 只有当“Internet 协议(TCP/IP)”协议在“网络连接”中安装为网络适配器属性的组件时,该命令才可用。示例
要显示 NetBIOS 计算机名为 CORP07 的远程计算机的 NetBIOS 名称表,请键入: nbtstat-a CORP07 要显示所分配 IP 地址为 10.0.0.99 的远程计算机的 NetBIOS 名称表,请键入: nbtstat-A 10.0.0.99 要显示本地计算机的 NetBIOS 名称表,请键入: nbtstat-n 要显示本地计算机 NetBIOS 名称缓存的内容,请键入: nbtstat-c 要清除 NetBIOS 名称缓存并重新装载本地 Lmhosts 文件中带标记 #PRE 的项目,请键入: nbtstat-R 要释放通过 WINS 服务器注册的 NetBIOS 名称并对其重新注册,请键入: nbtstat-RR 要每 5 秒以 IP 地址显示 NetBIOS 会话统计资料,请键入: nbtstat-S 5 格式图例
格式 意义 斜体
用户必须提供的信息 粗体
用户必须像显示的一样准确键入的元 素
省略号(...)可在命令行中重复多次的参数 在括号([])之间 可选项目
在大括号({})之间;将选项用管线(|)隔开。例如:{even|odd} 用户必须从中只选择一个选项的选项 组
Courier font 代码或程序输出