2017-05-09 5 views
0

私はPowerShellスクリプトの新機能です。私はいくつかのGoogle-Fuを使用しようとしましたが、この問題の解決策を自分で見つけ出しましたが、この特定の問題に対する答えを見つけるのは非常に難しいです。私はここに誰かが助けてくれることを願っており、事前に感謝しています!export-excelが失敗し、中括弧が間違っていますか?

私は彼のブログ(http://www.lucd.info/2016/09/13/orphaned-files-revisited/)から得たLuc Dekensのスクリプトを使用しています。彼のブログの終わりに、彼はExcelスプレッドシートを生成するいくつかの行のコードを(dfinkeの "export-excel"を使って)提供します。私にとってはうまくいかないコードの最後の6行です。

ここで最後の6行を貼り付けました。それから、私が実行したときにISEから得たエラーを貼り付けます。コードの

6行:そこに '}' 行方不明があり

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 

答えて

1

$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から取得エラーです。その行を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 

}

+0

感謝。私はあなたが提案したところに括弧をつけて追加し、元のエラーは消え去る。新しいエラーに置き換えられます。 「MyCluster」という名前のクラスタが、指定されたフィルタを使用して見つかりませんでした。 \ users \ jharriso-a \ documents \ ps \ get-vmworphan.ps1:141 char:17にあります。クラスタの名前を指定できるかどうかを確認します。 VMWare vCenterでは、クラスタが特定のデータストアで実行されるように設計されているため、クラスタを求めているのは変です。 – JHarriso

+0

私はスクリプトを実行しているデータストアを持つクラスタの名前を入力しました。今はスクリプトが実行されますが、終了するようには見えません。私はそれが約30分間実行させ、最終的にそれを停止するためにCTRL + BRKを行った。 "警告:Datastoreタイプの 'アクセス可能な'プロパティは廃止予定です。代わりに '状態'プロパティを使用してください。"だから今私はそれを見ている。私は先に進んで、Adilに信用を与えるつもりです。なぜなら、彼の提案が他の何よりも私を遠くに感じているからです。 – JHarriso

関連する問題