我想我有一个基本的PowerShell问题,你们大多数人都知道这个问题......
因此,当我从我的AD导出列表时,这是一个带有以下标题的csv列表:
CsDNSHostName,WindowsVersion,Any(在这种情况下,由于用户操作,任何内容都可能发生变化)
所以现在我已经导出了我的CSV,然后我想保持这个csv uptodate。 在我的环境中," ANY"标题可能会经常更改,也可能会有新计算机出现在列表中,旧计算机会消失...
所以现在我需要一种方法来保持我的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"
答案 0 :(得分:1)
要多次使用Get-ComputerInfo运行Invoke-Command 我会尝试这样的事情:
$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