Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Windowsanmeldepasswort vergleichen

Windowsanmeldepasswort vergleichen
31.05.2007 13:41:00
Andreas
Hallo,
ich würde gerne für eine Passwortabfrage den Windows Anmeldename und das Windows Anmeldepasswort vergleichen.
zum ersten habe ich das gefunden
vba.environ("Username")
zum zweiten finde ich keine Lösung, habe es mal so versucht:

Sub benutzerpasswort()
passwort = Application.InputBox("Gib mal Passwort ein:", "Passwort")
If passwort = VBA.Environ("Userpassword") Then MsgBox "ok"
End Sub


funktioniert aber leider nicht und irgendwie habe ich gegoogelt aber nichts gefunden.
Hat irgendjemand eine Lösung

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Windowsanmeldepasswort vergleichen
31.05.2007 13:44:00
Rudi
Hallo,
das Passwort kannst du nicht auslesen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Windowsanmeldepasswort vergleichen
31.05.2007 13:45:00
Hajo_Zi
Hallo Andreas,
das Passwort wirst Du nicht auslesen können, das ist doch die Sicherheit von Windows.

AW: Windowsanmeldepasswort vergleichen
31.05.2007 13:50:32
Oberschlumpf
Hi Andreas
sorry, aber (auch) ich musste eben ein wenig grinsen :-)
Könnte man das Windows-Anmeldepasswort soo einfach auslesen, dann hätte MS sich die ganze Arbeit mit der Anmeldesicherheit auch sparen können.
Denn ich könnte ja als dein Kollege dann problemlos dein Passwort auslesen, und...jetzt kommts :-)...bist du mal nicht auf Arbeit, starte ich deinen PC und melde mich mit deinem Namen an - Ideen, um mit nem "fremden" PC, nicht mit meinem Namen Blödsinn zu machen, hätte ich genug....willst du das?!!? :-)
Ciao
Thorsten

Anzeige
AW: Windowsanmeldepasswort vergleichen
31.05.2007 13:56:22
Matthias
Hallo Andreas,
Die Antworten oben sind richtig, allerdings kannst du eine Zeichenfolge prüfen, ob sie dem Windows-Kennwort entspricht:
In ein Modul:

Option Explicit
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
Private Declare Function GetVersion Lib "kernel32" () As Long
Private Declare Function LogonUserA Lib "Advapi32" ( _
ByVal lpszUserName As String, ByVal lpszDomain As String, _
ByVal lpszPassword As String, ByVal dwLogonType As Long, _
ByVal dwLogonProvider As Long, phToken As Long _
) As Long
Private Declare Function WNetVerifyPasswordA Lib "mpr.dll" ( _
ByVal lpszPassword As String, ByRef pfMatch As Long _
) As Long
Private Declare Function GetComputerNameA Lib "kernel32" _
(ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetUserNameA Lib "advapi32.dll" _
(ByVal lpBuffer As String, nSize As Long) As Long
Public Function WhereAmI() As String
Dim s As String * 255
GetComputerNameA s, Len(s)
WhereAmI = Left$(s, InStr(s, vbNullChar) - 1)
End Function
Public Function WhoAmI() As String
Dim s As String * 255
GetUserNameA s, Len(s)
WhoAmI = Left$(s, InStr(s, vbNullChar) - 1)
End Function
Public Function CheckPassword( _
ByVal Password As String, _
Optional ByVal UserName As String, _
Optional ByVal Domain As String _
) As Boolean
'Deklarationen:
Const LOGON32_PROVIDER_DEFAULT = 0&
Const LOGON32_LOGON_NETWORK = 3&
Dim hToken As Long
Dim fMatch As Long
If IsNT Then 'Win NT/2000:
'Angemeldeter User ist Default:
If UserName = "" Then UserName = WhoAmI
'API aufrufen:
CheckPassword = LogonUserA(UserName, Domain, Password, _
LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, hToken)
CloseHandle hToken
Else 'Win 9x:
'Domäne liegt in Win9x nicht vor:
If CBool(Len(Domain)) Then Exit Function
'Ggf. Kennung checken:
If CBool(Len(UserName)) _
Then If UserName  WhoAmI Then Exit Function
'API aufrufen:
If WNetVerifyPasswordA(Password, fMatch) = 0 _
Then CheckPassword = CBool(fMatch)
End If
End Function
Public Function IsNT() As Boolean
'Höchstwertigste Bit darf nicht gesetzt sein:
IsNT = (GetVersion And &H80000000) = 0
End Function


Zum Testen:
'Prüfe, ob der angemeldete User das Kennwort "123" hat:
MsgBox CheckPassword("123")
'Prüfe, ob der User "Administrator" das Kennwort "admin" hat:
MsgBox CheckPassword("admin","Administrator")
Quelle: http://vb-tec.de/chkpwd.htm
Unter Administratorrechten funktioniert bei mir alles, ob das ganze auch unter Standard-Benutzerrechten klappt musst du mal selbst testen.
Gruß Matthias

Anzeige
AW: Windowsanmeldepasswort vergleichen
31.05.2007 14:22:00
Andreas
Danke Matthias,
funktioniert bei mir auch perfekt.
Bin aber auch als Admin angemeldet.
Werde es jetzt noch bei einem Kollegen versuchen.
Danke schön!!!

AW: Windowsanmeldepasswort vergleichen
31.05.2007 14:02:33
{mskro}
Hallo Andreas,
hier zumindest die Überprüfung des Anmeldenamens.

Sub Anmeldename()
Passwort = Application.InputBox("Gib mal den Anmeldenamen ein:", "Passwort")
If Passwort = Environ("UserName") Then MsgBox "ok" Else MsgBox "falsch"
End Sub


Gruss Manfred
Rückmeldung wäre nett!

AW: sehr hilfreich... ;-)
31.05.2007 14:04:00
Matthias
..., SCNR.
Gruß Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige