2023 字
10 分钟
Windows 服务器基础运维(二)

Windows服务器基础运维#

1 DOS命令行窗口#

1.1 概念#

1.什么是命令行?
命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序。
2.什么是DOS?
DOS(Disk Operation System 磁盘操作系统),DOS系统目前已经没有什么人使用了,但是dos命令却依然存在于我们使用的windows系统之中。大部分的DOS命令都已经在Windows里变成了可视化的界面,但是有一些高级的DOS命令还是要在DOS环境下来执行。所以学习命令行对于我们熟练操作Windows系统是很有必要的。

1.2 打开方式#

1.win+r cmd
2.搜索 cmd
3.路径框位置输入 cmd

1.3 命令类型#

内部命令:内部存在
外部命令:程序外加用法

2 Windows运维常用命令#

注意点:
1.不区分大小写
2.命令 参数列表
3.使用'/?'查看命令用法
4.上下键查看历史命令
ver //查看系统版本
hostname //查看主机名
whoami //用户名
ipconfig //查看网络配置
/all 查看详细信息
/release 释放连接
/renew 更新当前网络
/flushdns 清除 DNS 解析程序缓存。
netstat -ano //查看开发端口
ping
TTL值 --- 存活时间
大致判断对方主机操作系统类型:
255 Unix
128 Windows NT /2000
64 Windows 7 / Linux
32 Windows 95 / 98
修改TTL值:
regedit --注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters
键值“DefaultTTL” ---》 新建 Dword 32位 ---》改成十进制 255 重启
死亡ping
ping 192.168.63.129 -t -l 65500
tracert www.baidu.com //能够遍历数据包传输路径上的所有路由器
nslookup 解析域名
C:\Users\int_and_d>
当前所在路径
C盘 ---- 盘符
/ --- 根目录
dir --- 查看当前目录下的内容

cd 切换目录#

cd . //切换当前目录
cd .. //切换上一级目录
cd ..\.. //切换上一级的上一级目录
绝对路径:从根目录(盘符)出发
cd /d C:\Users\int_and_d\Desktop
相对路径:从当前目录出发
cd int_and_d\Desktop
D: 切换到对应的盘符

创建、删除文件#

> 重定向符
>> 追加重定向符
echo 123 > 1.txt 创建带有内容的文件
echo 123 >> 1.txt 追加内容
type 文件名 查看文件内容
type nul >文件名 创建空文件
del 文件名 //删除文件
del 目录名 //删除当前文件夹内的所有文件

创建、删除目录#

md 目录名 //创建目录
mkdir 目录名 //创建目录
mkdir 1\2\3 //创建多级目录
md 1\2\3 //创建多级目录
rd 目录名 //删除空目录
rmdir 目录名 //删除空目录
rd /s /q 目录名 //删除目录
rmdir /s /q 目录名 //删除目录

移动、复制和重命名文件#

move 旧文件名 新文件名 //移动文件并重命名
ren 旧文件名 新文件名 //重命名
rename 旧文件名 新文件名 //重命名
copy 旧文件名 新文件名 //复制粘贴文件并重命名
copy 1.txt + 2.txt 3.txt //将1和2的内容合并成3
copy 目录名 文件名 //把目录下的所以文件内容复制到一个文件

进程#

tasklist 查看进程
tasklist | find "QQ" //查看进程并筛选内容
explorer.exe //桌面进程
taskkill /pid 进程号 /t /f 强制终止并且关闭该进程的子进程和父进程
taskkill /im 进程名 /t /f 强制终止并且关闭该进程的子进程和父进程

net user#

查看当前系统有哪些用户
net user 用户名 密码 /add //创建用户
net user 用户名 /del //删除用户
net user 用户名 /active:yes //启用用户
net user 用户名 /active:no //禁用用户
net user 用户名 密码 //修改密码
net localgroup //查看组信息
net localgroup 组名 //查看对应组信息
net localgroup 组名 /add //创建组
net localgroup 组名 /del //删除组
net localgroup 组名 用户名 /add //将用户添加到组
net localgroup 组名 用户名 /del //将用户从组中删除

3 Windows常用服务命令#

