2017-05-09 8 views
0

Ich bin sehr neu bei PowerShell-Skripten. Ich habe versucht, etwas Google-Fu zu verwenden und die Antwort auf dieses Problem selbst herauszufinden, aber es ist sehr schwer, die Antwort auf dieses spezifische Problem zu finden. Ich hoffe, dass hier jemand helfen kann, und danke im Voraus!Export-Excel fehlgeschlagen, geschweifte Klammern sind falsch?

Ich benutze ein Skript von Luc Dekens, das ich von seinem Blog (http://www.lucd.info/2016/09/13/orphaned-files-revisited/) bekommen habe. Am Ende seines Blogs gibt er noch ein paar Codezeilen (mit Hilfe von dfinkes "export-excel"), die eine Excel-Tabelle generieren. Es sind diese letzten 6 Codezeilen, die für mich nicht funktionieren.

Ich habe die letzten 6 Zeilen Code hier eingefügt. Dann füge ich den Fehler ein, den ich von ISE bekomme, wenn ich es ausführe.

6 Zeilen Code:

$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 
} 

Dies ist der Fehler, den ich von ISE erhalten:

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 

Antwort

1

ist ein Es fehlt '}' gibt. Sie können eine rote unterstrichene "{" nach Eigenschaft sehen, wenn Sie diese Zeile in ISE einfügen.

Ich vermute, die schließende Klammer sollte direkt nach TrimStart ('[') eingefügt werden. Probieren Sie, ob es den Fehler behebt.

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

Vielen Dank für Ihre Zeit, Adil. Ich habe eine schließende geschweifte Klammer an der Stelle hinzugefügt, an der Sie vorgeschlagen haben, und der ursprüngliche Fehler verschwindet. Wird durch einen neuen Fehler ersetzt. Cluster mit dem Namen 'MyCluster' wurde nicht mit den angegebenen Filtern gefunden. Unter C: \ Benutzer \ jharriso-a \ Dokumente \ ps \ get-vmworphan.ps1: 141 Zeichen: 17. Ich werde sehen, ob ich den Namen eines Clusters angeben kann, wenn das besser ist. Es ist merkwürdig, dass man in VMWare vCenter nach einem Cluster fragt, der in einem bestimmten Datenspeicher ausgeführt werden soll. – JHarriso

+0

Ich habe den Namen eines Clusters mit dem Datenspeicher eingegeben, für den ich das Skript verwende. Jetzt läuft das Skript, scheint aber nicht zu enden. Ich ließ es für ungefähr 30 Minuten laufen und schließlich STRG + BRK, um es zu stoppen. "WARNING: Die Eigenschaft 'Zugänglich' des Datenspeichertyps ist veraltet. Verwenden Sie stattdessen die Eigenschaft 'Status'." Also schaue ich mir das jetzt an. Ich werde weitermachen und Adil einen Kredit geben, weil ich glaube, dass sein einziger Vorschlag mich weiter gebracht hat als alles andere. – JHarriso

Verwandte Themen