在同一行和输出 csv 上使用 Win32_Computersystem 和 Win32_service

发布于 2024-12-22 21:18:36 字数 550 浏览 0 评论 0原文

我正在使用 Get-WmiObject Win32_service 并将输出通过管道传输到 CSV。 我的脚本正在收集正在运行的服务,但我想在 csv 中的同一行上显示对象的 osname、ip 和域(这样我可以轻松地使用 Excel 进行排序)。

有什么办法可以将两者结合起来吗?

Get-WmiObject Win32_Computersystem
Get-WmiObject Win32_service

或者也许我可以将 Get-QADComputer 中的一些变量偷偷放入此行中:

Get-WmiObject Win32_service -Computername $server.name -Filter "State='Running'" | select -Property SystemName,Name,Status,State,Startmode,DisplayName | Export-Csv -Append -NoClobber -NoTypeInformation -Path $reportfile

I am using Get-WmiObject Win32_service and piping the output to CSV.
My script is collecting services running, but I would like to display osname, ip and domain for the object on the same line in my csv (so I can easily sort with Excel).

Is there a way I can combine the two?

Get-WmiObject Win32_Computersystem
Get-WmiObject Win32_service

Or maybe I could sneak in some variables from my Get-QADComputer into this line:

Get-WmiObject Win32_service -Computername $server.name -Filter "State='Running'" | select -Property SystemName,Name,Status,State,Startmode,DisplayName | Export-Csv -Append -NoClobber -NoTypeInformation -Path $reportfile

?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你没皮卡萌 2024-12-29 21:18:36

使用 New-Object cmdlet 为每个服务对象创建新对象,并从 Win32_OperatingSystem WMI 类添加所需的属性 (osname)(os 标题在Win32_ComputerSystem 类)。

$ComputerName = 'PC1'

$os = Get-WmiObject Win32_OperatingSystem -ComputerName $ComputerName

Get-WmiObject Win32_Service -ComputerName $ComputerName -Filter "State='Running'" | Foreach-Object{

    New-Object -TypeName PSObject -Property @{
        SystemName=$_.SystemName
        Name=$_.Name
        Status=$_.Status
        State=$_.State
        StartMode=$_.Startmode
        DisplayName=$_.DisplayName
        IPAddress = [System.Net.Dns]::GetHostAddresses($_.SystemName)[0].IPAddressToString
        OSName = $os.Caption            
    } | Select-Object SystemName,Name,Status,State,StartMode,DisplayName,IPAddress,OSName

} | Export-Csv -Append -NoClobber -NoTypeInformation -Path $reportfile

Use the New-Object cmdlet to create new object for each service object and add the properties you want (osname) from the Win32_OperatingSystem WMI class (os caption is not avaiable in the Win32_ComputerSystem class).

$ComputerName = 'PC1'

$os = Get-WmiObject Win32_OperatingSystem -ComputerName $ComputerName

Get-WmiObject Win32_Service -ComputerName $ComputerName -Filter "State='Running'" | Foreach-Object{

    New-Object -TypeName PSObject -Property @{
        SystemName=$_.SystemName
        Name=$_.Name
        Status=$_.Status
        State=$_.State
        StartMode=$_.Startmode
        DisplayName=$_.DisplayName
        IPAddress = [System.Net.Dns]::GetHostAddresses($_.SystemName)[0].IPAddressToString
        OSName = $os.Caption            
    } | Select-Object SystemName,Name,Status,State,StartMode,DisplayName,IPAddress,OSName

} | Export-Csv -Append -NoClobber -NoTypeInformation -Path $reportfile
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文