ingo13 10 Geschrieben 8. Mai 2015 Melden Teilen Geschrieben 8. Mai 2015 Hallo, ich möchte gerne per Powershell auslesen, welche Passworter in den nächsten 10 Tagen ablaufen. Ich habe ein Script gefunden, welches auf der Shell gut läuf (siehe unten). Ich habe dies auf eine bestimmt OU beschränkt und mir nur die roten (die die ablaufen) anzeigen lassen. Jetzt würde ich dies gerne noch exportieren (wenn es geht in eine HTML Datei). Hier suche ich jetzt schon stundenlan nach einer Löung, finde aber nichts vernünftiges. Entweder gibt er mir ganichts raus oder alle User. Eine (nicht schöne Lösung bekommt man , indem man write-hoste in write-output ändert und in der Befehlzeile GetPWExpireFromAD.ps1 | Out-File d:/output.csv eingibt. Da kommt aber eine ganz schlechte Formatierung raus. Ich komme einfach nicht weiter. Tiefe Kenntnisse in PowerShell habe ich leider (noch) nicht. Vielelicht kann mir ja einer da weiterhelfen. Schon mal Danke dafür!!!! #########################################################Name: GetPWExpireFromAD.ps1 ##Creator: Michael Seidl aka Techguy ##CreationDate: 27.11.2013 ##LastModified:27.11.2013 ##Version: 1.0 ##Short Description: ##Doc: http://www.techguy.at/tag/getpwexpirefromad/ # #########################################################www.techguy.at ##www.facebook.com/TechguyAT ##www.twitter.com/TechguyAT ##michael@techguy.at ##########################################################Import Active Directory ModuleImport-Module ActiveDirectory#Day of Span$Days="10"#Settings$Date=Get-Date -Format yyyy-MM-dd((Get-Date).adddays($Days))$Users=Get-ADUser -filter {(Enabled -eq $True) -and (PasswordNeverExpires -eq $False)} -SearchBase "OU=xxx-me,DC=xxx,DC=xxx" -Properties DisplayName, msDS-UserPasswordExpiryTimeComputed, Mail | Where-Object {$_.DisplayName -ne $null} | Select Mail, DisplayName,@{Name="ExpiryDate";Expression={([datetime]::fromfiletime($_."msDS-UserPasswordExpiryTimeComputed")).DateTime}}#Magicforeach ($Entry in $Users) { $EntryDate = Get-date($Entry.ExpiryDate) -Format yyyy-MM-dd if ($EntryDate -lt $Date) { Write-Host "Alarm: The User" $entry.DisplayName "with Mailaddress:" $Entry.Mail "will expire at" $EntryDate -ForegroundColor Red } else { Write-host "OK: The User" $entry.DisplayName "with Mailaddress:" $Entry.Mail "will expire at" $EntryDate -ForegroundColor green }} Zitieren Link zu diesem Kommentar
NilsK 2.938 Geschrieben 8. Mai 2015 Melden Teilen Geschrieben 8. Mai 2015 Moin, der einfachste Weg ist i.d.R. tatsächlich, die Ausgabefunktion in Out-File umzuändern und die nötigen HTML-Tags in die Ausgabestrings mit einzuarbeiten. Beispiel: $OutputFile = 'C:\Pfad\Datei.html' '<html><body><table>' | Out-File $OutputFile [...] if ($EntryDate -lt $Date) { "<tr><td>Alarm</td><td>" $entry.DisplayName "</td><td>" $Entry.Mail "</td><td>" $EntryDate "</td></tr>" | Out-File $OutputFile } else { "<tr><td>OK</td><td>" $entry.DisplayName "</td><td>" $Entry.Mail "</td><td>" $EntryDate "</td></tr>" | Out-File $OutputFile } [... unten nach der Schleife] '</table></body><html>' | Out-File $OutputFile Ungetestet. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.