Jump to content

Beginner18

Members
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Beginner18

  • Rank
    Newbie
  1. Mit einem normalen CSV-Export habe ich es auch hinbekommen. Jetzt wollte ich es direkt mit Formatierung in eine Excel Datei konvertieren und da habe ich jetzt mein Problem. Ich meinte das dieses Forum genau dafür ist? Um Fragen zu stellen und genau darauf eine Antwort oder eine Hilfestellung zu bekommen. Leider konnte ich durch Google, bei dem Thema, auch keine genaue Antwort finden. Wenn da jemand was weiß kann er es mir hier drunter schreiben oder wenn man es nicht weiß einfach weiterlesen...
  2. Ok Danke! Aber kannst du vielleicht noch ein bisschen genauer werden was das Ändern des Codes betrifft? Ich bin nämlich grad am Ende meines Wissens und wüsste nicht wie ich die Schleife umschreiben soll, damit sie immer wieder durchläuft. Gruß
  3. I'm sorry, habe es aus PowerShell so kopiert und im Schreibeditor sah noch alles OK aus. $Infos habe ich in der 8. Zeile von unten definiert? Zumindest bin ich der Überzeugung das er so die Informationen aus $user.samaccountname bezieht. Wenn nicht dann korrigiert mich.
  4. Moin, ich habe hier eine etwas längere aber auch für mich eine etwas aufwendigere Abfrage geschrieben. Die Daten funktionieren soweit, wie er sie mir ausgibt, aber er geht die Schleifen die ich unten eingegeben habe (Fett markierte Zeilen) jeweils nur einmal durch. Woran liegt das? Habe ich einen offensichtlichen Fehler gemacht beim Erstellen der Schleifen? function Get-ADUserLastLogon([string]$userName) { $dcs = Get-ADDomainController -Filter {Name -like "*"} #alle domaincontroller abfragen um die letzte anmeldung aller AD-User zu rthalten foreach($dc in $dcs) { $hostname = $dc.HostName $user = Get-ADUser $userName -Server $hostname -Properties lastLogon $lngexpires = $user.lastLogon if (-not ($lngexpires)) {$lngexpires = 0 } If (($lngexpires -eq 0) -or ($lngexpires -gt [DateTime]::MaxValue.Ticks)) { $LastLogon = "<Never>" } Else { $Date = [DateTime]$lngexpires $LastLogon = $Date.AddYears(1600).ToLocalTime() } } #alle AD-User abfragen und die gewünschten Properties auslesen und in eine csv Datei exportieren } cls $excel = New-Object -ComObject excel.application $excel.visible = $True $workbook = $excel.Workbooks.Add() #Genügend Mappen erzeugen $excel.DisplayAlerts = $False $sheet= $workbook.Worksheets.Item(1) cls #Role-HHLA-VMware-Administratoren #Tabelle benennen $sheet.Name = 'Administratoren' #Formatierung der Überschriften $sheet.Cells.Item(1,1).Font.Size = 10 $sheet.Cells.Item(1,1).Font.Italic=$True $sheet.Cells.Item(1,2).Font.Size = 10 $sheet.Cells.Item(1,2).Font.Italic=$True $sheet.Cells.Item(1,3).Font.Size = 10 $sheet.Cells.Item(1,3).Font.Italic=$True $sheet.Cells.Item(1,4).Font.Size = 10 $sheet.Cells.Item(1,4).Font.Italic=$True $sheet.Cells.Item(1,5).Font.Size = 10 $sheet.Cells.Item(1,5).Font.Italic=$True $sheet.Cells.Item(1,6).Font.Size = 10 $sheet.Cells.Item(1,6).Font.Italic=$True $sheet.Cells.Item(1,7).Font.Size = 10 $sheet.Cells.Item(1,7).Font.Italic=$True     #Tabellenüberschriften setzen $sheet.Cells.Item(1,1) = 'Nachname' $sheet.Cells.Item(1,2) = 'Vorname' $sheet.Cells.Item(1,3) = 'Anzeigename' $sheet.Cells.Item(1,4) = 'Letztes Anmeldedatum' $sheet.Cells.Item(1,5) = 'Kontoablaufdatum' $sheet.Cells.Item(1,6) = 'Abteilung' $sheet.Cells.Item(1,7) = 'Kontoverzeichnis' cls Write-Host "+++ Auswertung von Role-HHLA-VMware-Administratoren wird erstellt..." -ForegroundColor Cyan       $row = 2 #In welche Spalte sollen die Infos eingefügt werden $column = 1 foreach($samname in $infos){ $sheet.Cells.Item($row,$column) = $infos.samaccountname $column++ #Increment to next Row and reset Column $row++ $column = 1 }   $row = 2 #In welche Spalte sollen die Infos eingefügt werden $column = 2 foreach($givenname in $infos){ $sheet.Cells.Item($row,$column) = $infos.GivenName $column++ #Increment to next Row and reset Column $row++ $column = 2 }   $row = 2 #In welche Spalte sollen die Infos eingefügt werden $column = 3 foreach($name in $infos){ $sheet.Cells.Item($row,$column) = $infos.Name $column++ #Increment to next Row and reset Column $row++ $column = 3 }   $row = 2 #In welche Spalte sollen die Infos eingefügt werden $column = 4 foreach($Lastlogon in $infos){ $sheet.Cells.Item($row,$column) = $infos.LastLogon $column++ #Increment to next Row and reset Column $row++ $column = 4 } $row = 2 #In welche Spalte sollen die Infos eingefügt werden $column = 5 foreach($accexpiration in $infos){ $sheet.Cells.Item($row,$column) = $infos.accountExpirationDate $column++ #Increment to next Row and reset Column $row++ $column = 5 } $row = 2 #In welche Spalte sollen die Infos eingefügt werden $column = 6 foreach($department in $infos){ $sheet.Cells.Item($row,$column) = $infos.Department $column++ #Increment to next Row and reset Column $row++ $column = 6 }   $row = 2 #In welche Spalte sollen die Infos eingefügt werden $column = 7 foreach($distinguishedName in $infos){ $sheet.Cells.Item($row,$column) = $infos.DistinguishedName $column++ #Increment to next Row and reset Column $row++ $column = 7 } $alleADUser = Get-ADUser -Filter {enabled -eq $true} | sort foreach($user in $alleADUser) { Get-ADUserLastLogon $user.samaccountname $infos = Get-ADUser $user.samaccountname -Properties * $datum = $LastLogon $samname = $infos.samaccountname $givenname = $infos.GivenName $name = $infos.Name $accexpiration = $infos.accountExpirationDate $distinguishedName = $infos.distinguishedName $department = $infos.department }
  5. Hallo, ich möchte das genaue LastLogon Datum haben, damit ich "tote" User, die sich mehr als 90 Tage nicht angemeldet haben, aus der AD entfernen kann. Gruß Jannes
  6. Hallo Jan, der Tipp mit AccountExpirationDate war super, Danke! Jedoch das LastLogonDate ist ebenfalls um ein paar Tage nach verschoben. Also wenn ich meinen eigenen Benutzer dafür nehme wird mein LastLogonDate auf den 24.2.17 ausgegeben. Deshalb habe ich LastLogon genommen und wollte die Zahl konvertieren. Hast du da noch einen Tipp? Gruß Jannes
  7. Moin, ich habe ein kleines und wahrscheinlich leicht zu lösendes Problem. (Zumindest für Leute die einen guten Durchblick in PowerShell haben) Ich möchte die Properties LastLogon und accountExpires von AD-Usern auslesen und in ein Datum konvertiert haben. In meinem Script konnte ich bereits das Datum von LastLogon auslesen und konvertieren, jedoch ist dieses um ein paar Tage nach hinten verschoben. Bei accountExpires habe ich noch keine großen Fortschritte gemacht. Dazu habe ich zwei scripte geschrieben, beim Oberen ist das Problem mit dem LastLogon und beim unteren habe ich noch ein Versuch unternommen ein Ergebnis für accountExpires zu bekommen nur stehe da leider auf dem Schlauch. Import-Module ActiveDirectory Get-ADUser -Filter {Name -like "Mueller"} -Properties * | Select -Property GivenName, Name, @{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}}, accountExpires, Enabled, samaccountname, DistinguishedName, Department #Export-CSV "H:\Alle_ADUser" Import-Module ActiveDirectory $benutzers = Get-ADUser -Filter {Name -like "Mueller"} -Properties * | Select -Property GivenName, Name, @{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}}, Enabled, samaccountname, Department, DistinguishedName   foreach($benutzer in $benutzers) {$test = $benutzer.accountExpires [datetime]::FromFileTime([int64]$test)} #Export-CSV "H:\Alle_ADUser" Danke schonmal im Voraus !
×
×
  • Create New...