首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Powershell将列数据替换为命令的新输出

Powershell将列数据替换为命令的新输出
EN

Stack Overflow用户
提问于 2018-06-06 05:53:35
回答 1查看 138关注 0票数 0

我想我有一个基本的powershell问题,你们大多数人都知道...

因此,当我从假设我的AD中导出一个列表时,这是一个带有以下标题的csv列表:

CsDNSHostName、WindowsVersion、Any (在这种情况下,any是可能因用户操作而更改的内容)

所以现在我有了我导出的CSV,然后我想让这个csv保持最新。在我的环境中,“任何”头可能会经常改变,也可能会有新的计算机出现在列表中,而旧的计算机会消失……

因此,现在我需要一种方法来保持我的csv更新,而不必创建多个csv文件,而且我也不想在csv中有重复的条目。

以下是我认为可能会使用的代码,但我确信我错了,因为我的知识太低,无法正常运行,获取数据很容易,但使其可更新,而不是…

代码语言:javascript
复制
#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"
EN

回答 1

Stack Overflow用户

发布于 2018-06-06 07:02:58

要避免多次运行带有Get-ComputerInfo的Invoke-Command

我会试着这样做:

代码语言:javascript
复制
$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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50709480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档