none
Verzeichnisse auslesen ( Ordner und Dateien + Erstellungs- und Änderungsdatum) RRS feed

  • Frage

  • Hallo,

    Ich bin der Maikel, ich habe bisher kaum mit PS gearbeitet und bin auch nicht der Programmierer.

    Ich muss dennoch ein PS Skript erstellen, dass Verzeichnisse ausliest. Es soll anschließend eine E-Mail senden, dort drin soll halt stehen welche Ordner und Dateien sich im Verzeichnis befinden mit Erstellungs- und Änderungsdatum.

    Ich würde euch bitten mir zu helfen. Bitte detailliert alles aufschreiben (Code und Schritte die zu machen sind), da ich wie schon geschrieben ein großer Anfänger bin!.

    Danke :)

    Freitag, 22. Juni 2012 10:32

Antworten

  • Hallo Maikel,

    da schließe ich mich Peter an; Sinn des Forums ist es, Hilfestellung zu geben, nicht Deine Arbeit zu machen.

    Zudem lohnt es sich, sich mit PowerShell zu beschäftigen, den die Power steckt hier nicht nur im Namen. Das Auflisten der Order+Dateien aus einem Verzeichnis ist eigentlich nur ein einfacher 1-Zeiler an Script Code:

    [String] $folder="C:\temp";
    Get-ChildItem -Path $folder | SELECT Attributes, Name, CreationTime | Format-Table -AutoSize;


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing


    Freitag, 22. Juni 2012 11:06
  • Wenn du auch alle Unterordner auslesen möchtest dann nimmst du den Parameter -recurse

    [String] $folder="C:\temp";
    Get-ChildItem -Path $folder -recurse | SELECT Attributes, Name, CreationTime | Format-Table -AutoSize;

    Deshalb die Frage was du genau möchtest ;-)


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '



    • Bearbeitet Peter Kriegel Freitag, 22. Juni 2012 11:16
    • Als Antwort markiert pakito1992 Mittwoch, 4. Juli 2012 12:14
    Freitag, 22. Juni 2012 11:16
  • Mit der LastWriteTime Eigenschaft des File Objektes:

    [String] $folder="C:\temp";
    Get-ChildItem -Path $folder | SELECT Attributes, Name, CreationTime, LastWriteTime | Format-Table -AutoSize;

    Siehe auch TechNet Get-ChildItem für mehr Infos zu dem CmdLet.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    • Als Antwort markiert pakito1992 Freitag, 22. Juni 2012 11:53
    • Tag als Antwort aufgehoben pakito1992 Freitag, 22. Juni 2012 11:53
    • Als Antwort markiert pakito1992 Mittwoch, 4. Juli 2012 12:14
    Freitag, 22. Juni 2012 11:42

