imebro 7 Geschrieben 3. Februar 2022 Autor Melden Teilen Geschrieben 3. Februar 2022 (bearbeitet) OK und danke... Gilt das dann auch für die Folderangabe (hier Laufwerk "S")? $folder = 'S:\' Grüße, imebro bearbeitet 3. Februar 2022 von imebro Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 3. Februar 2022 Melden Teilen Geschrieben 3. Februar 2022 vor 1 Minute schrieb imebro: Gilt das dann auch für die Folderangabe (hier Laufwerk "S")? Hast Du denn da auch eine Fehlermeldung bekommen? Und übrigens .... wenn da nicht noch mehr in Deinem Script ist, was Du uns nicht zeigen magst, kannst Du das hier ... vor 39 Minuten schrieb imebro: Add-Type -A System.IO.Compression Add-Type -A System.IO.Compression.FileSystem .... weglassen. Und übermäßiges Kommentieren stört auch eher als es hilft: Jeder, der der englishen Sprache ansatzweise mächtig ist, sieht, dass Du hier ein Verzeichnis zuweist. vor 41 Minuten schrieb imebro: # Verzeichnis $folder = 'S:\' ... und dass das ein Datum ist ... vor 42 Minuten schrieb imebro: # Datum $date = Get-Date '01.01.2012' Zitieren Link zu diesem Kommentar
imebro 7 Geschrieben 3. Februar 2022 Autor Melden Teilen Geschrieben 3. Februar 2022 (bearbeitet) Hallo und danke für den weiteren Tipp. Ich habe das Script jetzt einfach mal so durchlaufen lassen. Es hat jetzt funktioniert ohne Fehlermeldung Also geht´s auch mit Backslash bei "S:\" Was genau bewirken eigentlich die beiden ersten Zeilen mit "Add-Type......."? Grüße, imebro bearbeitet 3. Februar 2022 von imebro Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 3. Februar 2022 Melden Teilen Geschrieben 3. Februar 2022 (bearbeitet) vor 19 Minuten schrieb imebro: Was genau bewirken eigentlich die beiden ersten Zeilen mit "Add-Type......."? Lass sie doch einfach mal weg und beobachte den Unterschied. bearbeitet 3. Februar 2022 von BOfH_666 Zitieren Link zu diesem Kommentar
imebro 7 Geschrieben 3. Februar 2022 Autor Melden Teilen Geschrieben 3. Februar 2022 Hallo, ich werde es jetzt mal testen mit der tatsächlichen Löschdatei (zunächst noch nicht scharf geschaltet). Bevor ich natürlich den LÖSCH-Vorgang starte, würde ich Dich/Euch bitten, nochmal auf den Code zu schauen. Geändert habe ich lediglich die letzte Code-Zeile. Soweit meine Recherchen stimmen, sollte es durch das "-whatif" zunächst mal noch nicht scharf geschaltet sein. Entferne ich diesen Eintrag, dürfte die Löschung tatsächlich passieren... richtig? Hier der Code: $folder = 'S:\' $exclude = 'Archiv\\Datenschutz|Archiv\\Puetz\\Nachlässe|ADMIN\\S E C U R I T Y' $date = Get-Date '01.01.2012' # Nur Excel-Dokumente mit Änderungsdatum älter als $date löschen Get-ChildItem $folder -File -Filter '*.xls?' -Recurse | Where-Object { ($_.LastWriteTime -lt $date) -and (($_.Fullname -notmatch $exclude)) } | Select-Object -ExpandProperty Fullname | remove-item -Force -whatif # Scharf schalten = "-whatif" entfernen! Grüße, imebro Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 3. Februar 2022 Melden Teilen Geschrieben 3. Februar 2022 (bearbeitet) vor 4 Stunden schrieb imebro: Bevor ich natürlich den LÖSCH-Vorgang starte, würde ich Dich/Euch bitten, nochmal auf den Code zu schauen. Das hier ist primär ein Forum für IT-Profis. Es wird also erwartet, dass Du auch selbst aktiv wirst. Wir werden hier also nicht jede noch so kleine Änderung am Code ausführlich kommentieren, damit Du ein besseres Gefühl dabei hast - noch dazu, wo Du ja sowieso kein Interesse an IT hast .... vor 4 Stunden schrieb imebro: Geändert habe ich lediglich die letzte Code-Zeile. Soweit meine Recherchen stimmen, sollte es durch das "-whatif" zunächst mal noch nicht scharf geschaltet sein. Entferne ich diesen Eintrag, dürfte die Löschung tatsächlich passieren... richtig? Gibt es einen Grund, den Quellen, die Du für Deine Recherchen benutzt hast, zu misstrauen? Wenn Du Dir unsicher bist, schnappst Du Dir ein Test-Verzeichnis mit Test-Dateien und testest damit. Wenn die Tests erfolgreich waren und Du Dir dann sicher bist, dass es so funktioniert, wie gewünscht, überträgst Du das Ganze in Deine Produktiv-Umgebung - fertig. Wir machen das auch nicht anders. Übrigens - ein funktionierendes Backup der Daten sollte man im Zweifel sowieso immer bereit haben. Kein Backup - Kein Pardon. bearbeitet 3. Februar 2022 von BOfH_666 2 Zitieren Link zu diesem Kommentar
imebro 7 Geschrieben 4. Februar 2022 Autor Melden Teilen Geschrieben 4. Februar 2022 (bearbeitet) Hallo @BOfH_666 Zunächst einmal danke für Deine Infos. Mir war nicht bewußt, dass es sich beim "MCSE-Board" um ein Forum handelt, welches primär für IT-Profis ist. Ich habe mir jetzt mal das Forum angeschaut, sowie auch die Forenregeln und nirgendwo einen Hinweis darauf gefunden. Für mich wirkt es wie ein öffentliches Forum, in dem jeder seine Fragen stellen kann. Wieso Du annimmst, dass ich ein IT-Profi sei, der kein Interesse an IT hat, erschließt sich mir nicht. Ich habe sowas nie geschrieben. Ich habe lediglich hier - sehr freundlich - nach Hilfe gefragt und diese ja auch erhalten. Allerdings meist mit einem unterschwellig negativen Kommentar von Dir, was ich nicht wirklich gut finde. Zu mir: Ich bin alles Andere, als ein IT-Profi. Im Gegenteil!! Ich habe situationsbedingt den EDV-Bereich auf der Arbeit übernehmen müssen, da unser IT-ler uns vor ca. 2 Jahren verlassen hat. Ich war die einzige Person, die sich eben ein bisschen mit EDV auskennt. Ich habe keinerlei IT-Ausbildung oder irgendwelche Lehrgänge besucht!! Dazu wäre auch keine Zeit (und wahrscheinlich auch kein Geld da). Daher habe ich natürlich entsprechende Fragen, die ich dann in einem passenden Forum, wie eben dem "MCSE-Board" stelle. Die IT ist nicht mein Hauptjob hier. Ich mache eigentlich etwas völlig anderes. Die IT-Fragen kommen jedoch an mich und ich muss versuchen, sie irgendwie zu lösen. Leider sind wir eine sehr kleine Institution und haben somit auch nicht den finanziellen Background, um hier Unterstützung durch eine IT-Firma stemmen zu können. Vielleicht hast Du ja nun ein bisschen mehr Verständnis für meine Fragen. Es ist leider so, dass ich vom Arbeitsumfang her einfach nicht die Zeit habe, mir lange irgendwelche Testumgebungen zurecht zu bauen. Daher würde ich mich freuen, wenn man mir hier weiterhilft, was ja bisher auch schon sehr gut geschah. Danke und Grüße, imebro bearbeitet 4. Februar 2022 von imebro Zitieren Link zu diesem Kommentar
Nobbyaushb 1.475 Geschrieben 4. Februar 2022 Melden Teilen Geschrieben 4. Februar 2022 Moin, ich habe auch keine Ahnung von Scripting, sowas lass ich immer Leute machen, die sich mit sowas auskennen. Und als Empfehlung von mir: suche dir in der Nähe einen kompetenten Dienstleister, der dich bei solchen Dingen tatkräftig unterstützen kann. Spätestens wenn es nicht um scripting geht und eventuell was abstürzt hast du unter Umständen ein Problem. Solche Fragen können prima im Rahmen eines Workshops geklärt werden, vielleicht gibt es sogar ganz andere Ansätze. My 2 Cents… Zitieren Link zu diesem Kommentar
imebro 7 Geschrieben 4. Februar 2022 Autor Melden Teilen Geschrieben 4. Februar 2022 (bearbeitet) @Nobbyaushb Danke für Deinen Beitrag und die Tipps. Aber wie ich ja bereits geschrieben habe, sind wir nur eine SEHR kleine Institution, ohne den entspr. finanziellen Background. Darüber hinaus besteht meine eigentliche Aufgabe ja nicht aus IT. Hier geht es lediglich um ein kleines Lösch-Script und ich habe ja schon viel selbst recherchiert. Ich kann nicht so ganz nachvollziehen, warum mir als Forenmitglied die Hilfe nun plötzlich so erschwert wird. So wie ich es aus vielen anderen Foren kenne, in denen ich privat tätig bin, wird dort gerne geholfen, bis eben eine gute Lösung gefunden ist. Ich will hier nichts unterstellen!! Aber meine gestellte letzte Frage zu beantworten, dürfte doch jetzt nicht das große Problem sein... Es fühlt sich jedoch so an, als ob es hier um regelrechte Erziehungsmaßnahmen geht. Sowas kann ich kaum noch nachvollziehen. Das hier ist ein öffentliches Hilfe-Forum und ich habe nicht nach Belehrungen gefragt, sondern einfach um Hilfe bei einem Problem gebeten. Danke und Grüße, imebro bearbeitet 4. Februar 2022 von imebro Zitieren Link zu diesem Kommentar
cj_berlin 1.329 Geschrieben 4. Februar 2022 Melden Teilen Geschrieben 4. Februar 2022 vor einer Stunde schrieb imebro: Ich kann nicht so ganz nachvollziehen, warum mir als Forenmitglied die Hilfe nun plötzlich so erschwert wird. Dann ist es vielleicht einmal wieder an der Zeit, das Verhältnis zwischen Hilfesuchenden und Helfenden in einem IT-Forum für beruflich bedingte Fragen "an die Wand zu werfen": Du suchst Antworten auf eine Frage, die in Deinem Job aufgetreten ist. Ergo, Du erledigst diese Suche in Deiner Arbeitszeit. Wenn Dein Arbeitgeber das anders sieht, ist es Zeit für einen neuen. Darum kannst Du das übrigens nicht mit dem Gartenfreunde-Forum vergleichen, in dem alle privat unterwegs sind. Die Helfenden erledigen die Hilfe hingegen in Ihrer Freizeit. Um es ganz plastisch zu machen, sie helfen Dir bei Deinem Job statt dem eigenen Kind bei den Hausaufgaben. Daher musst Du alles dafür tun, die Zeit der Helfenden zu schonen und nicht umgekehrt. Und das kannst Du tun, indem Du dir die Basics dessen, worum es geht, selber aneignest, vorher recherchierst, selbst herumprobierst usw. Wie klein und arm Deine Institution ist, spielt dabei keine Rolle. Keine Arme >> keine Kekse. Wenn die Organisation klein, arm, aber gemeinnützig ist, kannst Du von Profis mitunter gegen Spendenquittung pro bono-Hilfe erhalten. Aber dann musst Du danach fragen und nicht nach Fortbildung in Grundlagen. Speziell zu PowerShell ist schon so viel im frei durchsuchbaren Internet geschrieben worden, dass man zu recht annehmen kann, der Fragende ist zu faul zum Googeln, wenn Grundlagen fehlen. Make sense? 1 Zitieren Link zu diesem Kommentar
imebro 7 Geschrieben 4. Februar 2022 Autor Melden Teilen Geschrieben 4. Februar 2022 ...vielen Dank für die weitere Belehrung. Mit einer solchen Einstellung kann man natürlich auch durch´s Leben gehen. Ich jedenfalls bin aus diesem Forum hier raus. Grüße, imebro Zitieren Link zu diesem Kommentar
Lian 2.436 Geschrieben 4. Februar 2022 Melden Teilen Geschrieben 4. Februar 2022 Hallo, ruhig Blut, es geht hier nicht darum Besucher, Gäste oder Mitglieder abzuweisen. Wir bieten als "IT Pro Community" Hilfe zur Selbsthilfe. Das hat mehrere Gründe: Sicherheit 1. Aus der Ferne kann man nur schwerlich beurteilen, welche Umgebung ein Fragesteller vor sich hat. Das kann nur der Fragesteller bzw. das jeweilige Mitglied beurteilen, das die Umgebung betreut und/oder dort arbeitet. Daher sind Ratschläge aus der Ferne mit Vorsicht zu genießen und daher lehnen sich die Helfer nicht aus dem Fenster. Das könnte sonst zu haarsträubenden Aktionen führen... Nachhaltigkeit 2. Wir helfen gerne geistig aufs Fahrrad - Fahrradfahren muss aber jeder selbst (siehe unter anderem wegen 1.) 3. "Gib einem Mann/einer Frau einen Fisch und du ernährst ihn/sie für einen Tag. Lehre einem Mann/einer Frau zu fischen und du ernährst ihn/sie für sein Leben." Ich glaube das Prinzip ist klar: Ohne, dass sich die Fragesteller mit dem Thema beschäftigen, können wir nicht seriös aus der Ferne helfen. > Wer will, versucht es bitte nochmal mit Hilfestellung. > Wer zu wenig Mitarbeit als Schwierigkeit sieht, bitte zurückhalten! Und nun bitte zurück zum Thema. Danke! 3 Zitieren Link zu diesem Kommentar
imebro 7 Geschrieben 4. Februar 2022 Autor Melden Teilen Geschrieben 4. Februar 2022 (bearbeitet) @Lian Schön, dass es auch noch Verständnis gibt... Zur Mitarbeit: Ich habe ja entsprechend mitgearbeitet und auch einen weiteren Code-Vorschlag selbst erstellt. Den wollte ich halt nur mal hier vorstellen mit der Frage, ob dieser Code so ok ist. Ich will halt auch keinen Code, der Dateien löscht, einfach mal so ausprobieren, was verständlich sein dürfte Am Ende geht es mir lediglich noch darum, wie ich den ja bereits funktionierenden SUCH-Code in den LÖSCH-Code umwandeln kann. Wie gesagt - hierzu habe ich bereits meinen Code hochgeladen. Und dann eben noch die Frage, wie ich aus dem Filter für die Suche, bzw. Löschung von Dateien ".doc" erweitere auf ".bak" (es sollen also alle .doc und .bak Dateien gelöscht werden). Das dürfte ja nun wirklich kein so großes Problem darstellen und erst recht nicht zu "haarsträubenden Aktionen" (siehe Dein Punkt 1) führen. Und auch dazu hatte ich ja bereits einen Code in meinen Thread eingefügt. Freue mich selbstverständlich über kompetente Hilfe für den noch kleinen Rest Zur Vereinfachung hier nochmal der von mir erweiterte Code mit dem Versuch, die ".doc" und ".bak" Dateien ebenso zu löschen: $folder = 'S:\' $filter = '*.doc?, *.bak?' $exclude = 'Archiv\\Datenschutz|Archiv\\Puetz\\Nachlässe|ADMIN\\S E C U R I T Y' $date = Get-Date '01.01.2012' # Nur Word-Dokumente mit Änderungsdatum älter als $date suchen Get-ChildItem $folder -File $_ -Filter $filter | -Recurse | Where-Object { ($_.LastWriteTime -lt $date) -and (($_.Fullname -notmatch $exclude)) } | Select-Object -ExpandProperty Fullname | remove-item -Force -whatif In diesem Code habe ich oben zusätzlich "$filter" eingesetzt und im Code weiter unten dann den Zusatz "$_ -Filter $filter". Und ich muss wohl am Ende lediglich das "-whatif" entfernen, um tatsächlich zu löschen... Danke und schöne Grüße, imebro bearbeitet 4. Februar 2022 von imebro Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 4. Februar 2022 Melden Teilen Geschrieben 4. Februar 2022 Warum probierst du deinen Code nicht einfach aus. Lies die Hilfe zu remove-item. Danach solltest du wissen was das macht. Wenn du ganz sicher gehen willst und dem "whatif" nicht traust, dann lass das "remove-item" weg und schaue was das Ergebnis ist. Niemand kennt deine Verzeichnisstruktur. Am Ende musst sowieso du entscheiden, ob du die richtigen Dateien zum Löschen ausgewählt hast. Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 4. Februar 2022 Melden Teilen Geschrieben 4. Februar 2022 Moin, in diesem Fall musst du AFAIK mit "-Include" anstelle "-Filter" arbeiten. Das bringt dann aber mit, dass du mit "$folder = 'S:\*'" suchen musst. Alternativ loope die verschiedenen Dateiendungen per "foreach()" durch. $folder = 'S:\*' $include = '*.doc?', '*.bak?' $exclude = 'Archiv\\Datenschutz|Archiv\\Puetz\\Nachlässe|ADMIN\\S E C U R I T Y' $date = Get-Date '01.01.2012' # Nur Word-Dokumente mit Änderungsdatum älter als $date suchen Get-ChildItem $folder -File -Include $include -Recurse | Where-Object { ($_.LastWriteTime -lt $date) -and (($_.Fullname -notmatch $exclude)) } | Remove-Item -Force -whatif # ------------------------------------------- $folder = 'S:\' $filter = '*.doc?', '*.bak?' $exclude = 'Archiv\\Datenschutz|Archiv\\Puetz\\Nachlässe|ADMIN\\S E C U R I T Y' $date = Get-Date '01.01.2012' # Nur Word-Dokumente mit Änderungsdatum älter als $date suchen foreach($f in $filter){ Get-ChildItem $folder -File -Filter $f -Recurse | Where-Object { ($_.LastWriteTime -lt $date) -and (($_.Fullname -notmatch $exclude)) } | Remove-Item -Force -whatif } Gruß Jan BTW.: Auf das "Select-Object" kannst du verzichten, da du ja ein Objekt bekommst, welches du löscht. 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.