windo总结2 批处理编程 域环境

bat的编程规范

(1) @echo 关闭DOS窗口信息  echo  显示窗口
(2)pause  结束暂停的功能  pause >nul   就没有 请按任意键继续的信息了
(3) bat 命令 忽略大小写
(4)cmd中粘贴和复制,在cmd中右键点击标记,取要复制的内容,取完后,右键一下,表示复制完成,粘贴到其他地方即可   鼠标点完复制后,到cmd中,右键选择粘贴  
(5) 帮忙命令 查看当前命令的使用格式 /?
(6) 设置dos 窗口的颜色  color OE 
(7) dos窗口的title 的名称修改 title "123"

批处理的特殊字符

(1)特殊字符
 && 前一条命令执行正确的时候,才执行下一条命令 &&
 || 前一条命令执行错误或者正确的时候,才执行下一条命令 ||
 >   清空追加内容
 >>  追加到文件最后一行
 |   管道
 rem 注释  rem  user
 cls  清屏
 ^  换行符

(2)文件系统

 新建文件 echo > a.txt 
 删 del a.txt
  参数: /s 递归删除
        /q  静默删除 
 del /s /q test\1.txt
 
 重命名 剪贴 命令
 重命名 move  test\1.txt  test\2.txt
 剪贴   move  test1\1.txt  test\2.txt
查看文件内容 type test1\1.txt
清空文件内容  > test\1.txt
追加文件内容  echo “123” >>test\1.txt


  文件查找

   查找当前目录下以 TXT结尾的文件,遍历要查找的目录下所有的数据,通过管道给到 find 已一定的条件作为筛选就可以找出来
   dir  |find ".txt"
   tree 查看目录的结构,可以查看到递归目录下的内容
   dir 查看当前目录下文件和目录

(3)目录的操作
   增
      目录的创建 可以递归创建目录  mkdir a
   删
     rmdir 删除目录  递归删除/s    安静模式 /q
   改
   目录名的重命名 ren C:\bbb ccc


   查
dir 查看目录  不显示隐藏目录和文件
dir  /A  查看隐藏文件
dir  /l 以小写的形式展示出来 
切换目录
cd  ..  切换到上级目录
切换不同的盘符 输入 D: 即可 

复制目录
#robocopy  数据同步工具
  语法格式
    robocopy “源目录” “目标目录”  文件名(可以为空,可以使用通配符)   参数
    默认参数 复制
    /S  复制所有文件,不包括空目录
    /E  复制所有文件,包括空目录

    镜像克隆
    /MIR  

    移动
    /MOV  移动文件 (删除源文件)
    /MOVE 移动文件和目录 (删除源目录和文件)
                      加系统环境变量目录       * 代表所有文件      目标目录没有的需要创建目录,也可以直接复制源目录 到目录目录下。
robocopy  "源目录"   "%HOMEPATH%\Desktop"  *  
robocopy  "源目录"   "目标目录"  *  /E   复制所有文件,包括空目录

用户和用户组

用户查看 net user test
用户添加   net user test /add  用户添加,并设置密码 net user test 123456 /add
用户添加并设置管理员权限  net localgroup administrators test /add
用户删除 net user test /delete
查看用户组 net localgroup 
删除用户组内的用户  net localgroup users test /delete
添加用户到用户组内 net localgroup administrators test /add

系统进程命令

netstat 
 参数
  -a 显示所有监听的信息
  -t 显示所有tcp协议的端口 -u 显示所有tcp协议的端口
  -n 显示数字形式的IP,不转换成域名
  查找当前已连接的网络连接netstat -an |find  "ESTABLISHED"


start命令
  参数 
   /B  不启动新的窗口


调用其他脚本
call 加 目录 文件名

tasklist命令查看进程列表
  参数
    可以本地也可以远程 tasklist  /S  ip 地址 /u 
    
    tasklist  /FI  使用筛选器 以什么类型 加上判断条件
     IMAGENAME 镜像名的筛选器
     PID 进程号的筛选器

    要找到 qq的进程,以镜像名加上通配符
      tasklist /fi "IMAGENAME eq qq*"

taskkill 命令 关闭进程的命令  

	/T 终止该进程及由它启动的子进程
	/F 强制终止进程
	/PID  以pid号确认的进程的方式
	/IM 以进程名的方式表示 可以使用 * 作为匹配符

	关闭PID号 taskkill /pid  6248
	关闭进程名 taskkill /im  WeChat.exe

	示例 删除进程中有qq的进程名
	taskkill /fi "imagename eq qq*" /f /t


