admin管理员组文章数量:1631699
基础材料
POWERSHELL 2.0以上 Windows2008 Windows2012 Windows2016 Windows10 关闭防火墙
总体说明
Windows server的批量操作与linux系统的一些批量管理软件类似,使用一台Window主机作为管理机(最好是高版本管理低版本),通过建立互信的方式,由管理机统一发送命令到远程主机执行。其中不同的一点是Windows需要建立的是双向互信,而linux中建立单向互信即可。本次只使用windows自带powershell进行处理,后续有额外需要也可以使用ansible进行纳管处理。
Windows主机批量操作
客户端准备工作
1、所有被管理主机创建到管理端互信,客户端Powershell中运行命令:
winrm quickconfig
根据提示输入y,回车
set-item wsman:\localhost\client\trustedhosts -value (管理端ip地址)
回车
管理端准备工作:
1、管理端主机建立到所有主机的信任关系,管理端Powershell中运行命令:
set-item wsman:\localhost\client\trustedhosts -value *
根据输出提示,回车(添加到所有主机的信任)
set-executionpolicy remotesigned
根据输出提示,回车(打开管理端脚本执行策略)
2、安装powershell ISE集中环境
点击服务器管理器,点击功能,点击添加功能,选择powershell ISE(会提示安装framework3.5.1),选择继续
3、准备所有客户端IP列表以文本保存,一行一个IP,如test.txt:
192.168.0.20
192.168.0.21
4、创建批量命令脚本,保存后缀为test.sp1,脚本中IP数量-1根据实际客户端情况替换为相应数值,该值指定了循环操作的总次数,其余操作命令根据实际情况替换-scriptblock {}中的内容即可,以下为例的三个命令分别是为每台客户端添加用户test123、将test123加入管理员组,修改administrator密码:
for($i=0;$i -le IP数量-1;$i++)
{
echo (get-content c:\test.txt)[$i]
invoke-command -computername (get-content c:\test.txt)[$i] -scriptblock {net user test123 “test@123” /add}
invoke-command -computername (get-content c:\test.txt)[$i] -scriptblock {net localgroup administrators test123 /add}
invoke-command -computername (get-content c:\test.txt)[$i] -scriptblock {net user administrator “123456”}
}
5、打开运行命令窗口,输入powershell_ise.exe,回车,弹出界面中将批量命令脚本拖入框中,选中所有行,点击执行,观察结果即可
关于循环命令执行的说明:
如果只是单纯的完成批量作业,并不一定需要使用for循环然后再将各个ip地址分别代入循环中作为参数执行,可以直接使用命令invoke-command -computername (get-content c:\test.txt) -scriptblock {}即可。但是这样如果其中一个主机执行不成功,不方便排查。在for循环中每次打印当前执行的IP,一旦发生异常可以快速定位主机。
版权声明:本文标题:Windows主机间批量操作的基本配置 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729099434a1186490.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论