我是PowerShell脚本的新手。我已经尝试使用一些Google-Fu并自己找出这个问题的答案,但很难找到这个特定问题的答案。我希望有人能提供帮助,并提前致谢!
我使用的是Luc Dekens的剧本,我是从他的博客(http://www.lucd.info/2016/09/13/orphaned-files-revisited/)获得的。在他博客的最后,他提供了一些代码(使用dfinke' s" export-excel"),它们将生成一个Excel电子表格。最后6行代码对我来说并不起作用。
我在这里粘贴了最后6行代码。然后,当我运行它时,我会粘贴我从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
答案 0 :(得分:1)
缺少'}'那里。你可以看到一个红色的下划线' {'如果您将该行粘贴到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
}