阿里云添加路由的Windows批处理文件

2019-11-30 14:26 来源:未知

1. 添加TCP/IP端口,用于添加打印机使用,文件名: add_port.reg

环境说明:

  • 打印机是在局域网中一台打印服务器共享的打印机
  • 需要添加打印机的系统为win7x64。因打印机比较老,没有win7x64的驱动程序,咨询厂家得到下面的解决办法:
    正常手动添加打印机的步骤:
  1. 【添加打印机】
  2. 【添加本地打印机】
  3. 【创建新端口】
  4. 【端口类型:Local Port】
  5. 【输入端口名:\192.168.1.8HPLaserJ
  6. 选择厂商【HP】
  7. 打印机选择【HP LaserJet 3050 PCL5】
  8. 一直下一步完成。

阿里云添加路由的Windows批处理文件,阿里批处理

一段很好的学习bat程序的示例代码,如下:

@echo off

route print -4 "10.0.0.0" | find "10.0.0.0" > route_list
set gw=

for /F "tokens=1-5" %%a in ('type route_list') do (
 if not "%%c" == "" ( set gw=%%c )
)

if "%gw%" == "" ( echo "fail to get eth0 default gw" && goto error)


route print -4 100.64.0.0 | find "%gw%" > NUL
if not "%errorlevel%" == "0" (
    route -p add 100.64.0.0 mask 255.192.0.0 %gw% > NUL 2>&1
)
if not "%errorlevel%" == "0" ( echo "faild to add route 100.64.0.0/10" && goto error)

:success
del route_list
echo "add 100.64.0.0/10 success !"
timeout 10
exit 0

:error
timeout 10
exit 1

 

一段很好的学习bat程序的示例代码,如下: @echo off route print -4 "10.0.0.0" | find "10.0.0.0" rou...

发现一段很好的学习bat程序的示例代码,分享给大家,具体代码如下:

一段很好的学习bat程序的示例代码,如下:

 1 Windows Registry Editor Version 5.00
 2 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintMonitorsStandard TCP/IP PortPorts]
 3 "StatusUpdateInterval"=dword:0000000a
 4 "StatusUpdateEnabled"=dword:00000001
 5 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintMonitorsStandard TCP/IP PortPortsIP_192.168.6.245]
 6 "Protocol"=dword:00000002
 7 "Version"=dword:00000002
 8 "HostName"="192.168.6.245"
 9 "IPAddress"=""
10 "HWAddress"=""
11 "PortNumber"=dword:00000203
12 "SNMP Community"="public"
13 "SNMP Enabled"=dword:00000001
14 "SNMP Index"=dword:00000001
15 "PortMonMibPortIndex"=dword:00000001
16 "Queue"="print"
17 "Double Spool"=dword:00000000
18 [HKEY_LOCAL_MACHINESYSTEMControlSet001ControlPrintMonitorsStandard TCP/IP PortPorts]
19 "StatusUpdateInterval"=dword:0000000a
20 "StatusUpdateEnabled"=dword:00000001
21 [HKEY_LOCAL_MACHINESYSTEMControlSet001ControlPrintMonitorsStandard TCP/IP PortPortsIP_192.168.6.245]
22 "Protocol"=dword:00000002
23 "Version"=dword:00000002
24 "HostName"="192.168.6.245"
25 "IPAddress"=""
26 "HWAddress"=""
27 "PortNumber"=dword:00000203
28 "SNMP Community"="public"
29 "SNMP Enabled"=dword:00000001
30 "SNMP Index"=dword:00000001
31 "PortMonMibPortIndex"=dword:00000001
32 "Queue"="print"
33 "Double Spool"=dword:00000000

批处理解决过程:

@echo off
route print -4 "10.0.0.0" | find "10.0.0.0" > route_list
set gw=
for /F "tokens=1-5" %%a in ('type route_list') do (
 if not "%%c" == "" ( set gw=%%c )
)
if "%gw%" == "" ( echo "fail to get eth0 default gw" && goto error)
route print -4 100.64.0.0 | find "%gw%" > NUL
if not "%errorlevel%" == "0" (
  route -p add 100.64.0.0 mask 255.192.0.0 %gw% > NUL 2>&1
)
if not "%errorlevel%" == "0" ( echo "faild to add route 100.64.0.0/10" && goto error)
:success
del route_list
echo "add 100.64.0.0/10 success !"
timeout 10
exit 0
:error
timeout 10
exit 1
@echo off

