Powershell get-adcomputer + wmi查询一次性完成

时间:2018-02-05 10:16:19

标签: powershell csv

我的查询列出了所有计算机及其操作系统,并将其导出为CSV文件:

WMI

我想知道chassistype,并且有WmiObject win32_systemenclosure -computer $computer.Name | Select chassistypes 查询:

    Select Distinct
    case when exists (
    Select VerticalNameGroup 
    from CDB_Verticals 
    where VerticalNameGroup = DWVerticalGroup and ServiceLine='N'
    ) then DWVerticalGroup 
    else 'Others' 
    end as DWVertical 
    from dbo.dw_UtilizationPredictionReport 

如何组合这两个命令并将结果导出到单个csv?

1 个答案:

答案 0 :(得分:0)

您可以通过Select-Object

中的计算属性执行此操作
Get-ADComputer -Filter {OperatingSystem -NotLike "*server*"} -Properties * | select name,CanonicalName,OperatingSystem,OperatingSystemVersion,@{N='ChassisType';E={(WmiObject win32_systemenclosure -ComputerName $_.Name).chassistypes}} | Export-Csv C:\Temp\AllComputersOS.csv -NoTypeInformation

请注意,执行起来会相当慢。

计算出的属性部分是:

@{N='ChassisType';E={(WmiObject win32_systemenclosure -ComputerName $_.Name).chassistypes}}

它使用一个特殊的哈希表构造,您可以在其中提供键N(名称,尽管您也可以使用L表示Label或完全使用)和E(表达式),表达式是一些要执行的脚本块。在此我们使用$_.Name从管道变量获取当前计算机名称属性。