Ola pessoal,
Recentemente tive a necessidade de verificar qual Antivirus estava instalado em um parque de maquinas remoto sem ferramenta de inventario, então, resolvi fazer um script em powershell para fazer isso por mim.
Em resumo, acabei criando uma função, que aceita pipeline, por nome ou propriedade do objeto, então você pode buscar as máquinas direto do AD e passar para a função buscar. Ela utiliza RPC, na próxima versão vou mudar para o Windows Remote Management System.
Espero que seja util a todos!
function Get-AntiVirusProduct {
[CmdletBinding()]
param (
[parameter(ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[Alias('Name')]
[string[]]$ComputerName=$env:COMPUTERNAME )
BEGIN {}
PROCESS {
try {
$everything_ok = $true
$query = Get-WmiObject -Class Win32_ComputerSystem -ComputerName $ComputerName
} catch {
$everything_ok = $false
Write-Host -Object $ComputerName -ForegroundColor Red
}
if ($everything_ok -eq $true) {
$AntiVirusProduct = Get-WmiObject -Namespace rootSecurityCenter2 -Class AntiVirusProduct -ComputerName $ComputerName
switch ($AntiVirusProduct.productState) {
"262144" {
$defstatus = "Up to date"
$rtstatus = "Disabled"
}
"262160" {
$defstatus = "Out of date"
$rtstatus = "Disabled"
}
"266240" {
$defstatus = "Up to date"
$rtstatus = "Enabled"
}
"266256" {
$defstatus = "Out of date"
$rtstatus = "Enabled"
}
"393216" {
$defstatus = "Up to date"
$rtstatus = "Disabled"
}
"393232" {
$defstatus = "Out of date"
$rtstatus = "Disabled"
}
"393488" {
$defstatus = "Out of date"
$rtstatus = "Disabled"
}
"397312" {
$defstatus = "Up to date"
$rtstatus = "Enabled"
}
"397328" {
$defstatus = "Out of date"
$rtstatus = "Enabled"
}
"397584" {
$defstatus = "Out of date"
$rtstatus = "Enabled"
}
default {
$defstatus = "Unknown"
$rtstatus = "Unknown"
}
}
$ht = @{}
$ht.Computername = $computername
$ht.Name = $AntiVirusProduct.displayName
$ht.ProductExecutable = $AntiVirusProduct.pathToSignedProductExe
$ht.'Definition Status' = $defstatus
$ht.'Real-time Protection Status' = $rtstatus
New-Object -TypeName PSObject -Property $ht
}
}
END {}
}
Dúvidas? Sugestões? Comente!
Até a Próxima!
2 Comments
up
Show.