compmgmt.msc 计算机管理
eventvwr.msc 事件查看器
services.msc 系统服务
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 系统服务注册表项 ---- 选择需要修改的服务 ---- 在修改start键值
Start的值设置为0,则驱动由启动引导器加载,“随着开机,最先启动”
Start的值设置为1,则驱动由操作系统的I/0子系统加载,即在系统内核初始化时加载;
Start的值设置为2,则驱动/服务在启动后自动加载;
Start的值设置为3,则驱动/服务就是按需手动加载;
Start的值设置为4,驱动/服务就是被禁用的状态。
gpedit.msc 组策略编辑器
secpol.msc 本地安全策略
lusrmgr.msc 本地用户和组
regedit 注册表
五个根键:
HKEY_CLASSES_ROOT:启动应用程序所需的全部信息
☆HKEY_CURRENT_USER:当前登录用户的配置信息,仅对当前用户生效
☆HKEY_LOCAL_MACHINE:本地计算机的系统信息,仅对当前主机生效
HKEY_USERS:计算机所有用户使用的配置数据,这些数据只有在用户登录的情况下才能访问
HKEY_CURRENT_CONFIG:当前硬件配置的文件信息

4 批处理文件#

bat脚本 --- batch脚本,批处理文件,是Windows系统默认支持的脚本语言,即dos编程
@echo off
内容
pause
@echo off // 关闭终端回显内容
pause //暂停

1)定时备份脚本

1.备份日志文件
日志---》事件查看器 ---》eventvwr.msc
C:\Windows\System32\winevt\Logs //存储日志文件的路径

set#

设置自定义变量
set //可以直接打印出变量
set 变量名=变量值
@echo off
set var=我是值
echo %var%
pause
set 变量名= //取消变量

字符串截取#

a=bbs.verybat.cn
%a:~1,2% =“bs” 偏移量 1,从第二位开始向右取 2 位
%a:~-3% =“.cn” 偏移量负 3,即倒数 3 位(也可理解为留下右边 3 位),右取全部
%a:~3% =“.verybat.cn” 偏移量 3(也可理解为去掉左边 3 位),右取全部
%a:~0,-3% =“bbs.verybat” 偏移量 0,右取长度至负 3,即倒数 3 位
%a:~2,-3% =“s.verybat” 偏移量 2,右取长度至负 3,即倒数 3 位
set "Y=%date:~,4%"
set "m=%date:~5,2%"
set "d=%date:~8,2%"
set "h=%time:~,2%"
set "mi=%time:~3,2%"
set "s=%time:~6,2%"

if 语句#

IF [NOT] EXIST filename command
if not exist "C:\windows_log_bak\bak_%Y%-%m%-%d%_%h%时\" (mkdir "C:\windows_log_bak\bak_%Y%-%m%-%d%_%h%时\")

xcopy#

备份
xcopy /E /I /Y /H "C:\Windows\System32\winevt\Logs" "C:\windows_log_bak\bak_%Y%-%m%-%d%_%h%时\"
/E 复制目录和子目录,包括空目录和空子目录
/I 如果目标不存在,且正在复制多个文件,则假定目标必须为目录。
/Y 取消提示以确认要覆盖现有目标文件。
/H 同时复制隐藏文件和系统文件。

forfiles#

forfiles /p "C:\windows_log_bak" /s /m *.* /d -180 /c "cmd /c if @isdir==FALSE (echo Deleting @path & del @path)"
/P pathname 表示开始搜索的路径。默认文件夹是当前工作的目录 (.)。
/M searchmask 根据搜索掩码搜索文件。默认搜索掩码是 '*'。
/S 指导 forfiles 递归到子目录。像 "DIR /S"。
/d 时间 -180 是否在180天内
/c 对检索出来符合条件的文件进行操作

for语句#

/D 参数只能显示当前目录下的目录名字
set TARGET_DIR=C:\windows_log_bak
for /d %%i in ("%TARGET_DIR%\bak_*") do (
dir "%%i" | findstr ".evtx" > nul
if errorlevel 1 (
echo 正在删除 %%i 文件夹..
rd "%%i"
) else (
echo %%i 该文件夹不为空,skipping...
)
)
| 管道符 //将前面命令的输出结果作为后面命令的输入

2)清理临时文件脚本

title //修改窗口名称
echo. //显示空行
:: //注释 rem

预定义的变量#

变量名值
%cd%当前目录
%date%当前日期
%time%当前时间
%random%0~32767之间的随机数
%path%环境变量
%COMPUTERNAME%返回计算机的名称
%OS%返回操作系统名称
%USERNAME%返回当前登录的用户的名称
%WINDIR%返回操作系统目录的位置

3)启动/停止服务脚本

net start server
net stop server
echo y //自动回复确认

定时任务创建

1.搜索“任务计划程序” / taskschd.msc
2.创建基本任务
3.属性 ---》 最高权限运行
Windows 服务器基础运维(二)
https://wangyi187.top/posts/os-03-windows-ops-2/
作者
WangYi
发布于
2024-07-10
许可协议
CC BY-NC-SA 4.0