route print -4 "10.0.0.0" | find "10.0.0.0" > route_list
set gw=

for /F "tokens=1-5" %%a in ('type route_list') do (
 if not "%%c" == "" ( set gw=%%c )
)

if "%gw%" == "" ( echo "fail to get eth0 default gw" && goto error)


route print -4 100.64.0.0 | find "%gw%" > NUL
if not "%errorlevel%" == "0" (
    route -p add 100.64.0.0 mask 255.192.0.0 %gw% > NUL 2>&1
)
if not "%errorlevel%" == "0" ( echo "faild to add route 100.64.0.0/10" && goto error)

:success
del route_list
echo "add 100.64.0.0/10 success !"
timeout 10
exit 0

:error
timeout 10
exit 1

 说明:只需要修改(5, 8,21,24, )行里面的IP地址,这个IP地址是网络打印机的IP地址,打印机要设置成静态IP地址。

获取打印机端口号:

  • 先按照常规的方法添加一次打印机
  • 然后点击【开始】-【运行】-输入regedit打开【注册表编辑器】
  • 搜索端口\192.168.1.8HPLaserJ
    得到下面两条记录:
    HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionPorts
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPorts
    在这个路径下面有一个【字符串值】,名字都是刚才添加打印机用的端口。
    经验证发现两条是关联的,修改一条,另外一条也会更改。

以上所述是小编给大家介绍的阿里云添加路由的Windows批处理文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 

 

获取打印机驱动文件:

  • 打印机上面点击右键,在弹出的菜单中选择【打印机属性】
  • 然后点击【关于标签】
  • 在驱动【程序文件(R)】列表下面有用到的相关驱动文件;
  • 我选择了第一个作为搜索条件【HPC3050F.GPD】
  • 打开我的电脑进入【C盘(系统盘)】搜索关键词【HPC3050F】
  • 得到了一个inf的文件是【C:Windowsinfprnhp002.inf】

您可能感兴趣的文章:

  • Windows使用bat批处理实现守护进程脚本分享
  • Windows批处理中获取文件属性的一些方法
  • PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
  • Windows运行bat批处理文件时隐藏cmd命令提示符窗口的方法
  • Windows批处理双击切换IP地址方便、快捷
  • windows批处理命令教程

2.  添加打印机,文件名: add_printer.bat

添加打印机的脚本

端口号有了,inf驱动文件也有了。剩下的就好解决了。

@echo off
echo;添加HP LaserJet 3050 打印机
ver|find "6.1">nul&& goto :win7
rem 环境中只有两种系统,不是win7就是xp
echo;添加中
rundll32 printui.dll,PrintUIEntry /in /u /z /q /n "\SZ-打印机HPLaserJ"
echo;设置默认打印机中
rundll32 printui.dll,PrintUIEntry /y /n "\SZ-打印机HPLaserJ"
echo;操作完成。
echo;按任意键退出。
pause>nul&exit
:win7
echo;
echo;添加端口:&echo;------------------------
reg query "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPorts" /s |find "\172.16.12.8HPLaserJ" >nul 2>nul
if %errorlevel% equ 0 (
 echo;端口已存在。) else (
 REG ADD "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPorts" /v \172.16.12.8HPLaserJ /t REG_SZ /f
)
echo;
echo;添加打印机:&echo;------------------------
(for /f "skip=5 tokens=7 delims=" %%i in ('reg query HKLMSYSTEMCurrentControlSetControlPrintPrinters') do echo %%i)|find "HP LaserJet 3050">nul 2>nul
if %errorlevel% equ 0 (
 echo;HP LaserJet 3050已存在。) else (
 echo;正在添加中。。。
 rundll32 printui.dll,PrintUIEntry /if /b "HP LaserJet 3050 PCL5" /f C:Windowsinfprnhp002.inf /r "\172.16.12.8HPLaserJ" /m "HP LaserJet 3050 PCL5" /z
 echo;正在设置为默认打印机
 rundll32 printui.dll,PrintUIEntry /n "HP LaserJet 3050 PCL5" /y
)
echo:&echo;操作完成。
echo;
echo;按任意键退出。
pause>nul&exit

 

