Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 ForEach循环失败_Powershell_Foreach_Powershell 5.0_Mdt - Fatal编程技术网

Powershell ForEach循环失败

Powershell ForEach循环失败,powershell,foreach,powershell-5.0,mdt,Powershell,Foreach,Powershell 5.0,Mdt,我正在尝试为MDT部署共享中的所有WIM文件生成报告。基本上,我认为需要对找到的所有WIM文件执行ForEach循环。我有我认为应该有效的方法,但显然不行。我离这里有多远 $WimPath = "G:\DeploymentShare\Operating Systems" Get-ChildItem -Path $WimPath -Filter *.wim -Recurse -File | Select-Object -ExpandProperty VersionInfo | Select-Ob

我正在尝试为MDT部署共享中的所有WIM文件生成报告。基本上,我认为需要对找到的所有WIM文件执行ForEach循环。我有我认为应该有效的方法,但显然不行。我离这里有多远

$WimPath = "G:\DeploymentShare\Operating Systems"

Get-ChildItem -Path $WimPath -Filter *.wim -Recurse -File | Select-Object -ExpandProperty VersionInfo | Select-Object FileName | ForEach-Object { Get-WindowsImage -ImagePath $_ }
我看到的错误是Get-WindowsImage命令的参数不正确


我认为我的选择对象的工作方式与我认为的不一样,或者我在Get-WindowsImage命令中没有正确使用管道。

我是一个PowerShell noob,并不完全理解这一点,但我认为首先关注命令的这一部分可以解释发生了什么:

Get-ChildItem -Path $WimPath -Filter *.wim -Recurse -File | Select-Object -ExpandProperty VersionInfo | Select-Object FileName 
为此,我们首先获取路径中的所有*.wim文件,展开VersionInfo属性,然后选择文件名。在控制台中,将显示如下结果:

FileName -------- [files here] 这里的诀窍是,您在Get ChildItem的shell中看到的字符串表示不一定显示对象中的每个属性。没有空间了。文件名始终存在,您可以通过检查Get-Member cmdlet查看它,如下所示:

Get-ChildItem -Path $WimPath -Filter *.wim -Recurse -File | Get-Member

尝试获取ChildItem-Path$WimPath-Filter*.wim-Recurse-File | ForEach对象{Get-windowsmimage-ImagePath$\ fullname}@Brendand62269,做得好!我想知道我是否需要选择对象。我想我没有。。。我怎样才能把你认定为回答正确的人呢?和你一样,我也有点傻。对Get-WindowsImage命令所需的字符串值有很好的理解。现在我看了一下,文档说明这正是需要的。我正在处理Get ChildItem-Path$WimPath-Filter*.wim-Recurse-File | Select Object-ExpandProperty VersionInfo | Select Object FileName,并认为它能满足我的需要。我不完全理解它提供给我的是什么类型的数据,我仍然不完全理解如何找出它。
Get-ChildItem -Path $WimPath -Filter *.wim -Recurse -File | Select-Object -ExpandProperty FullName | ForEach-Object { Get-WindowsImage -ImagePath $_ }
Get-ChildItem -Path $WimPath -Filter *.wim -Recurse -File | Get-Member