Matze1708 10 Geschrieben 12. Mai 2016 Melden 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
tesso 377 Geschrieben 12. Mai 2016 Melden Geschrieben 12. Mai 2016 Dir fehlen die Pipes. Get-ChildItem j: –Recurse | Where-Object {$_.Extension -eq ".accdb"} | Format-Table FullName, CreationTime, Length Zitieren
massaraksch 41 Geschrieben 12. Mai 2016 Melden 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
daabm 1.387 Geschrieben 13. Mai 2016 Melden 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
Matze1708 10 Geschrieben 13. Mai 2016 Autor Melden 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
massaraksch 41 Geschrieben 13. Mai 2016 Melden 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
Dukel 460 Geschrieben 13. Mai 2016 Melden Geschrieben 13. Mai 2016 Get-PSDrive -PSProvider Filesystem Zitieren
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.