Alle Antworten

  • Hallo Maikel ! Willkommen!

    Wir machen gerne für dich, deine PowerShell Übungsaufgaben ;-)

    Bitte beschreib mal genauer wie die Verzeichnisse ausgelesen werden sollen bzw welches Ergebnis  bei diesem Schritt erwartet wird.
    Das mit der E-Mail ist dann erst der zweite schritt.


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '



    Freitag, 22. Juni 2012 10:42
  • Hallo, danke fürs Helfen :)

    Wie schon oben erwähnt, soll es in einem bestimmten Verzeichnis den Inhalt bzw. die darin befindenen Ordner und Dateien auslesen +  deren Erstellungs- und Änderungsdatum. Oder habe ich deine Frage nicht richtig verstanden?

    Freitag, 22. Juni 2012 10:50
  • Hallo Maikel,

    da schließe ich mich Peter an; Sinn des Forums ist es, Hilfestellung zu geben, nicht Deine Arbeit zu machen.

    Zudem lohnt es sich, sich mit PowerShell zu beschäftigen, den die Power steckt hier nicht nur im Namen. Das Auflisten der Order+Dateien aus einem Verzeichnis ist eigentlich nur ein einfacher 1-Zeiler an Script Code:

    [String] $folder="C:\temp";
    Get-ChildItem -Path $folder | SELECT Attributes, Name, CreationTime | Format-Table -AutoSize;


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing


    Freitag, 22. Juni 2012 11:06
  • Wenn du auch alle Unterordner auslesen möchtest dann nimmst du den Parameter -recurse

    [String] $folder="C:\temp";
    Get-ChildItem -Path $folder -recurse | SELECT Attributes, Name, CreationTime | Format-Table -AutoSize;

    Deshalb die Frage was du genau möchtest ;-)


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '



    • Bearbeitet Peter Kriegel Freitag, 22. Juni 2012 11:16
    • Als Antwort markiert pakito1992 Mittwoch, 4. Juli 2012 12:14
    Freitag, 22. Juni 2012 11:16
  • Danke erstmal, und wie bekommt man auch das Änderungsdatum?
    Freitag, 22. Juni 2012 11:35
  • Mit der LastWriteTime Eigenschaft des File Objektes:

    [String] $folder="C:\temp";
    Get-ChildItem -Path $folder | SELECT Attributes, Name, CreationTime, LastWriteTime | Format-Table -AutoSize;

    Siehe auch TechNet Get-ChildItem für mehr Infos zu dem CmdLet.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    • Als Antwort markiert pakito1992 Freitag, 22. Juni 2012 11:53
    • Tag als Antwort aufgehoben pakito1992 Freitag, 22. Juni 2012 11:53
    • Als Antwort markiert pakito1992 Mittwoch, 4. Juli 2012 12:14
    Freitag, 22. Juni 2012 11:42
  • Vielen Dank, habe das jetzt alles angepasst. Nun kommen wir zum zweiten Schritt, der Email.

    Wie geht das?

    Freitag, 22. Juni 2012 11:47
  • Get-Help Send-MailMessage -Full | More

    und

    Get-Help Send-MailMessage -Examples | more


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '


    Freitag, 22. Juni 2012 11:49
  • ... unter Link zum Nachlesen, was man damit alles machen kann: TechNet Send-MailMessage


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    Freitag, 22. Juni 2012 11:58
  • Ich verstehe leider nicht wie man dann den Befehl für die Email einbindet, sodass die zuvor ausgelesenen Infos per Email verschickt werden.
    Freitag, 22. Juni 2012 11:59
  • Schau dir in der PowerShell Hilfe (auch Olaf´s Link ) die Beispiele an (Examples) und die musst du auf deine Umgebung anpassen (E-mail adressen, E-mail Server)

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    Freitag, 22. Juni 2012 12:05
  • Ja kla, das weiß ich ja. Aber erstmal muss ja der erste Befehl eingefügt werden.

    Danach muss man doch auch einen Befehl einfügen dass die oberen Informationen per Email gesendet werden sollen oder nicht?

    Wie kann man denn den zweiten mit dem ersten Befehl "kombinieren"?

    Freitag, 22. Juni 2012 12:08
  • Falsche Vorgehensweise!

    Verschick doch erstmal eine E-Mail, mit einem einfachen Text darin !
    Wenn das Klappt, dann können wir die beiden schritte "zusammenkleben".


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    Freitag, 22. Juni 2012 12:12
  • function sendmail($body)
    {
    $filename = "C:\Users\xx\Desktop\Neues Textdokument.txt"
    $SmtpClient = new-object system.net.mail.smtpClient
    $MailMessage = New-Object system.net.mail.mailmessage
    $att = new-object Net.Mail.Attachment($filename)
    $SmtpClient.Host = "195.145.226.131"
    $mailmessage.from = "postmaster@xx.de"
    $mailmessage.To.add("dd@xx.de")
    $mailmessage.Subject = “Verzeichnisinhalt”
    $MailMessage.IsBodyHtml = $true
    $mailmessage.Body = $body
    $mailmessage.Attachments.Add($att)
    $smtpclient.Send($mailmessage)
    }

    $body = "hhhhh"
    sendmail $body

    Das klappt leider nicht.

    $SmtpClient.Host = der SMTP Server oder?

     
    Freitag, 22. Juni 2012 12:29
  • Warum so umständlich über einen SmtpClient und nicht über das Send-MailMessage CmdLet; das ist nur ein Aufruf mit ein paar Parametern?

    Ja, mit Host ist der Name des zu verwendenen Smtp Mailserver gemeint; bei Send-MailMessage heisst der Parameter sogar gleich "SmtpServer".


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    Freitag, 22. Juni 2012 12:39
  • Genau !

    Versuch das mal so:

    Send-Mailmessage `
    -from "E-Mail-Von-Adresse@Web.de" `
    -to "E-Mail-AN-Adresse@Web.de" `
    -subject "Text der Betreffzeile hier eingeben" `
    -body "Hier wird der Emailtext eingegeben" `
    -smtpServer smtp.fabrikam.com # <--- hier den Mailserver eintragen der die E-mail versenden soll

    So ich muss jetzt weg !
    Schönes Fussball Wochenende!


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '


    Freitag, 22. Juni 2012 12:58
  • Ich versteh das ganze nicht ganz...
    Freitag, 22. Juni 2012 13:09
  • Was konkret verstehst Du nicht?

    Send-MailMessage erledigt alles, was Du davor als längers Script hattest. Über die Parameter gibst Du die gewünschten Werte an, z.B. mit "-smtpServer smtp.fabrikam.com" den Smtp Server Alias Host.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    Freitag, 22. Juni 2012 13:27
  • Wenn der Parameter To kommt, geht es nicht weiter. Es kommt danach weitere "To"s, also To1, To2 usw
    • Bearbeitet pakito1992 Freitag, 22. Juni 2012 13:35
    Freitag, 22. Juni 2012 13:34
  • Weil es mehrer Empfänger geben kann; einfach den nächsten Parameternamen wie -Subject eingeben.

    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    Freitag, 22. Juni 2012 13:54
  • Klappt nicht, egal ob -Body oder ein anderer Befehlt, es kommen immer nur weitere "To"s
    Freitag, 22. Juni 2012 14:21
  • Nein wenn ein weiteres To abgefragt wird MUSS ein leeres TO mit der Enter taste bestätigt werden. Damit PowerShell weiss das es keine weiteren empfänger mehr gibt.

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '


    Freitag, 22. Juni 2012 15:13
  • Du siehst, es ist gar nicht so leicht jemanden dem alle Grundlagen fehlen über ein Forum etwas beizubringen.

    Öffne mal die PowerShell ISE (Integrated Script Environment)
    Dies kannst du auf verschiedenen Arten tun:
    1.    “Windows > Start > Alle Programme > Zubehör > Windows PowerShell > PowerShell ISE”
    2.    Im Eingabe Feld:  “Windows > Start > Programme / Dateien durchsuchen“ gibst du folgenden Befehl ein: PowerShell_ISE
    3.    Öffne eine PowerShell und gib folgenden Befehl ein: PowerShell_ISE

    Danach hast du die PowerShell ISE zu Verfügung zum bediener der ISE kannst du dir folgendes Youtube Video anschauen (englisch) : http://www.youtube.com/watch?v=I-M3Lx-1ay0

    PowerShell ISE 2.0

    Nun kopierst du meinen  E-Mail Code mit dem Send-Mailmessage Cmdlet in den oberen Skriptbereich.
    Der Skriptbereich ist nichts anders als ein Texteditor.
    Dort kannst du bei den Parametern die Angaben ändern.
    Bitte ändere nur die Angaben bei den Parametern -from, -to und –smtpServer  alles andere lass so wie es ist.
    Es kann sein das dein smtpServer die Angabe von deinem Mailkonto benötigt.
    Dann musst du dem Mailserver noch dein Usernamen und dein Passwort angeben, dies macht man mit dem Parameter –credential.

    Mit welchem Mail Provider möchtest du deine E-Mail versenden ? Web.de? GMX ? Telekom?

    Send-Mailmessage `
    -from "E-Mail-Von-Adresse@Web.de" `
    -to "E-Mail-AN-Adresse@Web.de" `
    -subject "Text der Betreffzeile hier eingeben" `
    -body "Hier wird der Emailtext eingegeben" `
    -smtpServer smtp.fabrikam.com # <--- hier den Mailserver eintragen der die E-mail versenden soll


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '


    Montag, 25. Juni 2012 06:29
  • Hallo,

    tut mir leid dass ich mich erst jetzt wieder melden konnte.

    Ich habe es jetzt endlich geschafft, nach mehreren Tagen Arbeit.

    Jetzt möchte ich aber noch folgendes einbauen,

    Dieses Skript soll ja automatisch laufen, wenn es beim Auslesen des Verzeichnisse eine Veränderung bemerkt (Größe einer Datei/Ordners hat sich verändert, mehr oder weniger Dateien im Verzeichnis) soll es eine Email versenden, ansonsten nicht.

    Hier mein bisheriger Code:

    [String] $folder="C:\Users\XX\Desktop\PS Skript";
    Get-ChildItem -Path $folder | SELECT Attributes, Name, CreationTime, LastWriteTime, Length | out-File "C:\Users\XX\Desktop\PS Skript\Log.txt"

    # Größe in MB: @{Name="Size(MB)";Expression={$_.Length /1MB}}

    # Change these values
    $Logfile = "C:\Users\XX\Desktop\PS Skript\Log.txt"
    $EmailFrom = "test@testde"
    $EmailTo = "test2@test.de"
    $EmailBody = "Geschafft"
    $EmailSubject = "PS Test"
    $SMTPServer = "xxx.xxx.xxx.xxx"

    # Send E-mail message with log file attachment
    $Message = New-Object Net.Mail.MailMessage($EmailFrom, $EmailTo, $EmailSubject, $EmailBody)
    $Attachment = New-Object Net.Mail.Attachment($Logfile, 'text/plain')
    $Message.Attachments.Add($Attachment)
    $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer)
    $SMTPClient.Send($Message)


    • Bearbeitet pakito1992 Montag, 2. Juli 2012 09:47
    Montag, 2. Juli 2012 09:46
  • Ich empfehle dir da die .NET Klasse Filesystemwatcher zu nehmen:
    http://www.powershellpraxis.de/FileMonitoring.1176.0.html

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    Montag, 2. Juli 2012 10:06
  • Danke für die Antwort.

    Ich habe gerade bemerkt dass das Skript nicht Ordnergröße ausliest, falls Ordner vorhanden sind, sondern nur die Größe der Dateien. Wie kann man dies ändern?

    Montag, 2. Juli 2012 10:41
  • Versuch dich bitte ein wenig klarer auszudrücken!
    Du meinst sicherlich das du die Ordner grösse, mitsammt aller Unterordner und den darin befindlichen Dateien haben möchtest!?
    Da ist die Internet suche dein Freund!

    Das geht mit dem Parameter -Recurse bei dem Cmdlet Get-Childitem!
    Bei Verzeichnissen mit vielen Dateine dauert das sehr lange, da PowerShell alle Dateien "anfassen" muss.

    # Grösse eines Verzeichnisses ermitteln. Inklusive aller Unterverzeichnisse (-Recurse)
    (Get-ChildItem -Path 'C:\Temp' -Recurse | Measure-Object -sum -property Length).sum
    Dein Skript wir dann so aussehen:
    $folder='C:\Users\XX\Desktop\PS Skript'
    $Logfile = 'C:\Users\XX\Desktop\PS Skript\Log.txt'
    
    # Dateiliste erstellen, mit allen unterverzeichnissen (-Recurse)
    $Dateiliste = Get-ChildItem -Path $folder -Recurse | SELECT Attributes, Name, CreationTime, LastWriteTime, Length
    
    # Geammtgrösse des Verzeichnisses berechnen
    $GesammtGroesse = ($Dateiliste | Measure-Object -sum -property Length).sum
    
    # Dateiliste in Datei schreiben
    Out-File -InputObject $Dateiliste -FilePath $Logfile
    
    # Grösse des gesammten Verzeichnissen an die Datei anhängen (-Append)
    Out-File -InputObject $('Gesammt grösse des Verzeichnisses: ' + ($GesammtGroesse / 1MB) + "MB") -FilePath $Logfile -Append
     
    # E-Mail senden
    Send-MailMessage -From "test@testde" -To "test2@test.de" -Body "Geschafft" -Subject "PS Test" -SmtpServer "xxx.xxx.xxx.xxx" -Attachments $Logfile



     


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    Montag, 2. Juli 2012 12:51
  • Nein das meinte ich nicht, das habe ich auch selber hinbekommen.

    Das Skript speichert in dem Log auch die Größe jeder Datei (in Bytes).

    Jedoch liest bzw. speichert es nicht im Log die Größe eines Ordners der in diesem Verzeichnis liegt.

    Montag, 2. Juli 2012 13:12
  • Ein Ordner hat keine Grösse !
    Nur die Dateien die in dem Ordner liegen haben eine grösse!
    Deshalb musst du für jeden Ordner der in deinem Ordner liegt die Grösse ermitteln:

    # Grösse eines Verzeichnisses ermitteln. Inklusive aller Unterverzeichnisse (-Recurse)
    (Get-ChildItem -Path 'C:\Temp' -Recurse | Measure-Object -sum -property Length).sum
    Etwa so !???:

    $folder='C:\Users\XX\Desktop\PS Skript'
    $Logfile
    = 'C:\Users\XX\Desktop\PS Skript\Log.txt'
    Get-ChildItem $folder | Where-Object {$_.PSIsContainer -eq $True} | Select-Object -property Fullname,@{Name="Size"; Expression = { [int](Get-ChildItem -Path $_.FullName -Recurse | Measure-Object -sum -property Length -ErrorAction SilentlyContinue ).sum}} | Format-Table -AutoSize | Out-File -FilePath $Logfile -Append



    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '



    Montag, 2. Juli 2012 13:59
  • Maikel ist dein Problem gelöst? Wenn ja markiere bitte alle die Einträge, die Fragen von dir beantwortet haben als "Antwort" (der Button hierzu befindet sich unter jedem Eintrag).

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".



    Mittwoch, 4. Juli 2012 10:51
    Moderator