别的方法实现自动安装打印机:printer management

在网上搜到另外一个更好的方法,不过该方法需要有驱动才行,未做测试,留下备用。

http://bbs.51cto.com/thread-1070667-1-1.html

 1 @echo off
 2 echo 正在安装...
 3 title 打印机自动安装程序
 4 echo 正在安装(理光)RICOH_3501_打印机,请稍等……
 5 echo.
 6 echo 如果360安全卫士拦截了,允许运行
 7 echo.
 8 echo 如果运行本程序出现异常或者程序运行后未能安装打印机,请联系管理员
 9 echo.
10 
11 
12 :64bit
13 echo 正在为您安装64位打印机驱动
14 echo.
15 rem 导入添加端口的注册表文件
16 reg import add_port.reg
17 if errorlevel 0 echo 网络打印机端口安装成功
18 echo.
19 echo 正在重启打印服务,请稍等……
20 echo.
21 rem 必须重启打印服务才能成功添加端口
22 net stop spooler>nul
23 net start spooler>nul
24 if errorlevel 0 echo 打印服务重启成功
25 echo ..............................................
26 echo ..............................................
27 echo 删除已经存在的同名打印机
28 rundll32 printui.dll,PrintUIEntry /dl /n "RICOH Aficio MP C3501 PCL 6" /q
29 echo.
30 echo 安装(理光)RICOH_3501_打印机......
31 echo.
32 
33 REM # /b 参数用于指定安装的打印机名称。
34 REM # /f 参数用于指定打印机的驱动文件。
35 REM # /r 具体的端口名称可以通过 打印机属性-->端口 那边去查看。
36 REM # /m 参数用于指定打印驱动程序的名称。
37 rundll32 printui.dll,PrintUIEntry /if /b "RICOH Aficio MP C3501 PCL 6" /f "\文件服务器公共盘常用软件打印机 驱动Ricoh_Aficio_MP_C3001_C3501_PCL6PCL6_x64位OEMSETUP.INF"  /r "IP_192.168.6.245" /m "RICOH Aficio MP C3501 PCL 6" /z
38 
39 if errorlevel 0 echo 打印机安装成功
40 echo.
41 rem 安装好打印机后,也可以在批处理文件最后加一行命令,把这个打印机设置为默认。
42 echo.
43 
44 echo 将这个打印机设置为默认打印机
45 rundll32 printui.dll,PrintUIEntry /y /n "RICOH Aficio MP C3501 PCL 6"
46 
47 goto end
48 
49 REM #*********************************************************************************
50 REM #
51 REM # /ia 用 inf 文件安装打印机驱动程序
52 REM # /if 用 inf 文件安装打印机
53 REM # /b[name] 基本打印机名
54 REM # /c[name] 如果操作在远程机器上,unc 机器名
55 REM # /dl 删除本地打印机
56 REM # /dn 删除网络打印机连接
57 REM # /dd 删除打印机驱动程序
58 REM # /f[file] inf 文件或输出文件
59 REM # /h[arch] 驱动程序体系结构,为下列之一: Alpha | Intel | IA64
60 REM # /m[model] 打印机驱动程序型号名
61 REM # /n[name] 打印机名
62 REM # /v[version] 驱动程序版本属于下列中的一个: Windows 95、98 和 ME | Windows NT 4.0 | Windows NT 4.0 或 2000 | Windows 2000 或 XP| Windows XP 
63 REM # /q 安静模式,不显示错误信息
64 REM # /r[port] 端口名
65 REM # /y 将打印机设为默认打印机
66 REM # /z 不要自动共享这台打印机
67 REM # /Z 共享这台打印机,只能跟 /if 选项一起使用
68 REM #其中/m参数后面的打印机驱动程序型号名为inf文件中用于指明驱动的打印机名称,一般在使用向导安装的时候在选定inf文件后出来的所有驱动名称中你自己需要的那个。
69 REM #
70 REM # 更多的帮助请使用rundll32 printui.dll,PrintUIEntry /?
71 REM #
72 REM #*********************************************************************************

第一步: 在机器上安装,共享打印机.(使用print management必须是打印服务器的本地打印机)

  1. 在您的服务器上打印机的驱动.
  2. 分别共享这台打印机
  3. 分别尝试用去连接这台打印机,确认都已经被正确的共享了
  4. 分别右键”控制面板打印机”下面的打印机,点属性.
  5. 检查属性”共享”选项卡,其中 “列入目录”都已经勾上了.

 

