Hippo 11 Geschrieben 17. November 2017 Melden Geschrieben 17. November 2017 Hallo, ich habe mir ein kleines Powershell Script zusammengebastelt, das mir einen AD-Benutzer anlegt. Um ein Kontoablaufdatum festzulegen, benutze ich das Objekt "System.Windows.Forms.MonthCalendar". Der Kalender erscheint, ich markiere ein Datum und schreibe das Datum in eine Variable (&Datum). Der Inhalt von $Datum ist z.B. 01.01.2018 00:00:00 (Write-Host $Datum) Zum Anlegen eines neuen Benutzers benutze ich New-ADUser mit dem Parameter -AccountExpirationDate $Datum Schaue ich mir jetzt das Ablaufdatum des Benutzers mit Active Directory-Benutzer und -Computer an, dann ist es immer ein Tag vor dem eingegeben Kalenderdatum, in dem Beispiel der 31.12.2017. Hat jemand eine Idee woran das liegen kann?
marcx2 10 Geschrieben 17. November 2017 Melden Geschrieben 17. November 2017 Hi, passiert das auch wenn du das Datum manuell übergibst? Oder übergeb doch mal nur das Datum, ohne Uhrzeit? Kannst das Datum ja kürzen mit z.B. (Get-date).ToShortDateString() Grüße
Hippo 11 Geschrieben 17. November 2017 Autor Melden Geschrieben 17. November 2017 Das Kürzen bringt auch keine Verbesserung -AccountExpirationDate $($datum.ToShortDateString()). Habe gerade festgestellt, dass wenn ich einen Benutzer mit -AccountExpirationDate 01.01.2018 anlege, dann sehe ich unter Active Directory-Benutzer und -Computer auch den 31.12.2017. Vielleicht ist das einfach so :-(
Dukel 468 Geschrieben 17. November 2017 Melden Geschrieben 17. November 2017 Was passiert wenn du das Datum mit einer Uhrzeit > 0:00 Uhr setzt? z.B. get-date "1.1.2018 1:00"
Hippo 11 Geschrieben 17. November 2017 Autor Melden Geschrieben 17. November 2017 Das ist ja wie mein erster Versuch. Dort habe ich ja Datum und Uhrzeit übergeben. 01.01.2018 00:00:00.
marcx2 10 Geschrieben 17. November 2017 Melden Geschrieben 17. November 2017 (bearbeitet) Und wenn du als Ex. Date den 02.01 angibst, wird da der 01.01 draus? oder übergeb das ganze hinten an Set-ADAccountExpiration -DateTime (hab das aber noch nie versucht) ! bearbeitet 17. November 2017 von marcx2
Dukel 468 Geschrieben 17. November 2017 Melden Geschrieben 17. November 2017 Das ist ja wie mein erster Versuch. Dort habe ich ja Datum und Uhrzeit übergeben. 01.01.2018 00:00:00. Hast du dann 00:00 oder 1:00 übergeben? Oder evtl. noch höher. 12:00
marcx2 10 Geschrieben 17. November 2017 Melden Geschrieben 17. November 2017 Wenn keine Uhrzeit angegeben wird, dann "assumed" Powershell 12:00Uhr mittags lokale Zeit
Dukel 468 Geschrieben 17. November 2017 Melden Geschrieben 17. November 2017 Nein. 0 Uhr bzw. 24 Uhr: get-date "1.1.18" |fl * DisplayHint : DateTime DateTime : Montag, 1. Januar 2018 00:00:00 Date : 01.01.2018 00:00:00 [...] TimeOfDay : 00:00:00
MurdocX 1.004 Geschrieben 18. November 2017 Melden Geschrieben 18. November 2017 Als erstes muss man sich das Feld mit seiner Eigenschaft etwas genauer ansehen, bevor versucht wird Daten zu übergeben. [ Attribute accountExpires ] https://msdn.microsoft.com/en-us/library/cc221084.aspx Dann stellt man fest, das es dieses Feld das Format "FileTime" benutzt. In dieses Format sollten die Daten vorher konvertiert werden. $Date = [DateTime]::new(2017,12,26,23,59,00) $Date.ToFileTime() Das Ergebnis kannst du dann übergeben. 26.12.2017 um 23:59:00
Hippo 11 Geschrieben 20. November 2017 Autor Melden Geschrieben 20. November 2017 Hallo MurdocX, danke für die Hilfe.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden