本文的目的很简单,半自动化,半自动化哟。

就拿我们最经常干的一件事情开刀:修改远程桌面的端口号。

正常流程是这样的:

1、打开注册表编辑器

2、巴拉巴拉点击鼠标到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Terminal Server\WinStations\RDP-Tcp]这个长的不行的键值上

3、将右侧名为PortNumber的键值的值(默认是3389)修改成自己需要的端口。

上面的方法我们可以算算需要点击鼠标多少次,好吧,其实虽然过程很简单,但是确实很麻烦是吧?

今天的目的是做一个脚本,只要运行之后,根据提示输入需要更改的端口,就算ok,高科技外带牛X的节奏。怎么做的很简单,完全看代码吧,不会看的也可以直接用。

以下保存为cmd或者bat文件,切记要以管理员身份运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@echo off  修改远程端口号,写入注册表 
:::::::::::::::::::::::::::: 
:必须要管理员权限 
:首先写入一个注册表文件 
:提醒用户输入需要更改的端口号 
:由于这里需要十六进制数据,但是用户不会记录这个,所以要有一个转换过程 
:转换完毕后继续写入注册表,然后运行该注册表,最后删除 
echo Windows Registry Editor Version 5.00 >t1.reg 
echo. 
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] >>t1.reg 
:::::::::::::::::::::::::::::::::::::十进制转换十六进制 
setlocal enabledelayedexpansion 
set hexstr=0 1 2 3 4 5 6 7 8 9 A B C D E F 
set d=0 
for %%i in (%hexstr%) do (set d!d!=%%i&set/a d+=1) 
set/p scanf=请输入需要改变的RDP端口号,不可超过65535: 
if not defined scanf exit/b 
set dec=%scanf% 
call :d2h 
if not defined hex set hex=0 
::echo %dec% 的十六进制为:0x%hex% 
echo "PortNumber"=dword:0%hex% >>t1.reg 
regedit /s t1.reg 
del /q t1.reg 
:d2h 
if %scanf% equ 0 exit/b 
set/a tscanf=%scanf%"&"15 
set/a scanf">>="
set hex=!d%tscanf%!!hex! 
goto :d2h