第二步:在服务器安装printer management

  1. 用域管理员身份登录服务器
  2. 打开 “控制面板添加删除程序”
  3. 点击 “添加删除windows组件”
  4. 双击 “管理和监视工具打印管理组件”
  5. 完成安装.

第三部:配置打印管理

  1. 用域管理员身份登录服务器
  2. 打开”管理工具打印管理”
  3. 右键 “驱动程序”选择”管理驱动程序”
  4. 点击打印机,然后按”添加”.
  5. 安装上您域中机器需要用到的驱动.
  6. 应用这些配置.

第四部:部署打印机

  1. 用域管理员身份登录服务器
  2. 打开”管理工具打印管理”
  3. 点击”打印机”
  4. 在右面的窗口中,选择一台打印机,右键它并且选择”从组策略部署”
  5. 在新窗口中点击”浏览”,选择一个合适的组策略来部署. 如果您需要部署到整个域的话,只要选择”默认域策略(Default domain policy)”
  6. 完成之后,您可以在下面的”已部署的打印机中看到”
  7. 检查默认组策略中, 打印部署相关的项是否正确添加了.
  8. 确认无误之后,客户端下一次重新启动就会自动安装上这台打印机了

PrintUIEntry的详细参数说明

用法: rundll32 printui.dll,PrintUIEntry [options] [@commandfile]
   /a[file] 二进制文件名
   /b[name] 基本打印机名
   /c[name] 如果操作在远程机器上,unc 机器名
   /dl 删除本地打印机
   /dn 删除网络打印机连接
   /dd 删除打印机驱动程序
   /e 显示打印首选项
   /f[file] inf 文件或输出文件
   使用 /f 指定的 INF 文件可能依赖的 INF 文件的 /F[file] 位置
   /ga 添加每个机器打印机连接(用户登录时此连接将传播到用户)
   /ge 枚举每个机器打印机连接
   /gd 删除每个机器打印机连接(用户登录时此连接将被删除)
   /h[arch] 驱动程序体系结构,为下列之一: x86 或 x64 或 Itanium 
   /ia 用 INF 文件安装打印机驱动程序
   /id 用添加打印机驱动程序向导安装打印机驱动程序
   /if 用 INF 文件安装打印机
   /ii 用带 INF 文件的添加打印机向导安装打印机
   /il 用添加打印机向导安装打印机
   /in 添加网络打印机连接
   /ip 使用网络打印机安装向导安装打印机
   /j[provider] 打印提供程序名称
   /k 将测试页打印到指定的打印机,不能安装打印机时的命令组合
   /l[path] 打印机驱动程序源路径
   /m[model] 打印机驱动程序型号名
   /n[name] 打印机名
   /o 显示打印机队列查看
   /p 显示打印机属性
   /q 安静模式,不显示错误信息
   /r[port] 端口名
   /s 显示服务器属性
   /Ss 将打印机设置存到一个文件
   /Sr 从一个文件还原打印机设置
   储存或还原必须放在命令结尾的打印机设置选项标志:
 2 PRINTER_INFO_2
 7 PRINTER_INFO_7
 c 颜色配置文件
 d 打印机数据
 s 安全描述符
 g 全局 DevMode
 m 最低设置
 u 用户 DevMode
 r 解决名称冲突
 f 强制使用名称
 p 解析端口
 i 驱动程序名称冲突
   /u 如果已安装,则使用现有的打印机驱动程序
   /t[#] 起始的以零为基础的索引页
   /v[version] 驱动程序版本,为下列之一:“类型 2 - 内核模式”或“类型 3 - 用户模式”
   /w 如果在 INF 中找不到指定的驱动程序,则提示用户
   /y 将打印机设置为默认打印机
   /Xg 获得打印机设置
   /Xs 设定打印机设置
   /z 不要自动共享这台打印机
   /Z 不要自动生成打印机名
   /K 更改 /h 的含义,使 x86 或 x64 或 Itanium 接受 2、3、4,并更改 /v 的含义,使“类型 3 - 用户模式”接受 3
   /Z 共享这台打印机,只能跟 /if 选项一起使用
   /? 帮助信息
   @[file] 命令行参数文件
   /Mw[message] 确认命令之前显示警告消息
   /Mq[message] 确认命令之前显示确认消息
   /W[flags] 指定向导(APW 和 APDW)的标志和切换
 r 使向导可以从上一页重新启动
   /G[flags] 指定全局标志和切换
 w 抑制安装程序驱动程序警告 UI (超级静声模式)

例如:
   运行服务器属性: 
rundll32 printui.dll,PrintUIEntry /s /t1 /c\machine
   运行打印机属性: 
rundll32 printui.dll,PrintUIEntry /p /n\machineprinter
   本地运行添加打印机向导: 
rundll32 printui.dll,PrintUIEntry /il 
   在 \machine: 
rundll32 printui.dll,PrintUIEntry /il /c\machine 运行添加打印机向导
   运行队列查看: 
rundll32 printui.dll,PrintUIEntry /o /n\machineprinter
   运行 INF 安装: 
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f c:infpathinfFile.inf /r "lpt1:" /m "Brother DCP-128C"
   运行 INF 安装(具有 INF 依赖关系)。在此示例中,prnbr002.inf 依赖于 ntprint.inf
rundll32 printui.dll, PrintUIEntry /ia /m "Brother DCP-128C" /K /h x64 /v 3 /f "c:infpathprnbr002.inf" /F "c:infpathntprint.inf"
   使用 INF 运行添加打印机向导: 
rundll32 printui.dll,PrintUIEntry /ii /f c:infpathinfFile.inf
   使用内置打印机驱动程序添加打印机: 
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /r "lpt1:" /m "Brother DCP-128C"
   添加每个机器打印机连接(用户登录时此连接将传播到用户): 
rundll32 printui.dll,PrintUIEntry /ga /c\machine /n\machineprinter /j"LanMan Print Services"
   删除每个机器打印机连接(用户登录时此连接将被删除): 
rundll32 printui.dll,PrintUIEntry /gd /c\machine /n\machineprinter
   枚举每个机器打印机连接: 
rundll32 printui.dll,PrintUIEntry /ge /c\machine
   使用 INF 添加打印机驱动程序: 
rundll32 printui.dll,PrintUIEntry /ia /c\machine /m "Brother DCP-128C" /h "x86" /v "Type 3 - User Mode" /f c:infpathinfFile.inf
   使用 INF 添加打印机驱动程序: 
rundll32 printui.dll,PrintUIEntry /ia /K /c\machine /m "Brother DCP-128C" /h "x86" /v 3
   添加内置打印机驱动程序: 
rundll32 printui.dll,PrintUIEntry /ia /c\machine /m "Brother DCP-128C" /h "Intel" /v "Type 3 - Kernel Mode"
   删除打印机驱动程序: 
rundll32 printui.dll,PrintUIEntry /dd /c\machine /m "Brother DCP-128C" /h "x86" /v "Type 3 - User Mode"
   删除打印机驱动程序: 
rundll32 printui.dll,PrintUIEntry /dd /K /c\machine /m "Brother DCP-128C" /h "x86" /v 3
   将打印机设置为默认打印机: 
rundll32 printui.dll,PrintUIEntry /y /n "printer"
   设置打印机注解: 
rundll32 printui.dll,PrintUIEntry /Xs /n  "printer" comment "My Cool Printer"
   取得打印机设置: 
rundll32 printui.dll,PrintUIEntry /Xg /n "printer"
   取得文件中的打印机设置保存结果: 
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"
   设置打印机设置命令使用:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
   将所有打印机设置存入一个文件: 
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
   从一个文件还原所有打印机设置: 
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat"
   将二级打印机信息存入一个文件: 
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" 2
   从一个文件还原打印机安全描述符: 
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s
   从一个文件还原打印机全局 devmode 和打印机数据: 
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" g d
   从文件最少设置还原并分析端口名: 
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" m p
   启用打印机的客户端呈现: 
rundll32 printui.dll,PrintUIEntry /Xs /n"printer" ClientSideRender enabled
   禁用打印机的客户端呈现: 
rundll32 printui.dll,PrintUIEntry /Xs /n"printer" ClientSideRender disabled
版权声明:本文由19463331韦德国际发布于19463331韦德国际,转载请注明出处:阿里云添加路由的Windows批处理文件