Jump to content

Osel

Members
  • Gesamte Inhalte

    5
  • Registriert seit

  • Letzter Besuch

Über Osel

  • Geburtstag 01.04.1969

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

Fortschritt von Osel

Apprentice

Apprentice (3/14)

  • Eine Woche dabei
  • Einen Monat dabei
  • Erste Antwort
  • Erster eigener Beitrag

Neueste Abzeichen

0

Reputation in der Community

  1. Moin, ich vergesse sehr gern bei automatisierten Scripts das Arbeitsverzeichnis richtig zu setzen. Starte ich meine Scripte manuell funktioniert alles - als Task nicht ...
  2. Hallo BOfH_666, vielen Dank für Deine Mühe und Deine Erklärungen! Und vielen Dank für das zweite Beispiel!!! Markus
  3. Hallo BOfH_666, tut mir leid für mein missverständliches Ausdrücken. Der Code aus dem ersten Post funktioniert. Die vielen nicht funktionierenden Versionen wollte jetzt nicht alle posten. Bis auf Zeile 5 (natürlich ohne die Nummerierung) funktioniert das Script. Ich möchte jetzt eine Ausgabe erzeugen mit den Eigenschaften FullName, LastWriteTime (aus dem Get-ChildItem (Objekt?)) und Owner (aus dem Get-ACL (Objekt?)) Als Beispiel dieser (letzter) gescheiterte Versuch (1) get-childitem -Path "U:\Eigene Dateien\Privat" -Recurse -filter *.pdf -PipelineVariable 'mDatei'| (2) Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-300)} | (3) Get-acl | (4) Where-Object {$_.owner -like '*q0219005*'} | (5) Select-Object $mDatei.FullName, $mDatei.LastWriteTime, owner Fehler: Select-Object : Der Wert eines Parameters war NULL. Einer der folgenden Typen wurde erwartet: {System.String, System.Management.Automation.ScriptBlock}. In Zeile:5 Zeichen:17 + ... Select-Object $mDatei.FullName, $mDatei.LastWriteTime, ow ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Select-Object], NotSupportedException + FullyQualifiedErrorId : DictionaryKeyUnknownType,Microsoft.PowerShell.Commands.SelectObjectCommand Vielleicht beschreibe ich mein Problem so: Ich habe noch Verständnisprobleme mit dem Ansprechen einer Variable. $_. ist z. B. eine Besonderheit von dem where-object. Ich glaube auch zu wissen, dass immer nur ein Objekt über die Pipe "wandert". Ich hoffte, das würde vielleicht an der Schreibweise liegen ("Objektorientiert"?). Ich fürchte aber, dass wenn "ich" in Zeile (5) angekommen bin, ich auf das Objekt in Zeile (1) nicht mehr zugreifen kann. Deshalb habe ich auch angefangen mich für Variablen zu interessieren - bislang aber 0 Erfolg. Was ich bisher an Tipps & Ticks gefunden habe, hört da auf, wo es spannend wird (für mich). Vielleicht kannst Du mich in die richtige Richtung schubsen? Ich kann die Ausgabe von Get-Childitem in einer Variable speichern und ich kann die Ausgabe von Get-ACL in einer Variable speichern. Beides auch anzeigen lassen. Die nächste Variante wäre nun mich zu entscheiden, welche Liste ich in einer Variable speichern möchte und die dann mit einer Schleife abzuarbeiten. Ich wollte es aber (aus meiner Sicht) nicht "so komplex" werden lassen. Mir würde es schon reichen wenn Du zu meinem fehlerhaften Script sagst: Schreib es so und so oder auch Vergiss es, es geht nur mit einer Schleife. Meine Dateien bekomme ich ja gelöscht. Ich möchte doch vorher nur eine "schöne" Anzeige erstellen der Dateien, die gelöscht werden ... Vielen Dank für Deine Zeit & Geduld Markus Ich Dösel! Vielen Dank für Deine Lösung. Die funktioniert natürlich, wenn der Fragende auch richtig liest und kopiert. Du bist ein Guter! Markus
  4. Hallo BOfH_666, vielen Dank! das hatte ich befürchtet: Ich sehe den Wald vor lauter Bäumen nicht. Mit Variablen hatte ich auch experiment. Die Ergebnisse werden auch in zwei Variablen gespeichert und angezeigt. Hier hatte ich bisher auch das Problem, dass ich diese Variablen "am Ende" (auch mit Select-Objekt) nicht ansprechen konnte. Ich habe gelernt, dass Variablen ja global oder nur innerhalb eines Blocks gültig sind. Vermutlich muss ich in dieser Richtung weitersuchen ... Vielen Dank für den Hinweis! mach ich. Versprochen. Vielen Dank!
  5. Moin zusammen, bisher konnte ich all meine kleinen Problemchen anhand Euer Hinweise und Tipps erfolgreich lösen - mehr oder weniger elegant . Vielen Dank also auch von mir! Allerdings fehlt mir an der einen oder anderen Stelle immer noch ein gewisses Grundverständnis. Momentan habe ich wieder etwas mehr Zeit zum Üben & Testen, aber diesmal komme ich nicht wirklich voran. Hier zum Beispiel: get-childitem -Path "U:\Eigene Dateien" -Recurse -filter *.pdf | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-365)} | Get-acl | Where-Object {$_.owner -like '*q0219005*'} Die Aufgabe (gelöst): Lösche alle PDF von einem bestimmten (in meinem Fall technischen) User, die älter (oder neuer) als x Tage sind. Das Remove-Item habe ich vorsichtshalber hier weggelassen. Zur vorherigen Kontrolle führe ich die Zeilen einzeln aus und gucke, ob das Ergebnis "einigermaßen" hinkommt - ich weiß: weniger elegant ... Ich versuche nun, Informationen beider Objekte (get-childitem-Objekt & get-acl-Objekt) auszugeben. Meine kreativen Versuche werden allesamt mit den unterschiedlichsten Fehlerhinweisen quittiert :-( Zum Beispiel möchte ich zur Kontrolle anstelle des Remove-Item mir vorher die Liste der zu löschenden Dateien ausgeben lassen. Also sinngemäß: get-childitem -Path "U:\Eigene Dateien\Privat" -Recurse -filter *.pdf | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-300)} | Get-acl | Where-Object {$_.owner -like '*q0219005*'} | Write-host $_.LastWriteTime, $_.Owner, $_.FullName Lohnt sich das Weiterforschen? Oder bin ich auf dem Holzweg, weil das gar nicht funktionieren kann und ich sollte mich so langsam mal mit einem "echten" (mehrzeiligem) Script beschäftigen? Vielen Dank für jeglichen Hinweis. Markus
×
×
  • Neu erstellen...