none
Выгрузка локальных объектов POWERSHELL RRS feed

  • Вопрос

  • Добрый день, коллеги!

    Написал скрипт по выгрузке объектов из локальных администраторов на ПК, все выгружает, но теперь, я хочу все это выгружать в CSV, сам скрипт вот:

    cls
    $Date = ((Get-Date -format s).ToString()).Replace(":","-")
    Get-ADComputer -SearchBase "OU=Workstations,OU=NSK,DC=nsk,DC=com"  -Filter {enabled -eq "True"} -prop * | 
    ?{$_.enabled -eq "true" -and ([DateTime]::FromFileTime($_.LastLogonTimestamp) -ge (get-date).adddays(-30))}  | ForEach-Object {
    
        Write-Host "Ping $($_.name)"
        $ping = Test-Connection -ComputerName $_.name -Count 1 -Quiet -ErrorAction SilentlyContinue
        if ($ping -eq $true)
        {
            $pc = $_.Name
            Write-Host "Get admins on $($_.name)"
            $group = get-wmiobject win32_group -ComputerName $_.name -Filter "LocalAccount=True AND SID='S-1-5-32-544'"
            $query = "GroupComponent = `"Win32_Group.Domain='$($group.domain)'`,Name='$($group.name)'`""
            $list = Get-WmiObject win32_groupuser -ComputerName $_.name -Filter $query
            $admin = @($list | %{$_.PartComponent} | % {$_.substring($_.lastindexof("Domain=") + 7).replace("`",Name=`"","\")})
            [pscustomobject]@{
    	                        Name = $pc
    	                        OperatingSystem = $_.OperatingSystem
    	                        Description = $_.Description
    	                        LocalAdminOnPC = $($admin)
    	                     }
            
        }
                } | Export-Csv "C:\Scripts\1\SRV_30_Days-$Date.csv" -Append -NoTypeInformation -Encoding UTF8

    Проблема в том, что при открытии получаемого CSV в нем в LocalAdminOnPC формируется брет вида "System.Object[]".

    Может кто помочь советом, как это исправить?

    Спасибо за любой ответ.

Ответы

  • итого у вас есть массив ветвленных обьектов (один включает другой в качестве параметра), и такая информация не может быть представлена в плоской форме

    выходов 3:

    - через select развернуть сложную структуру в плоскую

    - psobject сделать строкой (странное решение но почесу нет)

    - использовать xml как формат хранения вместо csv


    The opinion expressed by me is not an official position of Microsoft

    • Предложено в качестве ответа Vector BCOModerator 17 июня 2020 г. 4:56
    • Помечено в качестве ответа Vector BCOModerator 22 июня 2020 г. 14:17
    Модератор

Все ответы

  • покажите как выглядит вывод перед тем как вы делаете експорт

    The opinion expressed by me is not an official position of Microsoft

    Модератор
  • покажите как выглядит вывод перед тем как вы делаете експорт

    The opinion expressed by me is not an official position of Microsoft

    
  • итого у вас есть массив ветвленных обьектов (один включает другой в качестве параметра), и такая информация не может быть представлена в плоской форме

    выходов 3:

    - через select развернуть сложную структуру в плоскую

    - psobject сделать строкой (странное решение но почесу нет)

    - использовать xml как формат хранения вместо csv


    The opinion expressed by me is not an official position of Microsoft

    • Предложено в качестве ответа Vector BCOModerator 17 июня 2020 г. 4:56
    • Помечено в качестве ответа Vector BCOModerator 22 июня 2020 г. 14:17
    Модератор
  • итого у вас есть массив ветвленных обьектов (один включает другой в качестве параметра), и такая информация не может быть представлена в плоской форме

    выходов 3:

    - через select развернуть сложную структуру в плоскую

    - psobject сделать строкой (странное решение но почесу нет)

    - использовать xml как формат хранения вместо csv


    The opinion expressed by me is not an official position of Microsoft

    Весь PSobject или только отдельный "проблемный" элемент?
  • итого у вас есть массив ветвленных обьектов (один включает другой в качестве параметра), и такая информация не может быть представлена в плоской форме

    выходов 3:

    - через select развернуть сложную структуру в плоскую

    - psobject сделать строкой (странное решение но почесу нет)

    - использовать xml как формат хранения вместо csv


    The opinion expressed by me is not an official position of Microsoft

    Весь PSobject или только отдельный "проблемный" элемент?

    вы руками создаете pscustomeobject в котором у вас есть $admin и вот если его конвертнете в строку то експорт csv должен заработать


    The opinion expressed by me is not an official position of Microsoft

    Модератор