Matze1708 10 Geschrieben 12. Mai 2016 Melden Teilen Geschrieben 12. Mai 2016 Hallo zusammen, ich möchte eine Möglichkeit haben, Dateien mit einer gewissen Endung .dll .exe etc aufgelistet zu bekommen. Das Skript sollte auf allen Systemen ab Win7 lauffähig sein. Es sollen alle PLatten durchsucht werden die auf dem jeweiligen Rechner verfügbar sind. Ich möchte dann eine Ausgabe haben, die etwas strukturiert ist, habe das was gelesen mit Format Table. etc. Das Skript möchte ich auf einem USB Stick liegen haben und es von dort öffnen können. Habe jetzt nur was in dieser Art gefunden: gci H: –Recurse Where-Object {$_.Extension -eq ".accdb"} Format-Table FullName, CreationTime, Length jedoch bekomme ich dann so einen Fehler: Get-ChildItem : Es wurde kein Positionsparameter gefunden, der das Argument "$_.Extension -eq "*.accdb"" akzeptiert. Zitieren Link zu diesem Kommentar
tesso 373 Geschrieben 12. Mai 2016 Melden Teilen Geschrieben 12. Mai 2016 Dir fehlen die Pipes. Get-ChildItem j: –Recurse | Where-Object {$_.Extension -eq ".accdb"} | Format-Table FullName, CreationTime, Length Zitieren Link zu diesem Kommentar
massaraksch 41 Geschrieben 12. Mai 2016 Melden Teilen Geschrieben 12. Mai 2016 Hi, mit "Where" würde ich bei sowas nicht arbeiten. Ein direkter Filter mittels INCLUDE sollte schneller sein: gci H:\ -Recurse -Force -Include *.accdb -ErrorAction SilentlyContinue | Format-Table FullName,CreationTime,Length PS: Mit "-Force" bekommst du auch versteckte (hidden) Dateien. "-ErrorAction SilentlyContinue" muß nicht sein, es verhindert aber die störende Anzeige eventueller Fehlermeldungen, falls auf bestimmte Verzeichnisse nicht zugegriffen werden kann. Zitieren Link zu diesem Kommentar
daabm 1.334 Geschrieben 13. Mai 2016 Melden Teilen Geschrieben 13. Mai 2016 mit "Where" würde ich bei sowas nicht arbeiten. Ein direkter Filter mittels INCLUDE sollte schneller sein: ACK - filtern immer so weit am Beginn der Pipeline (also links) wie möglich Zitieren Link zu diesem Kommentar
Matze1708 10 Geschrieben 13. Mai 2016 Autor Melden Teilen Geschrieben 13. Mai 2016 (bearbeitet) Hey, mein Code sieht mittlerweile so aus: Clear-Host $Location = "H:" $Output = "$env:userprofile\MPA-Check.txt" $Dir = Get-ChildItem -path $Location -Recurse -force -Include *.knx*,*e6? -ErrorAction SilentlyContinue $List = $Dir $List | Format-Table Name, Fullname, CreationTime, Lastaccesstime -Auto | Out-File $Output Invoke-Item $Output Mit welcher Option schaue ich über alle logischen Laufwerke auf dem System? Ohne -path läuft es nicht und mit kann ich nicht variabel bleiben. bearbeitet 13. Mai 2016 von Matze1708 Zitieren Link zu diesem Kommentar
massaraksch 41 Geschrieben 13. Mai 2016 Melden Teilen Geschrieben 13. Mai 2016 Hi, Möglichkeiten: Get-WmiObject win32_volume | ? { $_.DriveType -eq 3 } | select Name [System.IO.DriveInfo]::getdrives() | ? { $_.DriveType -eq 'Fixed' } | select Name Damit ginge z.b. sowas in der Richtung: $drives = Get-WmiObject win32_volume | ? { $_.DriveType -eq 3 } foreach ($d in $drives) { gci $d.name #weitere Befehle } Zitieren Link zu diesem Kommentar
Dukel 451 Geschrieben 13. Mai 2016 Melden Teilen Geschrieben 13. Mai 2016 Get-PSDrive -PSProvider Filesystem Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.