当前位置: 首页 > news >正文

【运维管理】如何像管理linux一样,批量管理windows主机

很多小伙伴在维护的时候也会难免遇见批量的windows操作,那么一定有人就会问是否有方法可以用命令来批量操作windows主机,其实非常简单,windows早就为我们提供了一个内置的批量管理工具,那就是这个强大的POWERSHELL,今天我就给大家介绍一下:

使用 PowerShell 批量管理多台主机是一种高效的方法,尤其是在需要执行相同任务或配置多个系统时。以下是一些常见的任务和相应的 PowerShell 脚本示例,可以帮助你批量管理主机。

1. 远程执行命令

要远程执行命令,你需要启用 PowerShell 远程管理和配置目标主机。以下是步骤:

启用 PowerShell 远程管理
  1. 在目标主机上启用 PowerShell 远程管理

    Enable-PSRemoting -Force
  2. 配置防火墙规则

    Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP" -Enabled True
  3. 确保 WinRM 服务正在运行

    Set-Service -Name WinRM -StartupType Automatic
    Start-Service WinRM
远程执行命令

假设你有一份包含目标主机 IP 地址或主机名的文本文件 hosts.txt,你可以使用以下脚本来批量执行命令:

$computers = Get-Content -Path "C:\path\to\hosts.txt"
$command = { Get-Process }Invoke-Command -ComputerName $computers -ScriptBlock $command

2. 批量安装软件

假设你要在多台主机上安装某个软件包,可以使用以下脚本:

$computers = Get-Content -Path "C:\path\to\hosts.txt"
$installerPath = "\\server\share\installer.msi"Invoke-Command -ComputerName $computers -ScriptBlock {param($installerPath)Start-Process msiexec.exe -ArgumentList "/i $installerPath /quiet" -Wait
} -ArgumentList $installerPath

3. 批量配置注册表

假设你需要在多台主机上修改注册表项,可以使用以下脚本:

$computers = Get-Content -Path "C:\path\to\hosts.txt"
$keyPath = "HKLM:\Software\MyKey"
$valueName = "MyValue"
$valueData = "MyData"Invoke-Command -ComputerName $computers -ScriptBlock {param($keyPath, $valueName, $valueData)if (-not (Test-Path $keyPath)) {New-Item -Path $keyPath -Force}Set-ItemProperty -Path $keyPath -Name $valueName -Value $valueData
} -ArgumentList $keyPath, $valueName, $valueData

4. 批量更新组策略

假设你需要在多台主机上更新组策略,可以使用以下脚本:

$computers = Get-Content -Path "C:\path\to\hosts.txt"Invoke-Command -ComputerName $computers -ScriptBlock {gpupdate /force
}

5. 批量收集日志

假设你需要从多台主机上收集事件日志,可以使用以下脚本:

$computers = Get-Content -Path "C:\path\to\hosts.txt"
$logPath = "C:\path\to\logs\"Invoke-Command -ComputerName $computers -ScriptBlock {param($logPath)$computerName = $env:COMPUTERNAMEGet-EventLog -LogName System -Newest 100 | Export-Csv -Path "$logPath\$computerName-SystemLog.csv" -NoTypeInformation
} -ArgumentList $logPath

6. 批量创建用户

假设你需要在多台主机上创建相同的用户,可以使用以下脚本:

$computers = Get-Content -Path "C:\path\to\hosts.txt"
$username = "newuser"
$password = ConvertTo-SecureString -String "P@ssw0rd" -AsPlainText -ForceInvoke-Command -ComputerName $computers -ScriptBlock {param($username, $password)New-LocalUser -Name $username -Password $password -FullName "New User" -Description "New User Account"
} -ArgumentList $username, $password

注意事项

  1. 权限:确保你有足够的权限在目标主机上执行这些操作。
  2. 网络:确保目标主机在网络中可达,并且防火墙规则允许远程管理。
  3. 日志:在执行批量操作时,建议记录日志以便于后续审计和故障排除。

以上就是为大家举得一些基本的小例子,通过这些脚本和方法,你可以高效地批量管理多台主机。希望这些示例对你有所帮助!


http://www.mrgr.cn/news/63459.html

相关文章:

  • vue3+vant实现视频播放(含首次禁止进度条拖拽,视频看完后恢复,保存播放视频进度,刷新及下次进入继续播放,判断视频有无全部看完等)
  • 计算机毕业设计——ssm基于JAVA的求职招聘网站的设计与实现演示录像 2021
  • vue3父子组件传值,子组件暴漏方法
  • Vue3.js - 计算属性监视属性
  • 前端注释都应该怎么写?
  • TP6 topthink/think-queue
  • 【Python3】【力扣题】409. 最长回文串
  • 小程序与服务器通信webSocket和UDPSocket
  • 【前端】强制刷新、清空缓存
  • React中常用的hook函数(二)——useReducer和useContext
  • C++11之新特性 --- function包装器与lambda表达式
  • AI直播带货场景切换模块的搭建!
  • 第14课 异常处理
  • 沙盒正在源代码防泄漏行业盛行
  • 【MySQL系列】理解 `utf8mb4` 和 `utf8mb4_unicode_ci`
  • ABAP OOALV
  • 如何打造美颜功能的视频平台?美颜SDK的开发与应用详解
  • 软件测试·用例设计都有哪些设计方法?这些设计方法适用于什么场景?
  • openGauss在银河麒麟V10 ARM平台编译安装(一)
  • 关于三色标记算法的理解
  • Git 子模块初始化和管理
  • 【Python游戏开发】猜数字游戏
  • Anolis(龙蜥)系统介绍
  • Linux中部署PostgreSQL保姆级教程
  • 二叉树算法题
  • 数据泄露后的安全重构:文件安全再思考