Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] posh создание массива значений (http://forum.oszone.net/showthread.php?t=343893)

Ageron 31-01-2020 15:00 2907774

posh создание массива значений
 
Вложений: 1
нужна помощь, в создании массива значений.

Код:

$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 2907780

Код:

$computers = Get-ADComputer -Filter 'enabled -eq "true"' -Properties Operatingsystem,OperatingSystemVersion,OperatingSystemServicePack,IPv4Address |
Select Name,Operatingsystem,OperatingSystemVersion,OperatingSystemServicePack,IPv4Address,sourceW32TM,statusServiceW32TM,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



Время: 01:55.

Время: 01:55.
© OSzone.net 2001-