Get Domainaccount infos


kleine Webseite zur Anzeige von Informationen über einen Domänenbenutzer.

Ein Benutzer oder sein Kollege soll selbst ermitteln ob sein Konto noch aktiv ist und wann sein Passwort abläuft etc. .
Dadurch wird vielleicht der eine oder andere Benutzer sein Konto/Passwort-Problem selbstständig lösen und somit mich als Admin in Ruhe damit lassen.
Bzw. kann er mir bei einem Anruf gleich sagen, dass sein Konto (aus welchen Gründen auch immer) gesperrt ist.
Damit das Script funktioniert, muss vorher eine Authentifizierung für diese Webseite erzwungen werden.
Mit diesen Rechten kann dann anschließend vom Benutzer das AD nach den konfigurierten Informationen durchsucht werden.


Konfiguration:
Der Server muss in der Domäne sein (logisch).
ASP muss auf dem WindowsWebserver installiert sein.
Im IIS muss für die ASP-Datei/Unterordner als Authentication die Anonymous Authentication disabled sein.
Im IIS muss für die ASP-Datei/Unterordner als Authentication die Windows Authentication enabled sein.
Im IIS muss für die ASP-Datei/Unterordner als Authentication die ASP.NET Impersonation enabled sein.
Die Datei ai.asp sollte ins Verzeichnis ''inetpub\wwwroot\ai\** kopiert und angepasst werden.

ai.asp
<html><body>
<center><h1>Anmeldeinformationen eines Benutzers abfragen</h1></center><br>
 
<% 
Response.AddHeader "Pragma","no-cache"
dim var
var = Request.ServerVariables("LOGON_USER")
response.write "<center>Abfrage als: " & var  & "<br><br>"%>
<form method="post" action="ai.asp" >
 abzufragendes Konto: MyNTDOM\ <input type="Text" name="name">
  <input type="Submit">
</form></center>
 
<% 
 
Dim objUser,pwexp,pwexpd,ll,pwg,arr,dom,user,disabled,locked
 
arr = Split(var,"\")
On Error resume next
dom = arr(0)
 
user = Request.Form("name")
 
if user = "" then 
  response.write "<center>Bitte geben Sie einen existierenden Domänenaccount als abzufragendes Konto an.</center><br>"
  response.end
end if
 
Set objUser = GetObject("WinNT://" & dom & "/" & user & ",user" )
 
If Err.number <> 0 Then
response.write "Fehler:" & Err.number & Err.description & "<br>"
response.write "Geben Sie einen gültigen Domänenaccount an oder versuchen Sie die Abfrage mit dem InternetExplorer erneut"
response.end
 
End if
 
pwexp   = objUser.Get("PasswordExpired")
ll      = objUser.LastLogin
pwexpd  = objUser.PasswordExpirationDate
pwg     = FormatNumber(objUser.PasswordExpirationDate - Date(),1)
disabled= objUser.AccountDisabled
locked  = objUser.IsAccountLocked
 
' ja/nein umsetzen
if pwexp = 1 then
redim pwexp(0)
pwexp = "<b><a style=color:red>Ja, Bitte Passwort neu vergeben</a></b>"
else
pwexp = "Nein"
end if
 
if disabled = TRUE then
redim disabled(0)
disabled = "<b><a style=color:red>Ja, bitte Ticket erstellen</a></b>"
else
disabled = "Nein"
end if
 
if locked = TRUE then
redim locked(0)
locked = "<b><a style=color:red>Ja, bitte Ticket erstellen</a></b>"
else
locked = "Nein"
end if
 
 
response.write "<center><h2>Informationen zu Ihrem Domänenaccount</h2><table width=90%  border=1>"
response.write "<tr><td>Domänenbenutzername:</td><td>" & arr(0)& "\" & user &   "</td></tr>"
'response.write "<tr><td>Letzte erfolgreiche Anmeldung von " & user & ":</td><td>"& ll & "</td></tr>"
response.write "<tr><td>Ist das Passwort von " & user & " abgelaufen ? Muss es geändert werden ?</td><td>" & pwexp & "</td></tr>"
response.write "<tr><td>Passwort läuft / lief ab am: </td><td>"& pwexpd & "</td></tr>"
response.write "<tr><td>Passwort von " & user & " ist noch : </td><td>" & pwg & " Tage gültig</td></tr>"
response.write "<tr><td>Ist das Konto von " & user & " wegen falscher Anmeldungen gesperrt? </td><td>" & locked & "</td></tr>"
response.write "<tr><td>Ist das Konto von " & user & " deaktiviert oder abgelaufen? </td><td>" & disabled & "</td></tr>"
Response.write "</table></center><br><br>"
Response.Write "Letzte Abfrage : " & Date() & "  " & Time()
Response.write "<br>von Host: " & Request.ServerVariables("REMOTE_HOST") & "<br>"
user    = ""
pwexp   = ""
ll      = ""
pwexpd  = ""
pwg     = ""
disabled= ""
%>
Erstellen eines Ticket per VPN über  <a href="http://mein server........"> unser Portal </a> (bevorzugte Methode)<br>
Bei sonstigen Problemen wenden Sie sich bitte telefonisch an : +49 1234 567 666 <br>
Änderung des Passworts <a href="https://mein server/iisadmpwd/"> hier </a> möglich<hr>
Es werden keine Calls angenommen, bevor nicht auf dieser Seite überprüft wurde, ob das Passwort abgelaufen oder das Konto wegen falscher Passworteingabe
 gesperrt wurde.<br>
 
</body></html>