Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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,我想检索一些应用程序信息,这可以通过PowerShell中的cmdlet实现。但结果可能非常巨大,因为许多应用程序包含大量信息 我的问题是,我只想检索一个应用程序的名称。我发现了如何做到这一点,通过简单的PowerShell系列: Get-CMApplication | Where-Object { $_.CI_UniqueID -like ("*" + $line['ApplicationID'] + "*") } | Select-Object LocalizedDisplayName).L

我想检索一些应用程序信息,这可以通过PowerShell中的cmdlet实现。但结果可能非常巨大,因为许多应用程序包含大量信息

我的问题是,我只想检索一个应用程序的名称。我发现了如何做到这一点,通过简单的PowerShell系列:

Get-CMApplication | Where-Object { $_.CI_UniqueID -like ("*" + $line['ApplicationID'] + "*") } | Select-Object LocalizedDisplayName).LocalizedDisplayName
问题是它相当慢。返回一些结果大约需要30秒和几分钟,当我搜索一个不存在的应用程序时,可能需要10分钟,这太多了。由于这一行实际上是在循环中调用的,因此理论上,脚本检索我请求的所有应用程序名称可能需要几个小时

我想知道是否有一个最快的方式来搜索这个获取CMApplication结果。我已经从Get-CMApplication cmdlet中看到了参数Id和名称,但我正在搜索名称,没有Id,只有CI_UniqueID


有什么想法吗?

你有没有尝试过
获取CMApplication-Id$line['ApplicationID']
?是的,我尝试过这个,但它总是不返回任何内容,这意味着$line['ApplicationID']不是正确的-Id值,因为我的当前行有一个结果:/在这种情况下,我将检索所有应用程序一次,将它们保存到一个变量中(可能在哈希表中以便于查找)然后使用该变量检索循环中的单个应用程序问题是,我可以要求搜索1个应用程序或1000个应用程序,因此如果搜索1个应用程序,它将更长,因为它将首先尝试检索变量中的所有应用程序,然后搜索此变量。此外,如果使用script在变量中搜索而不是在表中搜索?我唯一能看到的是内存和空间方面的缺点。正如我所说,它可能是一个巨大的列表…这就是为什么我建议在后续查找中使用哈希表。在开销方面,每次执行
Get CMApplication | Where Object{…}
powershell需要连接到sccm,等待sccm执行查询,将所有结果加载到内存中,并使用Where对象处理它们。执行一次,然后仅保存本地化的DdisplayName+ID可能会更快(如果占用的内存稍多)您是否尝试过
Get-CMApplication-ID$line['ApplicationID']
?是的,我尝试了这个,但它总是不返回任何内容,这意味着$line['ApplicationID']不是正确的-Id值,因为我的当前行有一个结果:/n在这种情况下,我将检索所有应用程序一次,将它们保存到一个变量中(可能在哈希表中以便查找)然后使用该变量检索循环中的单个应用程序问题是,我可以要求搜索1个应用程序或1000个应用程序,因此如果搜索1个应用程序,它将更长,因为它将首先尝试检索变量中的所有应用程序,然后搜索此变量。此外,如果使用script在变量中搜索而不是在表中搜索?我唯一能看到的是内存和空间方面的缺点。正如我所说,它可能是一个巨大的列表…这就是为什么我建议在后续查找中使用哈希表。在开销方面,每次执行
Get CMApplication | Where Object{…}
powershell需要连接到sccm,等待sccm执行查询,将所有结果加载到内存中,并使用Where对象处理这些结果。执行一次,然后仅保存LocalizedDisplayName+ID可能会更快(如果占用的内存稍多一些)