在 Windows 系统的日常使用、开发运维工作中,熟练掌握常用指令是提升效率、解决各类问题的关键。本书聚焦于 Windows 系统下从基础检测到复杂系统服务管理等一系列常用指令。从 telnet 检测端口开放、tracert 追踪路由跳转,到通过 msconfig、services.msc 等指令进行系统服务管理,再到 net user 管理用户账户等,每一条指令都进行了详细阐述。不仅介绍指令的基本语法,更结合丰富的实战案例,深入解析其在不同场景下的应用,无论是排查网络故障、管理系统进程,还是进行用户权限设置,都能在本文找到对应的解决方案,帮助您全面提升对 Windows 系统的操作与管理能力。
## 检测端口开放
telnet 101.132.222.28 3306 ## 查看某个端口是否开放
## 路由跳转记录
tracert 101.132.222.28 ## 路由跳转记录
msconfig、services.msc、sc 、tasklist /svc
## 注:/svc是详细查看一个宿主进程对应的多项服务 。
## SC是Service Control Manager的缩写,是Windows操作系统中的一个命令行工具,用于管理服务。它可以启动、停止、暂停、恢复和删除服务,还可以查询服务的详细信息。SC命令的参数包括:
- server:## 指定服务所在的远程服务器的名称。该名称必须使用通用命名约定 (UNC) 格式(例如 \\myserver)。
- servicename:## 指定 getkeyname 操作返回的服务名称。
- command:## 指定要执行的命令。
- start:## 启动服务。
- stop:## 停止服务。
- pause:##暂停服务。
- resume:## 恢复服务。
- remove:## 删除服务。
taskkill /f /PID 进程号 ## 其中 /f 表示强杀、强制结束
/S system ## 指定要连接的远程系统。
/U [domain\]user ## 指定应该在哪个用户上下文执行这个命令。
/P [password] ## 为提供的用户上下文指定密码。如果忽略,提示输入。
/FI filter ## 应用筛选器以选择一组任务。允许使用 "*"。例如,映像名称 eq acme*
/PID processid ## 指定要终止的进程的 PID。使用 TaskList 取得 PID。
/IM imagename ## 指定要终止的进程的映像名称。通配符 '*'可用来指定所有任务或映像名称。
/T ## 终止指定的进程和由它启用的子进程。
/F ## 指定强制终止进程。
/? ## 显示帮助消息。
2 筛选器:
筛选器名 有效运算符 有效值
----------- --------------- -------------------------
STATUS eq, ne RUNNING |NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne 映像名称
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号。
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为 hh:mm:ss。 hh - 时, mm - 分,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB
USERNAME eq, ne 用户名,格式为 [domain\]user
MODULES eq, ne DLL 名称
SERVICES eq, ne 服务名称
WINDOWTITLE eq, ne 窗口标题
说明
----
1) 只有在应用筛选器的情况下,/IM 切换才能使用通配符 '*'。
2) 远程进程总是要强行 (/F) 终止。
3) 当指定远程机器时,不支持 "WINDOWTITLE" 和 "STATUS" 筛选器。
3、例如
TASKKILL /IM notepad.exe
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM cmd.exe /T
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *
TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
eventvwr.msc ## --------------- 事件查看器
del /ah /f DLLHOST.exe -------------- ## 其中 /ah 是只删除所有隐藏文件的意思
/p ## 提示您确认是否删除指定的文件。
/f ## 强制删除只读文件。
/s ## 从当前目录及其所有子目录中删除指定文件。显示正在被删除的文件名。
/q ## 指定安静模式。不对删除确认作出提示。
/a ## 根据指定的属性删除文件。
dir /s rundll32.exe
/p ## 一次显示一屏列表。要查看下一个屏幕,请按任意键。
/q ## 显示文件所有权信息
/w ## 以宽格式显示列表,每行最多包含五个文件名或目录名
/d ## 以与 /w 相同的格式显示列表,但文件按列排序。
/a ## 仅显示具有您指定属性的目录和文件的名称。
/t ## 指定要显示或用于排序的时间字段。可用的时间字段值为:c - Creationa - 最后访问w - 最后写入
/s ## 列出指定目录和所有子目录中指定文件名的每次出现。
/b ## 显示目录和文件的裸列表,没有其他信息。 /b 参数覆盖 /w。
/l ## 使用小写显示未排序的目录名和文件名。
/n ## 在屏幕的最右侧显示带有文件名的长列表格式。
/x ## 显示为非 8dot3 文件名生成的短名称。显示与 /n 的显示相同,但在长名称之前插入短名称。
/c ## 以文件大小显示千位分隔符。这是默认行为。使用 /-c 隐藏分隔符。
/4 ## 以四位数格式显示年份。
/r ## 显示文件的备用数据流。
/? ## 在命令提示符处显示帮助。
## attrib是dos和Windows系统中的一个用于更改文件或目录属性的命令,它的语法格式如下:
attrib [+r | -r] [+a | -a] [+s | -s] [+h | -h] [驱动器:][路径]文件名 [/s [/d]]
attrib 命令有4个常用参数:
r ## 读
a ## 存档
s ## 系统
h ## 隐藏分别为、、、等属性。这些参数用来更改文件或目录的属性,其中加号(+)代表添加属性,减号(-)代表取消属性。
## 例如,+r 表示将文件设置为“只读”, -r 表示将其取消“只读”属性;
## +h 表示将文件的隐藏属性设置为“是”,-h 则表示取消这个属性。
## attrib 命令除了可以更改文件的属性,还可以使用 /d 和 /s 参数循环遍历目录中的文件和文件夹。其中,/d 参数用于更改目录的属性, /s参数用于同时更改当前目录下所有子目录中的文件和文件夹的属性。
## 实例1:将文件设置为“只读”
attrib +r c:\test.txt
如果想要取消某个文件的只读属性
attrib -r c:\test.txt
## 实例2:将目录以及目录下的文件和文件夹设置为隐藏
首先,先用命令行生成一个mydoc文件夹
if not exist c:\mydoc md c:\mydoc
## 然后再创建3个文件夹
for /l %i in (1 1 3) do md c:\mydoc\%i
## 在命令提示符下输入如下命令:
attrib +h /s /d c:\mydoc
## 如果想要取消某个目录及其子目录下的所有隐藏属性,输入如下命令即可:
attrib -h /s /d c:\mydoc
setp c:\www\1111\cmd.exe
## 1、增加用户
net user username password /add
## 2、删除用户
net user username /del
## 3、修改用户密码
net user username newpassword
## 4、升级用户为管理员
net localgroup administrators username /add
## 5、将管理员账户降为普通用户
net localgroup administrators username /del
## 6、查看所有用户
net user
## 7、查看特定用户信息
net user username
## 8、激活特定用户
net user username /active:yes
## 9、禁用特定用户
net user username /active:no
## 10、查看特定用户组所包含的用户
net localgroup groupname
## 快速查找未打补丁的 exp,可以最安全的减少目标机的未知错误,以免影响业务。 命令行下执行检测未打补丁的命令如下:
systeminfo>micropoor.txt&(for %i in ( KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 ) do @type micropoor.txt|@find /i "%i"|| @echo %i you can fuck)&del /f /q /a micropoor.txt
SC 是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于“控制面板”中“管理工具”项中的“服务”。
创建
# 安装服务
## 服务名称是redis,
C:\Windows\system32>sc create redis binpath= "D:\work\databases\Redis-x64-3.2.100\redis-server.exe --service-run D:\work\databases\Redis-x64-3.2.100\redis.windows.conf"
## 直接创建时也能设置显示名称
C:\Windows\system32>sc create redis binPath=D:\work\databases\Redis-x64-3.2.100\redis-server.exe DisplayName= redis
查询
# 使用query参数
C:\Windows\system32>sc query redis
SERVICE_NAME: redis
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
# 使用queryex参数(比query查询多出两个结果)
C:\Windows\system32>sc queryex redis
SERVICE_NAME: redis
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 0
FLAGS :
启动
# 先查询服务状态(STOPPED)
C:\Windows\system32>sc query redis
SERVICE_NAME: redis
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
# 启动服务(RUNNING)
C:\Windows\system32>sc start redis
SERVICE_NAME: redis
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_PRESHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 8896
FLAGS :
停止
# 直接停止
sc stop redis
# 添加停止原因和备注
sc stop redis 1:2:8 "must stop redis"
配置
# 配置服务的显示名称,这里将服务的显示名字redis改成REDIS显示(displayname不区分大小写,且等号后有空格)
C:\Windows\system32>sc config redis displayname= REDIS
[SC] ChangeServiceConfig 成功
# 配置服务描述
C:\Windows\system32>sc description redis "redis的描述内容"
[SC] ChangeServiceConfig2 成功
删除
#删除服务
C:\Windows\system32>sc delete redis
[SC] DeleteService 成功
# 删除后再查看
C:\Windows\system32>sc query redis
[SC] EnumQueryServicesStatus:OpenService 失败 1060:
指定的服务未安装。
实例
手动启动
sc Create 手动 binPath= "cmd /K start" type= own type= interact
sc start 手动
sc Create 手动启动 binPath= "cmd /K start" type= own type= interact start= DEMAND
sc start 手动启动
测试
sc Create aini binPath= "cmd /K start" type= own type= interact start= AUTO
sc start aini
a) 启用防火墙
C:\>netsh firewall set opmode mode = enable
b) 关闭防火墙
C:\>netsh firewall set opmode mode = disable
c) 重置防火墙
C:\>netsh firewall reset
1、查看网络配置
netsh interface ip show {选项}
{选项}可以是:
address - ## 显示 IP 地址配置。
config - ## 显示 IP 地址和更多信息。
dns - ## 显示 DNS 服务器地址。
icmp - ### 显示 ICMP 统计。
interface - ## 显示 IP 接口统计。
ipaddress - ## 显示当前 IP 地址
ipnet - ## 显示 IP 的网络到媒体的映射。
ipstats - ## 显示 IP 统计。
joins - ## 显示加入的多播组。
offload - ## 显示卸载信息。
tcpconn - ##显示 TCP 连接。
tcpstats - ## 显示 TCP 统计。
udpconn - ## 显示 UDP 连接。
udpstats - ## 显示 UDP 统计。
wins - ## 显示 WINS 服务器地址。
2、配置接口IP/网关IP
netsh interface ip set address "本地连接" static 192.168.1.100 255.255.255.0 192.168.1.253
------------------------------
C:\>netsh interface ip show config
接口 "本地连接" 的配置
DHCP 启用 否
IP 地址 192.168.1.100
子网掩码 255.255.255.0
默认网关: 192.168.1.253
GatewayMetric: 0
InterfaceMetric 0
静态配置的 DNS 服务器: 202.96.209.134
静态配置的 WINS 服务器: 无
用哪个前缀注册: 只是主要
3、配置自动换取IP地址,DNS地址及wins地址
netsh interface ip set address "本地连接" dhcp
netsh interface ip set dns "本地连接" dhcp
netsh interface ip set wins "本地连接" dhcp
4、配置静态IP地址,DNS地址及wins地址
netsh interface ip set address "本地连接" static 192.168.1.253
netsh interface ip set dns "本地连接" static 202.96.209.6
netsh interface ip set wins "本地连接" static 192.168.1.1
5、查看并导出网络配置文件
C:\>netsh -c interface dump >c:\dump.txt (">"表示导出。">>"表示追加)
#========================
# 接口配置
#========================
pushd interface
reset all
popd
# 接口配置结束
#========================
# 接口配置
#========================
pushd interface ipv6
uninstall
popd
# 接口配置结束
# ----------------------------------
# ISATAP 配置
# ----------------------------------
pushd interface ipv6 isatap
popd
# ISATAP 配置结束
# ----------------------------------
# 6to4 配置
# ----------------------------------
pushd interface ipv6 6to4
reset
popd
# 6to4 配置结束
#=============
# 端口代理配置
#=============
pushd interface portproxy
reset
popd
# 端口代理配置结束
# ----------------------------------
# 接口 IP 配置
# ----------------------------------
pushd interface ip
# "本地连接" 的接口 IP 配置
set address name="本地连接" source=static addr=192.168.1.5 mask=255.255.255.0
set address name="本地连接" gateway=192.168.1.1 gwmetric=0
set dns name="本地连接" source=static addr=202.96.209.134 register=PRIMARY
set wins name="本地连接" source=static addr=none
popd
# 接口 IP 配置结束
6、导入网络配置文件
C:\>netsh -f c:\dump.txt
C:\>netsh exec c:\dump.txt