使用 PowerShell 在多台服务器上运行病毒扫描

使用 PowerShell 在多台服务器上运行病毒扫描

我正在尝试对环境中的一系列服务器运行病毒扫描。有数百台机器,因此我们希望一次对大约 10 台机器运行扫描(使用我们已经拥有的命令行提示符)。我们对 PowerShell 完全陌生,因此任何帮助都将不胜感激。我们对需要使用哪些命令有一个大致的了解——以下是我们认为目前可能的工作方式:

$server = Get-Content "serverlist.txt"
$server | % {

$VirusScan = { Scan32.exe }

Invoke-Command -ScriptBlock { $VirusScan } -computerName $server -ThrottleLimit 10 -Authentication domain/admin 


}

有人对我们如何安排这件事有什么建议吗?

答案1

为了直接回答您的问题(不了解 McAfee 及其管理工具,因此不了解可能有更好的方法来解决您的情况),请阅读帮助Invoke-Command手册的以下部分:

-AsJob

在远程计算机上以后台作业的形式运行该命令。使用此参数可运行需要大量时间才能完成的命令。

使用 AsJob 时,该命令将返回一个代表作业的对象,然后显示命令提示符。作业完成时,您可以继续在会话中工作。要管理作业,请使用 Job cmdlet。要获取作业结果,请使用接收工作执行以下命令:

附加-AsJob到您的Invoke-Command命令后,将为每个远程主机创建一个作业。一旦创建了作业,它将转到下一个作业,而无需等待扫描完成。这应该消除了使用-ThrottleLimitalso 的需要。

参考:

答案2

您尝试使用的工具不对。McAfee ePolicy Orchestrator (ePO) 可以安排扫描、收集结果、强制按需扫描,以及执行各种其他有用的操作,例如保存更新存储库的副本。

相关内容