无法获得 Get-CMDeploymentType 的第一个值 Objcet/Array
Can't optain first value of an Get-CMDeploymentType Objcet/Array
我有一个大型脚本,用于在 SCCM 中创建应用程序。该脚本的一部分是添加应用程序的取代
由于搜索可能的 Supercedence 需要很长时间,我 运行 这是在后台作业中
Script-Block for Background Job $Super_func1
#$SSeed has a Part of an App Name String that is optained from the Start-job Argument
$appoldname = Get-CMApplication | where-object {$_.LocalizedDisplayName -like "*$SSeed*" } | select-object-first 1 -Property LocalizedDisplayName
Get-CMDeploymentType -ApplicationName $appoldname.LocalizedDisplayName
我按照下面的方式开始这个
$job = @()
$job += Start-Job -ArgumentList @($AppSupersedence) -ScriptBlock $Super_func1
等待作业完成后,我收到了作业并想访问 AppModelName 的第一个条目
有了这些信息,我想 运行 一个 Get-CMApplication -ModelName $Modelname
应用程序可能有多个结果(两个部署类型),因此 AppModelName 有多个值。
Wait-Job -job $job | Out-Null
$deployment23 = receive-job -job $job -keep
但我只能使用 foreach 循环访问第一个值。
这对我来说似乎很奇怪......所以我想我做错了一些愚蠢的事情
#this does not work
$result23 = Get-CMApplication -ModelName $deployment23.AppModelName(0) --> Error
#This does not work
$arrayresultme = $deployment23.AppModelName(0) --> Error
#This does work
foreach ($Modelname in $deployment23.AppModelName){
$result23 = ""
$result23 = Get-CMApplication -ModelName $Modelname
break
}
我得到的错误是:
方法调用失败,因为 [Deserialized.IResultObject#SMS_DeploymentType] 不包含名为“AppModelName”的方法。
任何关于我为什么必须使用 foreach 的提示都将不胜感激
在 PowerShell 中,使用标准括号通常会尝试调用 method/function。
要从数组中检索值,您需要使用方括号,如下所示:
Get-CMApplication -ModelName $deployment23.AppModelName[0]
我有一个大型脚本,用于在 SCCM 中创建应用程序。该脚本的一部分是添加应用程序的取代
由于搜索可能的 Supercedence 需要很长时间,我 运行 这是在后台作业中
Script-Block for Background Job $Super_func1
#$SSeed has a Part of an App Name String that is optained from the Start-job Argument
$appoldname = Get-CMApplication | where-object {$_.LocalizedDisplayName -like "*$SSeed*" } | select-object-first 1 -Property LocalizedDisplayName
Get-CMDeploymentType -ApplicationName $appoldname.LocalizedDisplayName
我按照下面的方式开始这个
$job = @()
$job += Start-Job -ArgumentList @($AppSupersedence) -ScriptBlock $Super_func1
等待作业完成后,我收到了作业并想访问 AppModelName 的第一个条目 有了这些信息,我想 运行 一个 Get-CMApplication -ModelName $Modelname 应用程序可能有多个结果(两个部署类型),因此 AppModelName 有多个值。
Wait-Job -job $job | Out-Null
$deployment23 = receive-job -job $job -keep
但我只能使用 foreach 循环访问第一个值。 这对我来说似乎很奇怪......所以我想我做错了一些愚蠢的事情
#this does not work
$result23 = Get-CMApplication -ModelName $deployment23.AppModelName(0) --> Error
#This does not work
$arrayresultme = $deployment23.AppModelName(0) --> Error
#This does work
foreach ($Modelname in $deployment23.AppModelName){
$result23 = ""
$result23 = Get-CMApplication -ModelName $Modelname
break
}
我得到的错误是:
方法调用失败,因为 [Deserialized.IResultObject#SMS_DeploymentType] 不包含名为“AppModelName”的方法。
任何关于我为什么必须使用 foreach 的提示都将不胜感激
在 PowerShell 中,使用标准括号通常会尝试调用 method/function。
要从数组中检索值,您需要使用方括号,如下所示:
Get-CMApplication -ModelName $deployment23.AppModelName[0]