Войти

Показать полную графическую версию : [решено] posh создание массива значений


Ageron
31-01-2020, 15:00
нужна помощь, в создании массива значений.


$obj = New-Object –TypeName PSObject

$Computers = Get-ADComputer -Filter 'enabled -eq "true"' -Properties Name, Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address | Select-Object -Property Name, Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address

Foreach ($Computer in $Computers)
{
if (Test-Connection -ComputerName $Computer.Name -Count 1 -Quiet)
{
$sourceW32TM = w32tm /query /computer:$Computer.Name /source
$statusServiceW32TM = (Get-Service -Name W32Time -ComputerName $Computer.Name).Status
$precisionW32TM = (ConvertFrom-Csv -In ((w32tm /query /computer:$Computer.Name /status) -replace ':', ',') -H Status,Value)[2].value

$obj | Add-Member -MemberType NoteProperty -Name Name -Value $Computer.Name -pass |
Add-Member -MemberType NoteProperty -Name Operatingsystem -Value $Computer.Operatingsystem -pass |
Add-Member -MemberType NoteProperty -Name OperatingSystemVersion -Value $Computer.OperatingSystemVersion -pass |
Add-Member -MemberType NoteProperty -Name OperatingSystemServicePack -Value $Computer.OperatingSystemServicePack -pass |
Add-Member -MemberType NoteProperty -Name IPv4Address -Value $Computer.IPv4Address -pass |
Add-Member -MemberType NoteProperty -Name TestConnection -Value "true" -pass |
Add-Member -MemberType NoteProperty -Name sourceW32TM -Value $sourceW32TM -pass |
Add-Member -MemberType NoteProperty -Name statusServiceW32TM -Value $statusServiceW32TM -pass |
Add-Member -MemberType NoteProperty -Name precisionW32TM -Value $precisionW32TM
}
else {
$obj | Add-Member -MemberType NoteProperty -Name Name -Value $Computer.Name -pass |
Add-Member -MemberType NoteProperty -Name Operatingsystem -Value $Computer.Operatingsystem -pass |
Add-Member -MemberType NoteProperty -Name OperatingSystemVersion -Value $Computer.OperatingSystemVersion -pass |
Add-Member -MemberType NoteProperty -Name OperatingSystemServicePack -Value $Computer.OperatingSystemServicePack -pass |
Add-Member -MemberType NoteProperty -Name IPv4Address -Value $Computer.IPv4Address -pass |
Add-Member -MemberType NoteProperty -Name TestConnection -Value "false"
}
}
Write-Output $obj



должна получится таблица как во вложении.
или ссылку на код как это сделать.

DJ Mogarych
31-01-2020, 16:11
$computers = Get-ADComputer -Filter 'enabled -eq "true"' -Properties Operatingsystem,OperatingSystemVersion,OperatingSystemServicePack,IPv4Address |
Select Name,Operatingsystem,OperatingSystemVersion,OperatingSystemServicePack,IPv4Address,sourceW32TM,statu sServiceW32TM,precisionW32TM

$computers |% {
if (Test-Connection $_.name -Count 1 -Quiet) {
$w32tm = w32tm /query /computer:"$($_.Name)" /status
$_.sourceW32TM = $w32tm[-3].Trim() -replace "^.*\s"
$_.statusServiceW32TM = (Get-Service -Name W32Time -ComputerName "$($_.Name)").Status
$_.precisionW32TM = $w32tm[2] -replace "^.*\:\s" -replace "\s\(.*$"
}
}

$computers




© OSzone.net 2001-2012