實戰腳本寫入註冊表,完善WindowsServer自動化運維

本文的目的很簡單,半自動化,半自動化喲。編輯器

就拿咱們最常常乾的一件事情開刀:修改遠程桌面的端口號。ide

正常流程是這樣的:spa

一、打開註冊表編輯器code

二、巴拉巴拉點擊鼠標到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Terminal Server\WinStations\RDP-Tcp]這個長的不行的鍵值上xml

三、將右側名爲PortNumber的鍵值的值(默認是3389)修改爲本身須要的端口。ci

上面的方法咱們能夠算算須要點擊鼠標多少次,好吧,其實雖然過程很簡單,可是確實很麻煩是吧?cmd

今天的目的是作一個腳本,只要運行以後,根據提示輸入須要更改的端口,就算ok,高科技外帶牛X的節奏。怎麼作的很簡單,徹底看代碼吧,不會看的也能夠直接用。string

如下保存爲cmd或者bat文件,切記要以管理員身份運行。it

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
相關文章
相關標籤/搜索