Powershell 导出excel失败,大括号错误?

Powershell 导出excel失败,大括号错误?,powershell,export-to-excel,Powershell,Export To Excel,我对PowerShell脚本非常陌生。我曾尝试使用谷歌Fu,自己找出这个问题的答案,但很难找到这个具体问题的答案。我希望这里有人能帮忙,提前谢谢 我正在使用Luc Dekens从他的博客()中获得的脚本。在他的博客的最后,他给出了几行代码(使用dfinke的“导出excel”),这些代码将生成excel电子表格。最后6行代码对我来说不起作用 我已经在这里粘贴了最后6行代码。然后我将在运行ISE时粘贴从ISE获得的错误 6行代码: $reportName = 'C:\users\jharriso-

我对PowerShell脚本非常陌生。我曾尝试使用谷歌Fu,自己找出这个问题的答案,但很难找到这个具体问题的答案。我希望这里有人能帮忙,提前谢谢

我正在使用Luc Dekens从他的博客()中获得的脚本。在他的博客的最后,他给出了几行代码(使用dfinke的“导出excel”),这些代码将生成excel电子表格。最后6行代码对我来说不起作用

我已经在这里粘贴了最后6行代码。然后我将在运行ISE时粘贴从ISE获得的错误

6行代码:

$reportName = 'C:\users\jharriso-a\documents\ps\orphan-report.xlsx'

foreach($ds in (Get-Cluster -Name MyCluster | Get-Datastore | Get-VmwOrphan | 
                Group-Object -Property {$_.Folder.Split(']')[0].TrimStart('['))){
$ds.Group | Export-Excel -Path $reportName -WorkSheetname $ds.Name -AutoSize -AutoFilter -FreezeTopRow
}
这是我从ISE得到的错误:

C:\users\jharriso-a\documents\ps> .\get-vmworphan.ps1 -datastore 

vmware_templates_nfs_gu1c_gaantapsvm1
Group-Object : A positional parameter cannot be found that accepts argument '['.
At C:\users\jharriso-a\documents\ps\get-vmworphan.ps1:142 char:17
+ ...             Group-Object -Property {$_.Folder.Split(']')[0].TrimStart ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Group-Object], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GroupObjectCommand

那里缺少一个“}”。如果将该行粘贴到ISE中,则可以在属性后面看到带红色下划线的“{”

我猜右括号应该在TrimStart(“[”)之后插入。试试看它是否修复了错误

foreach($ds in (Get-Cluster -Name MyCluster | Get-Datastore | Get-VmwOrphan |
                Group-Object -Property {$_.Folder.Split(']')[0].TrimStart('[')} )){
    $ds.Group | Export-Excel -Path $reportName -WorkSheetname $ds.Name -AutoSize -AutoFilter -FreezeTopRow

}

谢谢你的时间,Adil。我在你建议的地方添加了一个结束的花括号,原始错误消失了。要替换为新错误。使用指定的筛选器找不到名为“MyCluster”的群集。在C:\users\jharriso-a\documents\ps\get-vmworphan.ps1:141 char:17。我将看看是否可以指定群集的名称,如果这更好的话。奇怪的是,它要求在VMWare vCenter中的特定数据存储上运行群集。我输入了一个群集的名称,该群集包含运行脚本所针对的数据存储。因此,现在我没有脚本运行了,但似乎没有完成。我让它运行了大约30分钟,最后按CTRL+BRK停止了它。它给出了一个错误:“警告:数据存储类型的“可访问”属性已被弃用。请改用“状态”属性。”所以我现在正在研究这个问题。我将继续并赞扬阿迪尔,因为我觉得他的一个建议比其他任何建议都让我走得更远。