Powershell Replace Column data новым выводом команды - PullRequest
0 голосов
/ 06 июня 2018

Я думаю, что у меня есть базовый вопрос о PowerShell, который большинство из вас, ребята, знают anwser ...

Поэтому, когда я экспортирую список из, скажем, моего AD, это список CSV со следующими заголовками:

CsDNSHostName, WindowsVersion, Any (В этом случае что-то может измениться из-за действий пользователя)

Итак, теперь у меня есть CSV, который я экспортировал, и я хочу сохранить этот CSV-файл в актуальном состоянии.,В моей среде заголовок «ЛЮБОЙ» может часто меняться, а также могут появляться новые компьютеры в списке, и старые исчезают ...

Так что теперь мне нужен способ обновить мой csv без необходимости создавать несколькоCSV-файлы, также я не хочу дублировать записи внутри CSV, так что это.

Вот код, который я думаю, может быть использован, но я уверен, что я не прав, потому что мои знания слишком низки, чтобы правильно запустить это, получение данныхлегко, но делает его обновляемым, а не ...

#Runs once and afterwards I use the csv that was created as Base for all other operations
Get-ADComputer -Filter * | export-csv "c:\mycsv.csv"

$impc = import-csv "c:\mycsv.csv"

$impc | Select CsName,@{Name="WindowsVersion";Expression={

       $data = invoke-command -computername $_.ComputerName -scriptblock {get-computerinfo}
       $data.WindowsVersion

 }},@{Name="ANY";Expression={

       $data = invoke-command -computername $_.ComputerName -scriptblock {get-computerinfo}
       $data.ANY

 }} | Export-CSV "C:\mycsv.csv"

1 Ответ

0 голосов
/ 06 июня 2018

Чтобы несколько раз не выполнить команду Invoke-Command с Get-ComputerInfo
, я бы попробовал что-то вроде этого:

$impc = Get-ADComputer -Filter * | ForEach {
    $data = invoke-command -computername $_.ComputerName -scriptblock {get-computerinfo}
    [PsCustomObject]@{
        CsName         = $_.CsName
        WindowsVersion = $data.WindowsVersion
        ANY            = $data.ANY
    }
}
$impc | Export-CSV "C:\mycsv.csv" -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...