rendered paste bodyfunction get-computers
{
$strCategory = "computer"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = ("(objectCategory=$strCategory)")
$colProplist = "name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
{
$objComputer = $objResult.Properties;
if($objComputer.name -notlike 0){$objComputer.name}
}
}
function log([string]$message,[string]$file)
{
$LOGFILE = [System.IO.File]::AppendText($file)
$LOGFILE.WriteLine($message)
[System.Console]::WriteLine($message)
$LOGFILE.Close()
}
function is_up([string]$hostname)
{
if( ((Get-WmiObject -Class Win32_PingStatus -Filter "Address='$hostname'" -ComputerName localhost|Select-Object -Property StatusCode).StatusCode) -eq 0){return $TRUE} else{return $FALSE}
}
function has_avira([string]$hostname)
{
$avira=$FALSE
foreach($app in d:\scripts\get-software.ps1 -srv $hostname)
{
if($app -like "Antivir*"){$avira=$TRUE}
}
return $avira
}
function wmi_get_property([string]$hostname,[string]$class,[string]$prop)
{
return (Get-WmiObject -Class $class -ComputerName $hostname|Select-Object -Property $prop).$prop
}
function fill_compinfo([object]$compinfo,[string]$hostname)
{
$compinfo.HostName = $hostname
$compinfo.IsUp = is_up -hostname $hostname
if($compinfo.IsUp -eq $FALSE){return $compinfo}
$compinfo.Avira = has_avira -hostname $hostname
#$compinfo.InstallTime = wmi_get_property -class Win32_ComputerSystem -hostname $hostname -prop InstallDate
$compinfo.Manufacturer = wmi_get_property -class Win32_ComputerSystem -hostname $hostname -prop Manufacturer
$compinfo.Model = wmi_get_property -class Win32_ComputerSystem -hostname $hostname -prop Model
$compinfo.NumProcs = wmi_get_property -class Win32_ComputerSystem -hostname $hostname -prop NumberOfProcessors
$compinfo.ProcName = (Get-WmiObject -class Win32_Processor -Computername $hostname |Select-Object -Property Name -Last 1).Name
$compinfo.OsVersion = wmi_get_property -class Win32_OperatingSystem -hostname $hostname -prop Version
$compinfo.ServicePack = wmi_get_property -class Win32_OperatingSystem -hostname $hostname -prop ServicePackMajorVersion
$compinfo.SerialNumber = wmi_get_property -class Win32_Bios -hostname $hostname -prop SerialNumber
return $compinfo
}
function get_computerinfo()
{
$utils_asm = [System.Reflection.Assembly]::LoadFrom("d:\sCRIPTS\Utils.dll")
$t_compinf = $utils_asm.GetType("ComputerInfo")
$list = d:\sCRIPTS\New-GenericObject.PS1 System.Collections.ObjectModel.Collection ComputerInfo
foreach($computer in get-computers)
{
Write-Host "Processing $computer"
$new_compinfo = [System.Activator]::CreateInstance($t_compinf)
$filled_compinfo = fill_compinfo -compinfo $new_compinfo -hostname $computer
$list.Add($filled_compinfo)
}
return $list
}