Speed-Win
大纲
基础使用
- echo "Hello World" 输出 Hello World 到终端屏幕
- cls 清除屏幕
- chcp 65001 修改字符编码,修复乱码
- Add-AppxPackage xxx.Msixbundle 安装 msixbundle 文件
shutdown
- shutdown 关闭、重启、注销、休眠计算机
- shutdown -s -t 60 60秒后关机
- shutdown -s -t 3600 1小时后关机
- tsshutdn 60秒后关机
- shutdown -s -f 强制关机
- shutdown -s -t 时间
- shutdown -a 取消 关机命令
运行脚本
- cscript 执行 vbs 脚本
- cscript /Nologo test.vbs 执行 test.vbs 脚本
-
- call ff.bat 调用执行 ff.bat 脚本(ff.bat 脚本执行完原脚本才会往下执行)
-
- start 运行某程序或命令
- start /max notepad.exe 最大化的方式启动记事本
- start /min calc.exe 最小化的方式启动计算器
- start /min "" d:\Proxifier.exe 最小化的方式启动 Proxifier 代理工具
- start tasklist 启动一个 cmd 实例窗口,并运行 tasklist
- start explorer f:\ 调用资源管理器打开f盘
- strat iexplore "www.qq.com" 启动 ie 并打开 www.qq.com 网址
- start ff.bat 启动开始执行 ff.bat(启动 ff.bat 脚本后,原脚本继续执行,不会等 ff.bat 脚本执行完)
环境变量
- set 显示当前用户所有的环境变量
-
- set path 查看 path 的环境变量值(准确的说是查看以 path 开头的环境变量)
- set path= 清空 path 变量
-
- set path=d:\execute
- 将 path 变量设置为 d:\execute(注:修改的 path 只会影响当前回话,也不会存储到系统配置中去;当前 cmd 窗口关闭,新设置的 path 也就不存在了)
-
- set path=%path%;d:\execute
- 在 path 变量中添加 d:\execute(注:修改的 path 只会影响当前回话,也不会存储到系统配置中去;当前 cmd 窗口关闭,新设置的 path 也就不存在了)
-
- path 显示当前 path 变量的值
-
- path ; 清除所有搜索路径设置并指示 cmd.exe 只在当前目录中搜索
- path d:\xxx;%PATH% 将 d:\xxx 路径添加到 path 中
符号
&
- 顺序执行多条命令,而不管命令是否执行成功
-
- cd /d d:\src&work.exe /o c:\result.txt
- 先将当前工作目录切换到d:\src下,然后执行work.exe /o c:\result.txt命令
&&
- 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
-
- find "ok" c:\test.txt && echo 成功
- 如果找到了"ok"字样,就显示"成功",找不到就不显示
||
- 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
-
- find "ok" c:\test.txt || echo 不成功
- 如果找不到"ok"字样,就显示"不成功",找到了就不显示
|
- 管道命令
-
- dir *.* /s/a | find /c ".exe"
- 先执行 dir 命令,然后对输出结果(stdout)执行 find 命令(输出当前文件夹及所有子文件夹里的 .exe 文件的个数)
-
- dir *.* /s/a 2>&1 | find /c ".exe"
- 先执行 dir 命令,然后对输出结果(stdout)和错误信息(stderr)执行 find 命令(输出当前文件夹及所有子文件夹里的.exe文件的个数)
>
- 将当前命令输出以覆盖的方式重定向
-
- tasklist > p1.txt
- 将 tasklist 的输出结果(stdout)以覆盖的方式重定向到 p1.txt 文件中(注:tasklist 的输出结果就不会打印到屏幕上了)
-
- tasklist 1> p1.txt
- 等同于:tasklist > p1.txt
-
- dir bin 2> p1.txt
- 输出结果(stdout)打印在屏幕上,错误信息(stderr)以覆盖的方式重定向到 p1.txt 中(注:bin 目录不存在时,会输出错误信息)
-
- dir bin > p1.txt 2>&1
- 将错误信息(stderr)重定向到输出结果(stdout),然后将输出结果(stdout)以覆盖的方式重定向到 p1.txt 中(注:bin 目录不存在时,会输出错误信息)
-
- dir bin 2> p1.txt 1>&2
- 将输出结果(stdout)重定向到错误信息(stderr),然后将错误信息(stderr)以覆盖的方式重定向到 p1.txt 中(注:bin 目录不存在时,会输出错误信息) 注:与上条命令结果一致
-
- tasklist >nul
- 屏幕上不打印 tasklist 的输出结果(stdout),错误信息(stderr)仍会打印
-
- dir bin 2>nul
- 屏幕上不打印命令的错误信息(stderr),输出结果(stdout)仍会打印(注:bin 目录不存在时,会输出错误信息)
-
- dir bin >nul 2>&1
- 将命令的错误信息(stderr)重定向到输出结果(stdout),然后不打印输出结果(stdout)[屏幕上错误信息(stderr)和输出结果(stdout)都不打印](注:bin 目录不存在时,会输出错误信息)
-
- dir bin 2>nul 1>&2
- 将命令的输出结果(stdout)重定向到错误信息(stderr),然后不打印错误信息(stderr)[屏幕上错误信息(stderr)和输出结果(stdout)都不打印](注:bin 目录不存在时,会输出错误信息)
>>
- 将当前命令输出以追加的方式重定向
-
- tasklist >> p2.txt
- 将 tasklist 的输出结果(stdout)以追加的方式重定向到 p2.txt 文件中(注:tasklist 的输出结果就不会打印到屏幕上了)
-
- tasklist 1>> p2.txt
- 等同于:tasklist >> p2.txt
-
- dir bin 2>> p2.txt
- 输出结果(stdout)打印在屏幕上,错误信息(stderr)以追加的方式重定向到 p2.txt 中(注:bin 目录不存在时,会输出错误信息)
-
- dir bin >> p2.txt 2>&1
- 将错误信息(stderr)重定向到输出结果(stdout),然后将输出结果(stdout)以追加的方式重定向到 p2.txt 中(注:bin 目录不存在时,会输出错误信息)
-
- dir bin 2>> p2.txt 1>&2
- 将输出结果(stdout)重定向到错误信息(stderr),然后将错误信息(stderr)以追加的方式重定向到 p2.txt 中(注:bin 目录不存在时,会输出错误信息) 注:与上条命令结果一致
<
- 从文件中获得输入信息,而不是从屏幕上,一般用于 date time label 等需要等待输入的命令
-
- date
- temp.txt 中的内容为 2005-05-01
@
- 命令修饰符 在执行命令前,不打印出该命令的内容
-
- @cd /d d:\me
- 执行该命令时,不打印出命令的内容:cd /d d:/me
,
- 在某些特殊的情况下可以用来代替空格使用
-
- dir,c:\
- 相当于:dir c:\
;
- 当命令相同的时候,可以将不同的目标用 ; 隔离开来但执行效果不变。如执行过程中发生错误则只返回错误报告但程序还是会继续执行
-
- dir c:\;d:\;e:\
- 相当于顺序执行:dir c:\ dir d:\ dir e:\
会话
会话信息
query user 查看会话
踢下线
logoff <ID号> 踢掉
会话设置
- title 正在做命令行测试 修改当前 cmd 窗口的标题栏文字为正在做命令行测试
- prompt orz: 将命令提示符修改为 orz:
-
- exit 退出当前 cmd 窗口实例
-
- exit 0 退出当前 cmd 窗口实例,并将过程退出代码设置为 0(0 表示成功,非 0 表示失败)
- exit /B 1 退出当前 bat 脚本,并将 ERRORLEVEL 系统变量设置为 1
-
- pause 暂停批处理程序,并显示出:请按任意键继续....
-
- color 设置当前 cmd 窗口背景色和前景色(前景色即为字体的颜色)
- color 恢复到缺省设置
- color 02 将背景色设为黑色,将字体设为绿色
-
- chcp 查看命令行环境字符编码(为一个全局设置)
- 936 -- GBK(一般情况下为默认编码)
- 437 -- 美国英语
- 65001 -- utf-8
- 1200 -- utf-16
- 1201 -- utf-16(Big-Endian)
- 12000 -- utf-32
- 12001 -- utf-32(Big-Endian)
永久修改 CMD 的默认字符集
[HKEY_CURRENT_USER\Console] "CodePage"=dword:0000fde9
文件和目录
目录
- cd 切换目录
- cd .. 进入父目录
- cd /d d: 进入上次d盘所在的目录(或在直接输入:d:)
- cd /d d:\ 进入d盘根目录
- cd d: 显示上次d盘所在的目录
- cd /d d:\src 进入 d:\src 目录
- cd prj\src\view 进入当前目录下的 prj\src\view 文件夹
查看
目录、文件信息
- dir 显示目录中的内容
- dir 显示当前目录中的子文件夹与文件
- dir /b 只显示当前目录中的子文件夹与文件的文件名
- dir /p 分页显示当前目录中的子文件夹与文件
- dir /ad 显示当前目录中的子文件夹
- dir /a-d 显示当前目录中的文件
- dir c:\test 显示 c:\test 目录中的内容
- dir keys.txt 显示当前目录中 keys.txt 的信息
- dir /S 递归显示当前目录中的内容
- dir key* 显示当前目录下以 key 开头的文件和文件夹的信息
- dir /AH /OS 只显示当前目录中隐藏的文件和目录,并按照文件大小从小到大排序
- dir \\[IP]\c$ 查看建立IPC连接的主机的C盘目录
-
- tree 显示目录结构
- tree d:\myfiles 显示 d:\myfiles 目录结构
-
- attrib 查看或修改文件或目录的属性 [A:存档 R:只读 S:系统 H:隐藏]
- attrib 1.txt 查看当前目录下 1.txt 的属性
- attrib -R 1.txt 去掉 1.txt 的只读属性
- attrib +H movie 隐藏 movie 文件夹
文件内容
- type 显示文本文件内容
- type c:\11.txt 显示c盘中11.txt的文本内容
- type conf.ini 显示当前目录下conf.ini的文本内容
- type c:\11.txt | more 分页显示c盘中11.txt的文本内容
-
- more 逐屏的显示文本文件内容
-
- more conf.ini 逐屏的显示当前目录下conf.ini的文本内容 [空格:下一屏 q:退出 ]
创建
- md 用于创建文件夹,不能创建文本文档或者其他
- md movie music 在当前目录中创建名为 movie 和 music 的文件夹
- md c:\aaa 在 C 盘的根目录下创建名为 aaa 的子目录;
- md c:\aaa\USER 在 aaa 子目录下再创建 USER 子目录。
-
- fsutil 可用于执行多种与FAT 和NTFS 文件系统相关的任务
- fsutil file createnew D:\test-500.t1 524288000 创建512MB的文件示例
删除
- del 删除文件 注意:目录及子目录都不会删除
- del test
- 删除当前目录下的 test 文件夹中的所有非只读文件(子目录下的文件不删除;删除前会进行确认;等价于 del test\*)
-
- del /f test
- 删除当前目录下的 test 文件夹中的所有文件(含只读文件;子目录下的文件不删除;删除前会进行确认;等价于 del /f test\*)
-
- del /f /s /q test d:\test2\*.doc
- 删除当前目录下的 test 文件夹中所有文件及 d:\test2 中所有 doc 文件(含只读文件;递归子目录下的文件;删除前不确认)
-
- del /ar *.* 删除当前目录下所有只读文件
- del /a-s *.* 删除当前目录下除系统文件以外的所有文件
查询
- find 文件中搜索字符串
- find /N /I "pid" 1.txt 在 1.txt 文件中忽略大小写查找 pid 字符串,并带行号显示查找后的结果
- find /C "exe" 1.txt 只显示在 1.txt 文件中查找到 exe 字符串的次数
- find /V "exe" 1.txt 显示未包含 1.txt 文件中未包含 exe 字符串的行
-
- findstr 文件中搜索字符串
- findstr "hello world" 1.txt 在 1.txt 文件中搜索 hello 或 world
- findstr /c:"hello world" 1.txt 在 1.txt 文件中搜索 hello world
- findstr /c:"hello world" 1.txt nul 在 1.txt 文件中搜索 hello world,并在每行结果前打印出1.txt: 注:findstr 只有在2个及以上文件中搜索字符串时才会打印出每个文件的文件名,nul 表示一个空文件
- findstr /s /i "Hello" *.* 不区分大小写,在当前目录和所有子目录中的所有文件中的 hello
- findstr "^[0-9][a-z]" 1.txt 在 1.txt 中搜索以1个数字+1个小写字母开头子串的行
- findstr /si /n encry_pwd= c:\config.ini 查询向日葵的验证码
- findstr /si /n fastcode= c:\config.ini 查询向日葵的识别码
- findstr /si /n fastcodehistroy= c:\config.ini 查询向日葵的连接历史
修改
- ren 文件或目录重命名
- ren rec.txt rec.ini 将当前目录下的 rec.txt 文件重命名为 rec.ini
- ren c:\test test_01 将 c 盘下的 test 文件夹重命名为 test_01
- copy 拷贝文件
- copy /Y key.txt c:\doc 将当前目录下的 key.txt 拷贝到 c:\doc 下(不询问,直接覆盖写)
- copy key.txt + 复制文件到自己,实际上是修改了文件日期
-
- copy key.txt c:\doc
- 将当前目录下的 key.txt 拷贝到 c:\doc 下(若doc中也存在一个 key.txt 文件,会询问是否覆盖)
-
- copy jobs c:\doc
- 将当前目录下 jobs 文件夹中文件(不递归子目录)拷贝到 c:\doc 下(若 doc 中也存在相应的文件,会询问是否覆盖)
-
- copy key.txt c:\doc\key_bak.txt
- 将当前目录下的 key.txt 拷贝到 c:\doc 下,并重命名为 key_bak.txt(若 doc 中也存在一个 key_bak.txt 文件,会询问是否覆盖)
-
- copy /Y key1.txt + key2.txt key.txt
- 将当前目录下的 key1.txt 与 key2.txt 的内容合并写入 key.txt 中(不询问,直接覆盖写)
-
- copy /B art_2.7z.* art_2.7z
- 将当前目录下的 art_2.7z. 开头的所有文件(按照名称升序排序)依次合并生成 art_2.7z
-
- copy /B art_2.7z.001+art_2.7z.002 art_2.7z
- 将当前目录下的 art_2.7z.001、art_2.7z.002 文件合并生成 art_2.7z
-
- copy test.txt \\host\c$\windows\temp\test.txt 远程拷贝
- xcopy 更强大的复制命令
- xcopy c:\bat\hai d:\hello\ /y /h /e /f /c
- 将 c:\bat\hai 中的所有内容拷贝到 d:\hello 中 注意:需要在 hello 后加上 \ 表示 hello 为一个目录,否则 xcopy 会询问 hello 是 F,还是 D
-
- xcopy c:\bat\hai d:\hello\ /d:12-29-2010
- 将 c:\bat\hai 中的2010年12月29日后更改的文件拷贝到 d:\hello 中
-
- robocopy 更强大的复制命令
- robocopy .\Plugins .\PluginsDest /MIR /xd Intermediate Binaries
- 将当前目录下 Plugins 中所有内容(排除名为 Intermediate 和 Binaries 的文件夹)保留目录结构拷贝到当前目录下的 PluginsDest 中(PluginsDest 不存在会自动创建)
-
- robocopy c:\test d:\test2 /MIR /xd Intermediate /xf UE4Editor-SGame-Win64-DebugGame.dll *.pdb
- 将c:\test中所有内容(排除名为 UE4Editor-SGame-Win64-DebugGame.dll 和 pdb 后缀的文件)保留目录结构拷贝到 d:\test2中(d:\test2 不存在会自动创建)
-
- move 移动文件
- move *.png test
- 将当前目录下的 png 图片移动到当前目录下 test 文件夹中 (若 test 中也存在同名的 png 图片,会询问是否覆盖)
-
- move /Y *.png test
- 将当前目录下的 png 图片移动到当前目录下 test 文件夹中 (不询问,直接覆盖写)
-
- move 1.png d:\test\2.png
- 将当前目录下的 1.png 移动到 d 盘 test 文件夹中,并重命名为 2.png (若 test 中也存在同名的png图片,会询问是否覆盖)
-
- move test d:\new
- 若 d 盘中存在 new 文件夹,将当前目录下的 test 文件夹移动到 d 盘 new 文件夹中;若不存在,将当前目录下的 test 文件夹移动到 d 盘,并重命名为 new
-
- replace 替换文件[即使这个文件在使用,仍然可以替换成功]
- replace d:\love.mp3 d:\mp3
- 使用 d 盘下的 love.mp3 强制替换 d 盘 mp3 目录中的 love.mp3 文件
- assoc 设置'文件扩展名'关联到的'文件类型'
- assoc 显示所有'文件扩展名'关联
- assoc .txt 显示.txt代表的'文件类型',结果显示.txt=txtfile
- assoc .doc 显示.doc代表的'文件类型',结果显示.doc=Word.Document.8
- assoc .exe 显示.exe代表的'文件类型',结果显示.exe=exefile
- assoc .txt=txtfile 恢复.txt的正确关联
-
- ftype 设置'文件类型'关联到的'执行程序和参数'
- ftype 显示所有'文件类型'关联
- ftype exefile 显示exefile类型关联的命令行,结果显示 exefile="%1" %*
- ftype txtfile=C:\Windows\notepad.exe %1 设置txtfile类型关联的命令行为:C:\Windows\notepad.exe %1
-
- 当双击一个.txt文件时,windows并不是根据.txt直接判断用notepad.exe打开
- 而是先判断.txt属于txtfile'文件类型';再调用txtfile关联的命令行:txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
-
- forfiles 递归目录执行命令
-
- forfiles /p . /m .svn /s /c "cmd /c svn up -r12005"
- 在当前目录下查找含有.svn的文件或目录(递归子目录),并对该目录执行指定版本号svn更新
-
- forfiles /p c:\myfiles /m .svn /s /c "cmd /c svn up -r12005"
- 在c:\myfiles目录下查找含有.svn的文件或目录(递归子目录),并对该目录执行指定版本号svn更新
链接
win7 下的 mklink 命令通过指定参数可以建立出不同形式的文件或目录链接,分为硬链接(hard link)、符号链接(symbolic link)和目录联接(junction)三种。
-
符号链接(symbolic link)
建立一个软链接相当于建立一个文件(或目录),这个文件(或目录)用于指向别的文件(或目录),和 win 的快捷方式有些类似。删除这个链接,对原来的文件(或目录)没有影像没有任何影响;而当你删除原文件(或目录)时,再打开链接则会提示“位置不可用”。
-
目录联接(junction)
作用基本和符号链接类似。区别在于,目录联接在建立时会自动引用原目录的绝对路径,而符号链接允许相对路径的引用。
-
硬链接(hard link)
建立一个硬链接相当于给文件建立了一个别名,例如对 1.txt 创建了名字为 2.txt 的硬链接;
若使用记事本对 1.txt 进行修改,则 2.txt 也同时被修改,若删除 1.txt,则 2.txt 依然存在,且内容与 1.txt 一样。
建立链接请注意:
- 建立文件或目录链接限于 NTFS 文件系统;符号链接(目录联接)的建立可以跨分区(如:在 d 盘可以建立 c 盘文件或目录的链接),硬链接只能建立同一分区内的文件指向
- 硬链接只能用于文件,不能用于目录;目录联接只能用于目录;符号链接则均可以;
- 硬链接不允许对空文件建立链接,符号(软链接可以。
)
- mklink 创建符号链接(win7 引入);创建的符号链接文件上会有一个类似快捷方式的箭头
- mklink /j "C:\Users" "D:\Users" 创建 D 盘 Users 目录联接到 C 盘,并命名为 Users
辅助
Certutil
可以使用该命令计算指定文件的哈希值
- CertUtil -hashfile 文件名(可包含路径) md5
-
- # 算法名可以取以下值:MD2, MD5, MD5, SHA1, SHA256, SHA384, SHA512。当该参数被省略时,使用 SHA1 算法。
网络管理
IPC$
- net use # 查看建立的连接
- net use \\IP\ipc$ " " /user:" " # 建立 IPC 空链接
-
- net use \\IP\ipc$ "[pass]" /user:"[username]" # 建立 IPC 非空链接
- net use \\192.168.1.1\ipc$ "123456" /user:"administrator"
-
- net use z: \\ip\ipc$ "pass" /user:"user" # 直接登录后映射对方 C: 到本地为 H:
- net use h: ipc$ # 登录后映射对方 C: 到本地为 H:
- net use \\IP\ipc$ /del # 删除 IPC 链接
- net use h: /del # 删除映射对方到本地的为 H: 的映射
-
- net user [username] [pass] /add # 建立用户
- net user guest /active:yes # 激活 guest 用户
- net user # 查看有哪些用户
- net user [username] # 查看帐户的属性
- net localgroup administrators # 列出本地管理员组成员
- net localgroup administrators [username] /add # 把"用户"添加到管理员中使其具有管理员权限
- net start # 查看开启了哪些服务
-
- net start [servername] # 开启服务
- net start telnet # 开启 telnet 服务
- net start schedule
-
- net stop [servername] # 停止某服务
- net time [IP] # 查看对方时间
- net time [IP] /set # 设置本地计算机时间与"目标IP"主机的时间同步,加上参数 /yes 可取消确认
- net view # 查看本地局域网内开启了哪些共享
- net view [IP] # 查看对方局域网内开启了哪些共享
- net config # 显示系统网络设置
- net logoff # 断开连接的共享
- net pause [servername] # 暂停某服务
- net send ip "xxx" # 向对方发信息
- net ver # 局域网内正在使用的网络连接类型和信息
-
- net share # 查看本地开启的共享
- net share ipc$ # 开启 ipc$ 共享
- net share db$=d:\config # 开启一个共享名为 db$,在 d:\config
- net share ipc$ /del # 删除 ipc$ 共享
- net share c$=c: # 恢复默认共享
- net share c$ /del # 删除 C: 共享
-
- net user guest 12345 # 用 guest 用户登录后用将密码改为 12345
- net password [pass] # 更改系统登录密码
查看网络信息
ipconfig
- ipconfig /all # 显示完整配置信息
- ipconfig /release # 释放指定适配器的 IPv4 地址
- ipconfig /release6 # 释放指定适配器的 IPv6 地址
- ipconfig /renew # 更新指定适配器的 IPv4 地址
- ipconfig /renew6 # 更新指定适配器的 IPv6 地址
- ipconfig /flushdns # 清除 DNS 解析程序缓存
netstat
- netstat -a # 查看开启了哪些端口,常用 netstat -an
- netstat -n # 查看端口的网络连接情况,常用 netstat -an
- netstat -v # 查看正在进行的工作
- netstat -p [protocol] # 例:netstat -p tcq/ip 查看某协议使用情况
- netstat -s # 查看正在使用的所有协议使用情况
- netstat -A ip # 对方136到139其中一个端口开了的话,就可查看对方最近登录的用户名
- netstat -bn # 查看每个程序的连接
route
- route print
- route print 192.*
- route add 0.0.0.0 mask 0.0.0.0 192.168.6.1 # 增加网关
- route delete 0.0.0.0 mask 0.0.0.0 192.168.6.1 # 删除网关
- route change 16.21.0.0 mask 255.255.0.0 16.28.0.25 # 将 16.21.0.0 段的网关改为 0.25
arp
- arp -a # 查看全部 arp 条目
- arp -d ip # 删除
nslookup
- nslookup domain [dns-server] # 查询域名A记录
- nslookup -qt=type domain [dns-server] # 查询其他记录
- # A 地址记录
- # AAAA 地址记录
- # AFSDB Andrew文件系统数据库服务器记录
- # ATMA ATM地址记录
- # CNAME 别名记录
- # HINFO 硬件配置记录,包括 CPU、操作系统信息
- # ISDN 域名对应的 ISDN 号码
- # MB 存放指定邮箱的服务器
- # MG 邮件组记录
- # MINFO 邮件组和邮箱的信息记录
- # MR 改名的邮箱记录
- # MX 邮件服务器记录
- # NS 名字服务器记录
- # PTR 反向记录
- # RP 负责人记录
- # RT 路由穿透记录
- # SRV TCP服务器信息记录
- # TXT 域名对应的文本信息
- # X25 域名对应的X.25地址记录
网络排错工具
ping
- ping ip(或域名) # 向对方主机发送默认大小为32字节的数据
- ping -l 数据包大小 ip
- ping -n # 发送数据次数 ip
- ping -t ip # 一直 ping.
- ping -t -l 65500 ip # 发送大于64K的文件并一直 ping
tracert
- tracert -d # 不将地址解析成主机名.
- tracert -h maximum_hops # 搜索目标的最大跃点数.
- tracert -j host-list # 与主机列表一起的松散源路由(仅适用于 IPv4).
- tracert -w timeout # 等待每个回复的超时时间(以毫秒为单位).
- tracert -R # 跟踪往返行程路径(仅适用于 IPv6).
- tracert -S srcaddr # 要使用的源地址(仅适用于 IPv6).
- tracert -4 # 强制使用 IPv4.
- tracert -6 # 强制使用 IPv6.
RDP
开启 rdp
- REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
- REG add HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /d 0 /t REG_DWORD /f
-
- wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting WHERE (__CLASS !="") CALL SetAllowTSConnections 1
更改终端端口为 2008(十六进制为:0x7d8)
- REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\Wds\rdpwd\Tds\tcp /v PortNumber /t REG_DWORD /d 0x7d8 /f
-
- REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber /t REG_DWORD /d 0x7D8 /f
查看 RDP 服务端口
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber /*出来的结果是 16 进制
防火墙
netsh
查看防火墙状态
- netsh firewall show state
- netsh advfirewall show allprofiles
开启防火墙
- netsh firewall set opmode enable
- netsh firewall set allprofiles state on
关闭防火墙
- netsh firewall set opmode disable
- netsh advfirewall set allprofiles state off
设置防火墙日志路径
netsh advfirewall set currentprofile logging filename "C:\Windows\firewall.log"
添加防火墙规则
netsh advfirewall firewall add rule name="Remote Desktop" dir=in action=allow protocol=tcp localport=3389 允许 3389 端口
删除防火墙规则
netsh advfirewall firewall delete rule name="rule_name"
添加端口规则
netsh firewall portopening tcp 1234 rule_name
删除端口规则
netsh firewall delete portopening tcp 1234
添加程序规则
netsh firewall add allowedprogram "C:\\nc.exe" "allow nc" enable
删除程序规则
netsh firewall delete allowedprogram "C:\\nc.exe"
添加端口转发
netsh interface portproxy add v4tov4 [listenaddress=victim_ip] listenport=victim_port connectaddress=attack_ip connectport=attack_port
删除端口转发
netsh interface portproxy delete v4tov4 [listenaddress=victim_ip] listenport=victim_port
查看端口转发
- netsh interface portproxy show all
- netsh interface portproxy show v4tov4
- netsh interface portproxy show v4tov6
- netsh interface portproxy show v6tov4
- netsh interface portproxy show v6tov6
安装 IPv6
netsh interface ipv6 install
查看无线网络信息
netsh wlan show profiles
查看指定 WIFI 密码
netsh wlan show profiles wifi_name key=clear
系统管理
系统信息
- 内容参见 信息
日志
- 内容参见 日志
系统设置
时间
- time # 显示或设置当前时间
- time /t # 显示当前时间
- time # 设置新的当前时间(格式:hh:mm:ss),直接回车则表示放弃设置
-
- date # 显示或设置当前日期
- date /t # 显示当前日期
- date # 设置新的当前日期(格式:YYYY/MM/DD),直接回车则表示放弃设置
注册表
reg 注册表相关操作
参数说明:
- # KeyName [\Machine]FullKey
- # Machine 为远程机器的机器名 - 忽略默认到当前机器。
- # 远程机器上只有 HKLM 和 HKU。
- # FullKey ROOTKEY+SubKey
- # ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
- # SubKey 所选ROOTKEY下注册表项的完整名
- # /v 所选项之下要添加的值名
- # /ve 为注册表项添加空白值名<无名称>
- # /t RegKey 数据类型
- # [ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN |
- # REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN |
- # REG_NONE | REG_EXPAND_SZ ]
- # 如果忽略,则采用 REG_SZ
- # /s 指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符;如果忽略,则将""用作分隔符
- # /d 要分配给添加的注册表 ValueName 的数据
- # /f 不提示,强行改写现有注册表项
-
- reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyApp /t REG_SZ /d "c:\tools\myapp.exe" /f
- # 强制添加一条开机启动 c:\tools\myapp.exe 程序的注册表项
-
- reg add "HKLM\SOFTWARE\ScmClient" /v AgreementConfirmed /t REG_SZ /d 1 /f
- # 解决 32 位 xp 打开 ioa 后,弹出的框关不掉问题
-
- reg add "HKCU\ControlPanel\Desktop" /v WaitToKIllAppTimeOut /t REG_SZ /d 10000 /f
- # 强制添加一条加速关闭应用程序的注册表项
-
- reg add "hkcu\software\Unity Technologies\Unity Editor 4.x" /v JdkPath_h4127442381 /t REG_SZ /f
- # 将 JdkPath_h4127442381 设置为空
-
- reg add "HKCR\*\shell\WinDbg\command" /t REG_SZ /d "\"D:\Program Files (x86)\windbg\windbg.exe\" -z \"%1\" " /f
- # 强制添加 windbg 打开 dump 文件到右键菜单的注册表项(不指明 /v,键值将写入默认值名中)
-
- reg add "HKCR\*\shell\WinHex\command" /t REG_SZ /d "\"D:\software-setup\system\winhex\winhex.exe\" \"%1\" " /f
- # 强制添加 winhex 到右键菜单的注册表项(不指明 /v,键值将写入默认值名中)
-
- reg add "hkcu\software\microsoft\windows\currentversion\internet settings" /v AutoConfigURL /t REG_SZ /d "http://txp-01.tencent.com/proxy.pac" /f
- # 为 IE 设置代理:http://txp-01.tencent.com/proxy.pac
-
- reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
- # 关闭 IE 代理服务器选项
-
- reg add "hkcu\software\Sysinternals\Process Monitor" /v EulaAccepted /t REG_DWORD /d 1 /f
- # 为 Procmon.exe 工具(Process Monitor 为其属性面板上的描述名)添加 License 同意
-
- reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v MyApp /f
- # 强制删除值名的 MyApp 的注册表项
-
- reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe" /f
- # 强制删除让任务栏里的任务管理器为灰色的注册表项
-
- reg delete HKEY_CURRENT_USER\Environment /v HTTP_proxy /f
- # 删除 http 代理
-
- reg delete HKEY_CURRENT_USER\Environment /v HTTPS_proxy /f
- # 删除 https 代理
-
- reg copy "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winminebk" /s /f
- # 强制复制 winmine 下所有的子项与值到 winminebk 中
-
- reg export "hkcu\software\microsoft\winmine" c:\regbak\winmine.reg
- # 导出 winmine 下所有的子项与值到 c:\regbak\winmine.reg 文件中
-
- reg import c:\regbak\winmine.reg
- # 导入 c:\regbak\winmine.reg 文件到注册表中
-
- reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE" /s
- # 查询 ie 的安装路径
-
- reg query HKCR\.dsw /ve
- # 查询 .dsw 默认值
-
- reg query HKEY_CURRENT_USER\Software\Tencent\QQGame\SYS /v GameDirectory
- # 查询 QQGame 安装路径
regedit
regedit -s xxxx.reg # 导入注册表项
计划任务
at
- at # 查看所有的计划任务
- at [id] # 开启已注册的某个计划任务
- at /delete # 停止所有计划任务,用参数 /yes 则不需要确认就直接停止
- at [id] /delete # 停止某个已注册的计划任务
- at [ip] time [progame/cmd] # 在某时间运行对方某程序
- at \\127.0.0.1 time C:\windows\1.bat
- at [ip] time [progame/cmd] /r # 在某时间运行对方某程序并重新启动计算机
- # /SC schedule 指定计划频率.有效计划任务: MINUTE、 HOURLY、DAILY、WEEKLY、MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.
- # /MO modifier 改进计划类型以允许更好地控制计划重复周期.有效值列于下面"修改者"部分中.
- # /D days 指定该周内运行任务的日期.有效值:MON、TUE、WED、THU、FRI、SAT、SUN和对 MONTHLY 计划的 1 - 31(某月中的日期).通配符"*"指定所有日期.
- # /TN taskname 以路径\名称形式指定对此计划任务进行唯一标识的字符串.
- # /TR taskrun 指定在这个计划时间运行的程序的路径和文件名.例如: C:\windows\system32\calc.exe
-
- schtasks /query /fo LIST /v # 以较为详细易于阅读的格式显示本机所有任务计划信息
- schtasks /delete /tn "Soda Build" /f # 强制删除 Soda Build 名称的任务计划(不进行确认)
- schtasks /run /tn "Soda Build" # 执行名为 Soda Build 的任务计划
- schtasks /end /tn "Soda Build" # 终止执行名为 Soda Build 的任务计划
-
- SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN gametime /TR c:\windows\system32\freecell
- # 创建计划任务 "gametime",在每月的第一个星期天运行"空当接龙".
-
- schtasks /create /sc minute /mo 20 /tn "Soda Build" /tr d:\check.vbs
- # 创建一个名为 Soda Build 的任务计划:该任务计划每 20 分钟执行一下 d:\check.vbs 脚本
-
- schtasks /create /tn "Soda Build" /tr D:\updateall.bat /sc daily /st 02:06 /f
- # 强制创建一个名为 Soda Build 的任务计划(不进行确认):该任务计划每天凌晨 2 点 06 分执行一下 D:\updateall.bat 脚本
-
- schtasks /change /tn "Soda Build" /tr d:\check2.vbs
- # 将名为 Soda Build 的任务计划的执行脚本修改为 d:\check2.vbs
组策略
强制更新组策略
gpupdate /force
输入法
简繁切换
ctrl+shift+f
账号管控
账号
- net user # 查看系统账户
- net user test # 查看账户 test 的属性
- net user test 1234abcd /add # 添加用户
- net localgroup administrators test /add # 将用户添加到管理组
- net user test /del # 删除用户
组
- net localgroup # 查看系统的组
- net localgroup marketGroup /add # 新建一个 marketGroup 的组
- net localgroup marketGroup test /add # 将用户 test 加入 marketGroup 组中
- net localgroup markGroup # 查看 markGroup 组内的成员
- net localgroup marketGroup test /del # 将用户 test 从 marketGroup 组中移除
- net localgroup marketGroup /del # 删除 marketGroup 组
- net localgroup "remote desktop users" test /add # 将用户 test 加入远程桌面组
- net localgroup "remote desktop users" test /del # 将用户 test 从远程桌面组删除
进程管理
进程信息
- wmic
- wmic process where Caption="buyticket.exe" get commandline,ExecutablePath,ProcessId,ThreadCount /value
- # 查看名为"buyticket.exe"所有进程命令行,exe 全路径,PID 及线程数
-
- wmic process where Caption="buyticket.exe" get ExecutablePath,HandleCount /value
- # 查看名为"buyticket.exe"所有进程的 exe 全路径及当前打开的句柄数
-
- wmic process where Caption="buyticket.exe" get ExecutablePath,VirtualSize,WorkingSetSize /value
- # 查看名为"buyticket.exe"所有进程的 exe 全路径、当前虚拟地址空间占用及物理内存工作集
-
- tasklist # 显示所有进程及其服务
-
- tasklist /svc
-
- tasklist /fi "pid eq 1234" /svc # 显示指定进程信息
- tasklist /fi "status eq running" /svc
- tasklist /fi "status eq running" /fi "username eq nt authority\system" /svc
-
- tasklist /m xxx.dll # 显示使用给定 exe/dll 名称的所有进程
-
- tasklist /s ip /u username /p password /svc # 显示远程主机的进程信息
进程处理
- taskkill # 终止指定的进程及其子进程(根据进程名称)
-
- taskkill /f /im notepad.exe /t
- taskkill /f /pid 1234 /t # 终止指定进程及其子进程(根据进程 ID)
- taskkill /f /fi "pid eq 1234" /t
-
- taskkill /s ip /u username /p password /pid 1234 /t # 终止远程主机的指定进程
- taskkill /s ip /u username /p password /fi "pid eq 1234" /t
设备管理
硬盘-数据
卷标设置
- vol # 显示当前分区的卷标
- label # 显示当前分区的卷标,同时提示输入新卷标
- label c:system # 设置 c 盘的卷标为 system
格式化
- format # 格式化磁盘
- format J: /FS:ntfs # 以 ntfs 类型格式化 J 盘 [类型有:FAT、FAT32、exFAT、NTFS 或 UDF]
- format J: /FS:fat32 /Q # 以 fat32 类型快速格式化J盘
状态检查
chkdsk /f D: # 检查磁盘 D 并显示状态报告;加参数/f表示同时会修复磁盘上的错误
磁盘映射
- subst # 磁盘映射 -- 磁盘映射信息都保存在注册表以下键值中:HKEY_CURRENT_USER\Network
- subst # 显示目前所有的映射
- subst z: \\com\software # 将 \\com\software 共享映射为本地 z 盘
- subst y: e:\src # 将 e:\src 映射为本地 y 盘
- subst z: /d # 删除 z 盘映射
显卡
重启显卡驱动
Ctrl
+ Shift
+ Win
+ B
安全设置
关闭 Denfnder
net stop windefend
域
添加域管理员账号
- net user mstlab mstlab /add /domain # 添加用户并设置密码
- net group "Domain Admins" lemon /add /domain # 将普通域用户提升为域管理员
- net user guest /active:yes # 激活 guest 用户
- net user guest mstlab # 更改 guest用户的密码
修改指定域用户的密码
dsquery user -samid username | dsmod user -pwd new_password
点击关注,共同学习!安全狗的自我修养