关机命令 
    立即关机
     shutdown  /s     /p 忽视超时和警告的
     shutdown  /s /t 1  立即关机 ,时间1秒
     shutdown  /l 注销系统  
     shutdown /r  重启
     shutdown /9 重启后,自动启动当前系统的进程

传参

%变量 在脚本内部表示 ,参数的传递 使用空格的形式间隔
   参数的传递 在脚本的后面 传 入 第一个参数 0也就是默认参数, 1 是第二个参数

时间

date
      date 命令 是修改日期的命令
      date /T 是显示当前的系统日期
time
      time 修改当前时间的命令
      time /T 显示当前系统的时间

环境变量

  环境变量 查看set
  环境变量的使用 %%

网络命令

###ping
      指定次数 -n
      自定义数据包大小 -l
      持续ping -t

###telnet
      telnet 192.168.1.1 22 测试端口
      测试端口 特性

###tracert
      追踪路由的命令

###ipconfig
      查看ip信息的命令
      ipconfig /all 获取更加详细的内容
apr19
      IP地址 对应mac地址的

条件语句

##条件语句
       一行代码 转换成多行代码
       if exist c:\test\a.txt (echo ok
      ) else (
      echo no )  

##变量的设置
      set  v=hello

if else条件
  判断 文件是否存在 exist 文件目录+ 文件
 
 
 for
遍历目录
  for  /d %%a in (*) 
 #交互操作
      goto 语法 跳转到对应的行
  
set  /P 变量名= 空   命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的 promptString。promptString 可以是空的。
#暂停 批处理
   ping 127.0.0.1 -n 5 >nul
   
   -t  持续

解决远程文件上已管理员权限执行脚本的方法

lsrunase 
/user:administrator 
/password:xxxx /domain:域名 
/command:"robocopy '123.bat' 'C:\' *" 
/runpath:%homepath%\desktop


user 为运行的账号
password 为密码加密后的字串
domain 为机器名或域名,也可留空代表本机
command 为要运行的程序名,如果携带参数需要在命令的首尾加引号
runpath 为程序启动的路径

同域升级

DC升级( 包含系统版本升级 域级别升级)
2008以后的版本 不需要手动升级 域级别 和 林的级别,会自动同步

0 、环境情况

查看计算机域的角色: net accounts 
组策略 在升级dc的中,建议重新设置,因为dc的系统版本不同,策略有的不生效

正式环境下:
DC dns 首选自己 备选对方
主域 DC01   备域 DC02   升级域 DC03

1、新域控 切换 成备域

  降级操作
1、备域:关机一段时间, 确定域环境正常
2、备域操作:站点和服务,找到server ntds属性, 常规 全局编录 取消,确保备域不是GC,修改本机DNS首选指向主域 ,调整DHCP的dns 只指向主域 ,
3、在domain controlers 查看是否已变成 DC状态
4、备域操作: 降级备域,退域关机。


1、升级域 DC03 入域,计算机名使用DC02, 进现有域  ,dns 首选自己 备选主域 ,开启GC功能 ,开启dns 传送到所有计算机
2、调整DHCP的dns 分发把升级域DC02加入 (现在的DC02 已经是升级成备域了。) 
3、在domain controlers 查看是否已变成 GC状态

2、备域控切换主域

1、查看 DC02 的dns记录是否同步。
2、备份DC01 的组策略
3、在dc02 上 ntdsutil  迁移角色主机
4、查看计算机域的角色: net accounts  是否是主域
5、更新DNS分发客户端首选为 dc02的IP,
6、等待一段时间,确认域ok,   

3、备域退域,加新的备域

1、关机dc01   确定域环境正常
2、主域操作:站点和服务,找到server ntds属性, 常规 全局编录 取消,确保备域不是GC,修改本机DNS首选指向DC02主域 ,调整DHCP的dns 只指向DC02主域 ,
3、主域操作: 降级备域,退域关机。

添加备域机器
4、在加一台新的域  计算机名使用DC01, 进现有域  ,dns 首选自己 备选主域 ,开启GC功能 ,开启dns 传送到所有计算机,使之成为备域即可。

https://www.cnblogs.com/haochuang/p/8074802.html

posted @ 2021-10-25 23:03  mmszxc  阅读(276)  评论(0)    收藏  举报