Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 按共性分组_Powershell - Fatal编程技术网

Powershell 按共性分组

Powershell 按共性分组,powershell,Powershell,试图找出如何获取计算机数据集的通用配置(产品安装和版本) 数据的结构如下所示: Device Name Product Name Product Version OS Computer 1 Visio 16.0.11929 Windows 10 Computer 2 Visio 16.0.11929 Windows 10 Computer 3 Visio

试图找出如何获取计算机数据集的通用配置(产品安装和版本)

数据的结构如下所示:

Device Name     Product Name    Product Version     OS
Computer 1      Visio           16.0.11929          Windows 10
Computer 2      Visio           16.0.11929          Windows 10
Computer 3      Visio           16.0.11000          Windows 7
Computer 4      Visio           16.0.11929          Windows 7
Computer 5      Visio           16.0.11000          Windows 10
Computer 1      PowerBI         2.72.5556           Windows 10
Computer 2      PowerBI         2.72.5556           Windows 10
Computer 5      PowerBI         2.72.5556           Windows 10
Computer 1      WebEx           40.1.8.5            Windows 10
Computer 2      WebEx           40.1.8.5            Windows 10
Computer 3      WebEx           38.1.6.3            Windows 7
Computer 5      WebEx           40.1.8.5            Windows 10
Count   OS          Product Name    Product Version
2       Windows 10  Visio           16.0.11929
                    PowerBI         2.72.5556
                    WebEx           40.1.8.5

1       Windows 7   Visio           16.0.11000
                    WebEx           38.1.6.3

1       Windows 7   Visio           16.0.11929

1       Windows 10  Visio           16.0.11000
                    PowerBI         2.72.5556
                    WebEx           40.1.8.5
尝试获得如下输出:

Device Name     Product Name    Product Version     OS
Computer 1      Visio           16.0.11929          Windows 10
Computer 2      Visio           16.0.11929          Windows 10
Computer 3      Visio           16.0.11000          Windows 7
Computer 4      Visio           16.0.11929          Windows 7
Computer 5      Visio           16.0.11000          Windows 10
Computer 1      PowerBI         2.72.5556           Windows 10
Computer 2      PowerBI         2.72.5556           Windows 10
Computer 5      PowerBI         2.72.5556           Windows 10
Computer 1      WebEx           40.1.8.5            Windows 10
Computer 2      WebEx           40.1.8.5            Windows 10
Computer 3      WebEx           38.1.6.3            Windows 7
Computer 5      WebEx           40.1.8.5            Windows 10
Count   OS          Product Name    Product Version
2       Windows 10  Visio           16.0.11929
                    PowerBI         2.72.5556
                    WebEx           40.1.8.5

1       Windows 7   Visio           16.0.11000
                    WebEx           38.1.6.3

1       Windows 7   Visio           16.0.11929

1       Windows 10  Visio           16.0.11000
                    PowerBI         2.72.5556
                    WebEx           40.1.8.5
我想我可以用这样的东西,但它不是正确的分组方式:

group-object -property 'Product Name', 'Product Version', OS

首先重新排列数据,以便将属于同一台计算机的所有行分组在一起:

$Computers=$profiles |组对象“设备名”| ForEach对象{
[pscustomobject]@{
名称=$\名称
OS=$\组[0]。OS
软件=$\组\ ForEach对象{
“$($。'Product Name')$($。'Product Version')”
}|排序对象
}
}
现在,安装在每台机器上的
软件
列表是一个已排序的字符串列表,使用
-join
将列表转换为单个字符串将允许我们现在进行比较和分组,更接近您的预期输出:

PS C:\>$Computers |组对象操作系统,{$\.Software-join','}-NoElement |排序计数-降序|格式表-自动调整大小
计数名称
----- ----
2 Windows 10、PowerBI 2.72.5556、Visio 16.0.11929、WebEx 40.1.8.5
1 Windows 10、PowerBI 2.72.5556、Visio 16.0.11000、WebEx 40.1.8.5
1 Windows 7、Visio 16.0.11000、WebEx 38.1.6.3
1 Windows 7,Visio 16.0.11929