Jump to content

Young Juiicehead

Members
  • Gesamte Inhalte

    9
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Young Juiicehead

  1. Dann beschäftige dich ein bischen mit .Net Scripting in Powershell. Dann kannst du alle Properties und Methods der Klasse nutzen.

    Ich habe jedenfalls keine Zeit dazu, dir dein Script fein zu tunen. Tipps natürlich jederzeit gerne!

     

    Ich will auch nicht das du mein ganzes Script fertig schreibst. Das ist nur ein Teil davon. Hättest mir nur diesen kleinen Teil machen können. Trotzdem Danke

  2. Ich bräuchte es für ein Script. Das heisst PowerShell:)

     

     

    Ich bräuchte es für ein Script. Das heisst PowerShell:)

     

     

     

    Der Quellcode bis jetzt:

     

    $folder = 'C:\Users\Testuser\Desktop\ScriptOrdner\' # Enter the root path you want to monitor.

    $filter = '*.*'  # You can enter a wildcard filter here.

     

    # In the following line, you can change 'IncludeSubdirectories to $true if required.                          

    $fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [iO.NotifyFilters]'FileName, LastWrite'}

     

    # Here, all three events are registerd.  You need only subscribe to events that you need:

     

    Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {

    $name = $Event.SourceEventArgs.Name

    $changeType = $Event.SourceEventArgs.ChangeType

    $timeStamp = $Event.TimeGenerated

    Write-Host "The file '$name' was $changeType at $timeStamp" -fore green

    Out-File -FilePath C:\Users\Testuser\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

     

    Register-ObjectEvent $fsw Deleted -SourceIdentifier FileDeleted -Action {

    $name = $Event.SourceEventArgs.Name

    $changeType = $Event.SourceEventArgs.ChangeType

    $timeStamp = $Event.TimeGenerated

    Write-Host "The file '$name' was $changeType at $timeStamp" -fore red

    Out-File -FilePath C:\Users\Testuser\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

     

    Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {

    $name = $Event.SourceEventArgs.Name

    $changeType = $Event.SourceEventArgs.ChangeType

    $timeStamp = $Event.TimeGenerated

    Write-Host "The file '$name' was $changeType at $timeStamp" -fore white

    Out-File -FilePath C:\Users\Testuser\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

    ich denke, du hast ein Skript mit FSW?

    btw: die Links beschreiben die FSW-Klasse in .Net.  .Net ist universal einsetzbar auch in PS.

     

    Quellcode:

     

    $folder = 'C:\Users\Testuser\Desktop\ScriptOrdner\' # Enter the root path you want to monitor.

    $filter = '*.*'  # You can enter a wildcard filter here.

     

    # In the following line, you can change 'IncludeSubdirectories to $true if required.                          

    $fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [iO.NotifyFilters]'FileName, LastWrite'}

     

    # Here, all three events are registerd.  You need only subscribe to events that you need:

     

    Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {

    $name = $Event.SourceEventArgs.Name

    $changeType = $Event.SourceEventArgs.ChangeType

    $timeStamp = $Event.TimeGenerated

    Write-Host "The file '$name' was $changeType at $timeStamp" -fore green

    Out-File -FilePath C:\Users\Testuser\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

     

    Register-ObjectEvent $fsw Deleted -SourceIdentifier FileDeleted -Action {

    $name = $Event.SourceEventArgs.Name

    $changeType = $Event.SourceEventArgs.ChangeType

    $timeStamp = $Event.TimeGenerated

    Write-Host "The file '$name' was $changeType at $timeStamp" -fore red

    Out-File -FilePath C:\Users\Testuser\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

     

    Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {

    $name = $Event.SourceEventArgs.Name

    $changeType = $Event.SourceEventArgs.ChangeType

    $timeStamp = $Event.TimeGenerated

    Write-Host "The file '$name' was $changeType at $timeStamp" -fore white

    Out-File -FilePath C:\Users\Testuser\Desktop\Outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

     

     

    Kann mir irgendwie nicht vorstellen wie das gehen sollte:/ ja mit FSW

  3. Moin Leute

     

    Nehmen wir an, es gibt einen Parentfolder mit dem Namen "Parentfolder". Im Parentfolder befinden sich weitere wichtige Ordner zb. Ordner01, Ordner02, etc. In diesen Unterordnern befinden sich nochmal weitere Ordner zb. Unterorder01, Unterordner02, etc. Wenn jemand den Unterorder01 verschiebt oder löscht, erscheint in einem Logfile "Parentfolder was changed at zb 14:00 Uhr".

    Nun zu meiner Frage. Ist es möglich das bei der Ausgabe (logfile) nicht der höchste Ordner (Parentfolder) sondern wie oben zb Ordner01 erscheint? Es ist einfach so, das bei uns sehr viele Ordner existieren und wen immer nur der "Parentfolder" angezeigt wird, hilft dies auch nicht weiter weil stündlich Sachen in den Ordnern gemacht werden.

  4. Wenn man es nicht probiert wird man es auch nicht erfahren ob es was bringt. Und du kannst es IMO nicht mal im Ansatz feststellen, ob eine solche Schulung etwas bringt oder nicht.

     

     

    Na dann weiterhin viel Erfolg bei der Ausführung deiner Aufgabe.

    Alles klar. Hab mal nachgefragt und es gab anscheinend schon zwei Schulungen bezüglich "alltägliche Probleme mit dem Computer". Wie ich schon vermutet habe, gibt es noch immer Mitarbeiter die "aus versehen" Ordner verschieben.

    Schlechte Voraussetzungen für so eine Aufgabe. ;) Erst recht, wenn man all die Kommentare mal so liest.

    Vielen Dank für deine hilfreiche Antwort ;)

  5. In https://social.technet.microsoft.com/Forums/de-DE/4993aa64-6db4-4cae-90bc-fe1aeb6cf1ac/ordnerberwachungsscript-powershell?forum=powershell_de schreibst Du dass es nicht möglich ist, über 350 MA zu schulen. Das wäre aber ganz sicher der bessere, und vor allem der richtigere Weg. Du kannst nicht ein soziales Problem mit Technik erschlagen. Ich habe schon Ordnerüberwachung mit .Net programmiert, glaub mir, Du kommst von einem Ausnahmefall zum nächsten. Schulungen durchführen und Berechtigungen korrigieren.

    Hallo

     

    Ja es wäre schon möglich, jedoch wird dies nie in Frage kommen und zu 80% würde dies gar nichts bringen. Meine Aufgabe ist es, ein Script zu schreiben um die verschobenen oder gelöschten Ordnern zu finden und nicht die User zu schulen.

  6. Hallo,

     

    Prinzipiell ist dafür die Klasse "FileSystemWatcher" geeignet

    https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystemWatche-dfd7084b

     

    Natürlich kann man mit Powershell auch nach einem verschobenen Ordner suchen.

    https://technet.microsoft.com/en-us/library/hh849800.aspx

     

    Schon etwas älter, dafür gut abgehangen, sind die ETW-Events unter WMI

    https://msdn.microsoft.com/en-us/library/aa826686(v=vs.85).aspx

     

    Deine Aufgabe hört sich eventuell etwas einfacher an, als sie tatsächlich ist, da die Nebenbedingungen eine große Rolle beim Bau einer sinnvollen Lösung spielen dürften.

     

    blub

    Danke für deine Antwort blub

     

    Das die Aufgabe einfach wäre, habe ich am Anfang auch gedacht. Jetzt ist mir aber Bewusst, das die Aufgabe gar nicht so einfach ist:D

    Ich werde schauen was ich machen kann. Deine Tipps sind hilfreich, danke!

     

    Juiicehead

    Schau doch mal hier - da hat jemand mit einem ähnlichen Namen wie Deinem, haargenau die gleiche Frage gestellt:

     

    https://social.technet.microsoft.com/Forums/de-DE/4993aa64-6db4-4cae-90bc-fe1aeb6cf1ac/ordnerberwachungsscript-powershell?forum=powershell_de

    :D

    Moin,

     

    soll es eine Überwachung, d.h. ein ständig laufender Vorgang sein, zeitgesteuert? Überwachung bestimmter Ordner? Oder eine Suche bei Bedarf, Anlass?

    Hallo lefg

     

    Zeitgesteuert wäre genial, jedoch ist es sicher aufwendiger und es wäre für ein Nichtprogrammierer sehr aufwendig oder nicht? Eine Ordnerstruktur soll bewacht werden mit ca. 300 Ordner.

    Eine weitere Möglichkeit, wäre es auch, wenn am Anfang eine TextBox erscheint und man nach einem bestimmten Ordner suchen kann. Jedoch ist dies auch etwas komplizierter:/

     

    Juiicehead

  7. Guten Abend Miteinander

    Ist es möglich, ein Script für eine Ordnerüberwachung zu erstellen. Das heisst, falls ein Ordner in der Ordnerstruktur gelöscht oder verschoben worden ist, kann man mittels Script herausfinden, wo der verschobene Ordner abgelegt worden ist? Das Script sollte nach der Suche ein Logfile erstellen, der die entsprechenden Resultate liefern soll. Ist dies überhaupt möglich? Wenn ja, wäre ich froh wenn ihr mir einige Tipps geben könntet wie ich anfangen soll. Eine weitere Möglichkeit wäre es explizit nach dem Ordner zu suchen. Kann dies auch durch ein Script geschehen? Falls Nein, gibt es vielleicht eine andere Methode den verschobenen Ordner zu finden?

    Vielen Dank für eure Bemühungen

    Lg
    Juiicehead

×
×
  • Neu erstellen...