Jump to content

w.sennecke

Members
  • Gesamte Inhalte

    92
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von w.sennecke

  1. Hallo,

     

    ich stehe vor dem Problem Dateien aus nur bestimmten Verzeichnissen aus einem Baum zu löschen.

     

    Beispiel:

     

    D:\Austausch\1\Input

    D:\Austausch\1\Output

    D:\Austausch\1\Processed

    D:\Austausch\2\Input

    D:\Austausch\2\Output

    D:\Austausch\2\Processed

    D:\Austausch\3\Input

    D:\Austausch\3\Output

    D:\Austausch\3\Processed

     

    Ich möchte nur aus dem Ordner Processed die Dateien löschen die älter als 1 Monat sind.

    Bisher habe ich immer folgendes Script verwendet:

    $Path = "D:\Austausch"
    $Daysback = "-30"
    $CurrentDate = Get-Date
    $DatetoDelete = $CurrentDate.AddDays($Daysback)
    Get-ChildItem $Path | Where-Object { $_.LastWriteTime -lt $DatetoDelete } | Remove-Item -force
    

    Was muss ich nun tun um nur im Verzeichnis "Processed" zu löschen?

     

    Vielen Dank im vorraus.

     

    Gruß,

    William

     

  2. $Body = Get-ADUser -Filter {LastLogonTimeStamp -lt $time -and enabled -eq $true} -Properties LastLogonTimeStamp | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp).ToString('yyyy-MM-dd_hh:mm:ss')}} | Out-String
    

    füge mal | Out-String hinten an.

     

    Super, es klappt!! Vielen vielen Dank. Kann ich als I-Tüpfelchen noch irgendwie absteigend nach Zeit sortieren?

  3.  

    Tach William,

     

    schau die mal das cmdlet Send-MailMessage an.

    Den Body für die Nachricht erstellst du einfach so:

    $Body = Get-ADUser -Filter {LastLogonTimeStamp -lt $time -and enabled -eq $true} -Properties LastLogonTimeStamp | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp).ToString('yyyy-MM-dd_hh:mm:ss')}} 
    

    Hi;

     

    leider bekomme es noch nicht so ganz hin. Das komplette Script sieht nun so aus:

    # Gets time stamps for all User in the domain that have NOT logged in since after specified date 
    import-module activedirectory  
    $domain = "domain.com"  
    $DaysInactive = 90  
    $time = (Get-Date).Adddays(-($DaysInactive)) 
    $Body = Get-ADUser -Filter {LastLogonTimeStamp -lt $time -and enabled -eq $true} -Properties LastLogonTimeStamp | select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp).ToString('yyyy-MM-dd_hh:mm:ss')}}
      
    send-mailmessage -to admins@domain.com -from admins@domain.com -Subject “Benutzeranmeldungen älter als 90 Tage” -body $Body -smtpserver mail.domain.com -encoding ([System.Text.Encoding]::UTF8)
    

    Es erscheint folgende Meldung:

    Send-MailMessage : "System.Object[]" kann nicht in den Typ "System.String" konvertiert werden, der für den Parameter "Body" erforderlich ist. Die angegebene Methode wird nicht unterstützt.

     

    Ich habe das Gefühl ich bin dicht dran. :)

     

    Hast du noch eine Idee?

  4. Hallo liebe Leute,

     

    ich habe eine kurze Frage an die Powershell Profis hier. Wir haben dieses Script im Einsatz, um nicht aktive Benutzer zu finden (Logon älter 90 Tage).

    Dies wurde bisher immer in eine CSV geschrieben. Nun besteht die Anforderung die Ausgabe als Email zu verschicken. Kann mir jemand da einen Tipp geben?

     

    Ich habe versucht nach dem select-object statt des export-csv mit send-mailmessage zu arbeiten. Leider bekomme ich es nicht hin.  Wäre super wenn jemand

    eine Lösung weiß.

    # Gets time stamps for all User in the domain that have NOT logged in since after specified date 
    import-module activedirectory  
    $domain = "domain.mydom.com"  
    $DaysInactive = 90  
    $time = (Get-Date).Adddays(-($DaysInactive)) 
      
    # Get all AD User with lastLogonTimestamp less than our time and set to enable 
    Get-ADUser -Filter {LastLogonTimeStamp -lt $time -and enabled -eq $true} -Properties LastLogonTimeStamp | 
      
    # Output Name and lastLogonTimestamp into CSV  
    select-object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp).ToString('yyyy-MM-dd_hh:mm:ss')}} | export-csv OLD_User.csv -notypeinformation
    

    Vielen Dank im voraus.

     

    Gruß,

    William

  5. Hallo,

     

    ich habe folgendes Powershell Script im Einsatz um Benutzer per Email über ihr ablaufendes Passwort zu warnen.

    Import-Module ActiveDirectory
    
    Get-ADUser -filter * -properties PasswordLastSet,EmailAddress,GivenName,Surname -SearchBase “OU=OUNAME,DC=DOMAIN,DC=de” -SearchScope Subtree |foreach {
    $PasswordSetDate=$_.PasswordLastSet
    $maxPasswordAgeTimeSpan = $null
    $maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    
    $today=get-date
    $ExpiryDate=$passwordSetDate + $maxPasswordAgeTimeSpan
    
    $daysleft=$ExpiryDate-$today
    
    $display=$daysleft.days
    $UserName=$_.GivenName
    $SurName=$_.Surname
    
    if (($display -eq 21) -or ($display -eq 14) -or ($display -eq 7))
    {
    $MyVariable = @”
    Sehr geehrte/r $UserName $Surname,
    
    Ihr Kennwort läuft in $display Tagen ab. Bitte ändern Sie es rechtzeitig.
    
    
    
    *** Diese Nachricht wurde automatisch generiert – bitte nicht darauf antworten. ***
    
    “@
    send-mailmessage -to $_.EmailAddress -from admins@domain.de -Subject “Info: Ihr Windows Kennwort wird in $display Tagen ablaufen” -body $MyVariable  -smtpserver mail.domain.de -encoding ([System.Text.Encoding]::UTF8)
    }
    }
    

    Nun besteht die Anforderung, dass nicht alle Benutzer informiert werden sollen. Lediglich die User die in einer bestimmten AD-Gruppe stecken sollen hierüber benachrichtigt werden.

    Kann mir jemand sagen wie ich das am einfachsten einbauen kann? Komme leider nicht weiter.

     

    Vielen Dank im voraus.

     

    MfG

    William

  6. Hallo zusammen,

     

    ich habe spaßeshalber mal folgenden Powershell Befehl abgesetzt

    Get-ADUser -LDAPFilter "(badPwdCount>=500)"
    

    dieser sollte mir die User anzeigen welche mehr als 500 mal ihr Passwort falsch eingegeben haben.

    Angezeigt wurde mir nur ein User, mein eigener. Da es ein Domänen Admin Account ist beunruhigt mich das ganze doch etwas.

    Versucht jemand mein Passwort herauszufinden oder schlummert doch irgendwo noch ein alter Dienst mit meinen Accountdaten?

     

    Gibt es eine Möglichkeit herauszufinden von welcher Maschine die Logins fehlschlagen? Dies würde mich ein ganzes Stück weiter bringen.

    Bisher habe ich noch nichts finden können.

     

    Vielen Dank im vorraus.

     

    Gruß

    William

  7. Hallo,

     

    ich muss das Thema nochmal vorkramen. Habe das selbe Problem und möchte die Mailboxen wieder aus meinem Outlook entfernen. Kann mir jemand sagen wie ich das bewerkstelligen kann? Die Berechtigung habe ich bereits entzogen. Jedoch auch nach einem Tag erscheinen die Namen der Postfächer in meinem Outlook. Öffnen lassen sich diese jedoch nicht mehr. Wie bekomme ich das bereinigt?

     

    Vielen Dank.

  8. Anforderung:

     

    - 18 SQL Datenbanken (2005/2008) verschiedener Anwendungsserver zu zentralisieren.

    - 24/7 Betrieb

    - Downtimes für Wartung etc. können eingeplant werden.

    - Redundanz für eine schnelle Verfügbarkeit (im Fehlerfall/Ausfall) soll gegeben sein.

    - Ein automatischer Failover ist nicht notwendig.

     

    Was bietet sich da an?

  9. Hallo,

     

    wir haben in unserem Unternehmen einige SQL Server im Einzatz. Diese wurden bisher immer mit auf dem jeweiligen Anwendungsserver installiert. Die Versionen reichen von SQL2005 bis SQL2008R2.

    Wir möchten nun diese SQL Server konsolidieren und eine höhere Verfügbarkeit erreichen. Die Anwendungsserver (samt SQL Server) laufen auf einer VMWare vSphere Umgebung.

     

    Meine Frage ist nun wie man am besten an die Sache heran geht. Welches Konzept würdet ihr verfolgen? Wie würdet ihr vorgehen?

     

    Grob habe ich mir vorgestellt, dass ein SQL Server mehrere Datenbanken hostet. Muss es für eine hohe Verfügbarkeit gleich ein Cluster sein? Welche Optionen gibt es noch?

     

    Für ein paar Vorschläge und Tipps wäre ich sehr dankbar.

     

    Mit freundlichen Grüßen

    W.Sennecke

  10. Bei einem 64-Bit System gibt es "Program Files" sowie "Program Files x86".

    Deshalb gibt es auch zwei Umgebungsvariablen.

     

    diese kann ich mir per echo auch ausgeben lassen. Der Pfad stimmt.

     

    Scheinbar gibt es irgendwie Probleme mit den Leerzeichen. Wenn ich den Pfad hart reinschreibe ("C:\Program Files (x86)") geht es auch nicht.

     

    Ich habe gerade spaßeshalber mal C:\Progra~2\PDFCreator versucht und siehe da es funktioniert.

     

    Progra~1 = Programme

    Progra~2 = Program Files (x86)

    Progra~3 = Program Files

     

    Gut dann mach ich es halt so.

    Trotzdem vielen Dank.

  11. Hi,

     

    versuche gerade für unserer Softwareverteilung ein VBS Script zu schreiben welches erkennt ob ein 32-Bit oder ein 64-Bit Windows installiert ist und dann den entsprechenden uninstall Befehl ausführt.

     

    Hier mein Script:

    On Error Resume Next
    
    Dim WshShell
    Dim OsType
    
    Set WshShell = CreateObject("WScript.Shell")
    
    OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")
    
    If OsType = "x86" then
    WshShell.Run "%programfiles%\PDFCreator\unins000.exe /silent",1,true
    elseif OsType = "AMD64" then
    WshShell.Run "%programfiles(x86)%\PDFCreator\unins000.exe /silent",1,true
    end if

     

    Leider wird der Befehl für den uninstall nicht ausgeführt. Wenn ich zum testen ein wscript.echo verwende funktioniert es aber. Kann mir jemand sagen was ich falsch mache?

     

    Vielen Dank

     

    Mit freundlichen Grüßen

    W.Sennecke

  12. Hallo,

     

    ich habe ein Problem, bei dem ihr mir vielleicht helfen könnt.

    Wir nutzen folder redirection per GPO um auf Windows 7 den Ordner Documents auf einen Fileserver umzulegen.

    Nun wollen unsere Laptop User auch mit ihrem Domänenlogin arbeiten wenn sie nicht mit dem Netz verbunden sind. Es soll nicht zwischen einem lokalen und dem Domänenprofil gewechselt werden. Soweit ist das ja auch kein Problem.

     

    Nur die folder redirection funkt dazwischen. Es lässt sich kein Explorer starten und ich bekomme die Fehlermeldung "Server konnte nicht gestartet werden" von der Explorer.exe.

     

    Lässt sich das irgendwie realisieren, dass die User offline mit Ihrem Domänenprofil arbeiten können? Wie löst ihr das so?

     

    Vielen Dank,

    William

  13. Hallo,

     

    ich habe schon seit einiger Zeit das nervige Problem, dass sich per WSUS verteilte Updates nicht von Usern ohne Adminberechtigung im laufenden Betrieb installieren lassen. Lediglich beim Herunterfahren ist dies möglich.

     

    Melde ich mich als Admin an kann ich die Updates per klick auf das Update Symbol installieren. Der Standarduser bekommt nur die Meldung das die Einstellungen vom Administrator verwaltet werden.

    Ich habe schon verschiedene GPO Einstellungen ausprobiert, jedoch bin ich noch nicht zu einer Lösung gekommen. Unter Windows XP kann der Standarduser die Updates selbst installieren.

     

    Hat jemand einen Tipp?

     

    Vielen Dank.

    William

  14. Hi,

     

    ich habe ein Formular veröffentlicht, welches jedem unserer Outlook User zur Verfügung gestellt werden soll. Das Formular habe ich bereits unter "Bibliothek für organisatorische Formluare" veröffentlicht.

     

    Nun geht es darum, den usern das öffnen zu erleichtern. Ist es irgendwie möglich dieses Formular in das Kontextmenü "Neu" von Outlook einzufügen?

     

    Anbei ein Bild in welchem Menü das Formular auftauchen soll:

     

    outlookci.jpg

     

    Hat jemand einen Tipp?

     

    MfG

    W.Sennecke

×
×
  • Neu erstellen...