PS H:\> Invoke-Command -computername SERVERNAME { Get-ChildItem -path E:\dfsroots\datastore2\public} | Where-Object {{ $_.e
xtension-match "xls" -or $_.extension-match "xlk" } -and { $_.creationtime -ge "06/01/2014"}}
Oben ist mein Codebeispiel. Ich versuche, diesen PowerShell-Code auf meinem Dateiserver remote auszuführen und alle .xls- und .xlk-Dateien mit einem Erstellungsdatum am oder nach dem 01.06.2014 zurückgeben zu lassen. Wenn ich diesen Code ausführe, spuckt er alle Ordner an diesem entfernten Ort aus. Wenn ich vergleiche nur zwei Dinge, wie so:Mehrere -und -oder in PowerShell Where-Object-Anweisung
PS H:\> Invoke-Command -computername SERVERNAME { Get-ChildItem -path E:\dfsroots\datastore2\public} | Where-Object { $_.extension-match "xls" -and $_.creationtime -ge "06/01/2014"}
Nur die xls-Dateien an oder nach diesem Datum Anzeige erstellt. Was ist denn hier los? Muss ich etwas anderes als nest -and
und -or
Anweisungen verwenden?
Beachten Sie, dass die Aufschlüsselung des Befehls in mehrere "Where" -Absätze auch nicht funktioniert. Ich würde einen Befehl wie eingeben: PS H: \> Invoke-Command-Computername SERVERNAME {Get-ChildItem -path E: \ dfsroots \ datastore2 \ public} | Where-Object {$ _. Ex tension-match "xls" -oder $ _. Extension-match "xlk"} | where-object {$ _. creationtime -ge "06/01/2014"} Und es beginnt Xlsx-Dateien auszuspucken, was nicht das ist, was ich will. –
Verwenden Sie Klammern nicht geschweifte Klammern, um Optionen einzuschließen, also 'Where {($ _. Extension -Match" xls "-oder $ _. Extension -Match" xlk ") -und $ _. CreationTime -ge" 06/01/2014 "}' – TheMadTechnician
@TheMadTechnician, wenn Sie mir nur eine Minute helfen konnte ich nicht herausfinden, was Mini-Markdown-Formatierung funktioniert und was nicht. Wie haben Sie das in einen "Code" -Block eingefügt? –