我需要一个Powershell脚本,它将根据操作系统从1个SCCM集合添加不同数量的随机客户端到另一个集合。
我目前让它在不考虑操作系统的情况下工作,所以它只是从1个集合中随机挑选客户并将它们放入另一个集合中。我现在想要添加功能来随机化他们正在运行的操作系统。这是为了从集合中获得尽可能准确的操作系统样本。
这是我目前所拥有的:
## Get a bunch of objects (clients) with name and DeviceOS properties
$SourceClients = Get-WmiObject @ConfigMgrWmiProps -Class "SMS_CM_RES_COLL_$SourceCollectionId" | select Name, DeviceOS
此时,我被困住了。我想过用DeviceOS对它们进行分组,使用随机数组索引在每个DeviceOS分组中查找随机客户端,但我想到了可能有时候我只需要5个随机客户端的可能性,例如,共有10个不同的DeviceOS组。我怎么会这样随机抽样?
感谢您的帮助!
答案 0 :(得分:0)
是否尝试从$SourceClients
集合中挑选一个随机元素?如果是这样,您可以使用Get-Random
即
$SourceClients | Get-Random
将返回单个随机对象。获得5个对象:
1..5 | % { $SourceClients | Get-Random }
如果您想从随机操作系统中获取5个随机客户端
($SourceClients | group DeviceOS| Get-Random).Group | Get-Random
或特定操作系统的随机客户端
$SourceClients | where {$_.DeviceOS -eq "MySpecificOS" }| Get-Random