powershell - 从 CSVFile 从多台计算机获取 ADComputer
问题描述
我有一个完整的计算机信息格式的 csv 文件:
Name OS Site Code AD_Status Region Tech
computerone Windows 10 Enterprise **** Exists Chicago T T
computertwo Windows 10 Enterprise **** Exists Chicago T T
computerthree Windows 10 Enterprise **** Exists Chicago T T
我正在运行一个 Powershell 脚本,该脚本从 csv 文件中获取计算机名称并检查其“modifyTimeStamp”字段。
$csvfile = Import-CSV -Path 'C:\Users\****\testexcel.csv'-Delimiter ","
$numofcompsincsv = $csvfile.psobject.properties.value[0] - 1
for ($i = 0; $i -le $numofcompsincsv; $i++) {
Get-ADComputer -identity $csvfile[$i].psobject.properties.value[0] -Properties * | FT Name, modifyTimeStamp
}
这样做的问题是它会一一打印计算机信息,例如:
Name modifyTimeStamp
---- ---------------
computerone 7/19/2019 11:06:22 AM
Name modifyTimeStamp
---- ---------------
computertwo 7/24/2019 6:02:14 AM
Name modifyTimeStamp
---- ---------------
computerthree 7/24/2019 2:02:14 AM
我怎样才能修改它,以便它像这样打印出来:
Name modifyTimeStamp
---- ---------------
computerone 7/19/2019 11:06:22 AM
computertwo 7/24/2019 6:02:14 AM
computerthree 7/24/2019 2:02:14 AM
解决方案
不要for
循环执行此操作;改用管道:
Import-CSV -Path 'C:\Users\****\testexcel.csv' | Select -expand Name | Get-ADComputer -prop modifyTimeStamp | Select Name,ModifyTimeStamp
ETA:我显然没有正确地创建用于测试的 CSV(手动编码),并且最初将 CSV 通过管道传输到| Select Name |
而不是扩展属性(在我的测试中有效)。当我使用 Excel 重新执行此操作| Select -expand Name |
时,根据@js2010 的评论,我验证了这是必需的。
推荐阅读
- hapi - 在验证 FHIR 配置文件时使用 FhirInstanceValidator 是否重要?
- python - 在 Django REST Framework (DRF) 中正确使用“可调用默认函数”
- ffmpeg - 用于自适应流媒体的多种分辨率的 FFMPEG 编码
- time-complexity - 区间树的时间复杂度分析
- python - apache/mod_wsgi - 如何使用不同的 python 虚拟环境配置多个 webapps
- signals - 如何使用 DBSCAN 聚类功率谱密度矩阵(在时频域中)以获得 2 个数据和噪声聚类
- c# - AWS EC2 到 RDS SQL Server 的最大连接数
- google-analytics - 登陆页面 SERP = 封闭部分的页面
- java - 将 javax.inject.Provider 与 Spring @Scope(BeanDefinition.SCOPE_PROTOTYPE) 一起使用
- vb.net - VB.NET - Listview 行必须根据 MySQL 数据着色(如何在我的代码中实现它?)