AF
# Список компов
$computerNameList = Get-ADComputer -Filter '(samAccountName -like "RND*")' -Properties @('DNSHostName') |
ForEach-Object { return $_.DNSHostName } |
Sort-Object -Descending
# Обработка компов
$count_max = $computerNameList.Count
$count_cur = 0
$resultList = @()
ForEach ($computerName in $computerNameList)
{
$count_cur++
Write-Host "$($count_cur) of $($count_max) : $($computerName)"
$computerStatus = '<Unknown>'
if ( -not (Test-Connection -ComputerName $computerName -Count 2 -Quiet) )
{
$computerStatus = 'Unavailable'
}
else
{
try
{
$products = $null
$products = @( Get-WmiObject -ComputerName $computerName -Class 'Win32_Product' -Filter "NAME LIKE 'ESET Management Agent%'" -ErrorAction Stop )
if ($products.Count -ne 0)
{
$computerStatus = 'Installed'
}
else
{
$computerStatus = 'Not_installed'
}
}
catch
{
$computerStatus = 'Error_connecting'
}
}
$resultObject = $null
$resultObject = New-Object -TypeName 'PSObject' -Property @{
'ComputerName' = $computerName
'Status' = $computerStatus
}
$resultList += @($resultObject)
}
# Выгрузка результатов
$resultList |
Where-Object { $_.Status -eq 'Not_installed' } |
Export-Csv -LiteralPath 'C:\2\result.csv' -NoTypeInformation -Delimiter ([System.Char]0x09) -Encoding UTF32

