Powershell - нужна помощь в экспорте IP-адреса из тестового соединения в CSV - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть скрипт для проверки активной директории на windows 7 компьютеров, проверки связи с ними и выдачи IP-адреса.

Функция export-csv записывает правильные поля и данные, кроме IP-адреса. IP-адрес отображается как «Microsoft.ActiveDirectory.Management.ADPropertyValueCollection»

Копия скрипта

Function Get-Win7 {
        $Win7list = get-adcomputer -filter {(operatingsystem -like "Windows 7 Professional") -and (enabled -eq "True")} -properties operatingsystem, lastlogondate 
        foreach ($pc in $Win7list){
            $pingtest = test-connection $pc.name -erroraction silentlycontinue -errorvariable pingfail
            if (get-variable -name pingfail -erroraction silentlycontinue) {
                if ($pingfail.exception -match "failed"){
                 $IP3 = "No IP"
                 $pingfall = $null
                }       
            }
            $pc.IP = New-Object -TypeName PSCustomObject -Property @{IPAddress = $pingtest.IPV4Address.ToString | select-object -first 1}
            $PC |select-object name,operatingsystem, lastlogondate, IP |sort-object lastlogondate | export-csv -path c:\users\{user}\desktop\Win7-GSN.csv -notypeinfo -append
        }
}

Любая помощь приветствуется.

1 Ответ

1 голос
/ 06 февраля 2020

Вы можете использовать вычисляемое свойство в Select-Object, что позволяет добавить пользовательское свойство и присвоить ему пользовательское значение. Здесь мы можем добавить пользовательское свойство IP и присвоить ему IPV4Address.

$PC | Select-Object name,operatingsystem, lastlogondate, @{n='IP';e={$pingtest[0].IPV4Address}}

В результате вы можете полностью удалить строку $pc.IP = ....

...