wachtwoord verloopt script fout

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • monta
  • Registratie: Januari 2004
  • Laatst online: 02-02 08:00
Het volgende script start als inlog script indien de gebruiker inlogt op de Windows 7 laptop:
Indien de gebruiker niet op het domein inlogt maar de laptop buiten de deur heeft verschijnt er een script error.

VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
'A VBS script that goes in to your GPO that displays a popup window telling the user their password expires in # days and that
'the user MUST click OK to dismiss. It goes in the GPO - User Config - Policies - Admin Templates - System - Logon - Run these
'programs at user logon.  You will also need to add the folder location to IE Trusted Sites to avoid having a popup asking if
'it should run the script.

'PwExpChk.vbs

      '========================================
    ' First, get the domain policy.
    '========================================
    Dim oDomain
    Dim oUser
    Dim maxPwdAge
    Dim numDays
    Dim warningDays

    warningDays = 15

    Set LoginInfo = CreateObject("ADSystemInfo")
    Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "")
    strDomainDN = UCase(LoginInfo.DomainDNSName)
    strUserDN = LoginInfo.UserName


    Set oDomain = GetObject("LDAP://" & strDomainDN)
    Set maxPwdAge = oDomain.Get("maxPwdAge")

    '========================================
    ' Calculate the number of days that are
    ' held in this value.
    '========================================
    numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
                    maxPwdAge.LowPart) / CCur(-864000000000)
    'WScript.Echo "Maximum Password Age: " & numDays

    '========================================
    ' Determine the last time that the user
    ' changed his or her password.
    '========================================
    Set oUser = GetObject("LDAP://" & strUserDN)

    '========================================
    ' Add the number of days to the last time
    ' the password was set.
    '========================================
    whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
    fromDate = Date
    daysLeft = DateDiff("d",fromDate,whenPasswordExpires)

    'WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged

    if (daysLeft < warningDays) and (daysLeft > -1) then
        Msgbox "password expires " & daysLeft & " dagen" & " op " & whenPasswordExpires & chr(13) & chr(13) & "LET OP!" & chr(13) & 
   End if


De melding gaat over de regel: Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "")


Hoe kan ik dit oplossen als de gebruiker niet inlogt op de laptop met netwerkkabel maar buiten de deur? Hij kan wellicht het domein niet vinden omdat men offline werkt..
De melding zegt: kan het opgegeven domein niet vinden...

Moet ik het domein ergens invullen?

[ Voor 0% gewijzigd door RobIII op 05-07-2012 10:17 . Reden: code tags toegevoegd ]

monta


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Waar hoort mijn topic?
WEB >> PRG

Verder: Als je code post, gebruik dan code tags a.u.b. Wat heb je zelf al geprobeerd, gezocht, gevonden? En tot slot: is dit script überhaupt van je eigen hand of mogen we support gaan leveren op 3rd party code? (Ik denk dat ik 't antwoord daar al wel op weet though ;) )

[ Voor 25% gewijzigd door RobIII op 05-07-2012 10:21 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • monta
  • Registratie: Januari 2004
  • Laatst online: 02-02 08:00
Ok ik zal er opletten. Heb reeds gegoogled maar heb geen script kennis en wellicht als iemand script kennis heeft dat hij/zij meteen ziet dat er een domein opgegeven moet worden of andere fout in het domein script zit. Het script staat in c:\windows\system32 dus het kan niet zijn dat het script niet gevonden kan worden omdat hij lokaal staat.

monta


Acties:
  • 0 Henk 'm!

  • muppet99
  • Registratie: Juli 2002
  • Laatst online: 10-09 17:23
Je script gaat op zoek naar het domein. Dus ja het kan wel kloppen dat hij die niet kan vinden als je er niet in hangt. Echter..... je zou deze ook uit je log in kunnen halen en hem als taak inschieten die dagelijks loopt. Daar kun je dan ook instellen dat hij niet loopt op het moment dat de gebruiker niet aan het domein hangt. Dan hoef je dus geen scriptkennis te hebben :)

Carpe Diem


Acties:
  • 0 Henk 'm!

  • monta
  • Registratie: Januari 2004
  • Laatst online: 02-02 08:00
Maar het moet toch ook via dit script kunnen, als hij niet aan het domein hangt dan negeert hij het script verder..

monta


Acties:
  • 0 Henk 'm!

  • col-dejong
  • Registratie: Juni 2010
  • Laatst online: 17-09-2024
Om het heel simpel op te lossen .. bovenin het script zet je het volgende neer:

On Error Resume Next

Acties:
  • 0 Henk 'm!

  • mhoogendam
  • Registratie: Oktober 2002
  • Laatst online: 12-09 16:49
Je zal ook nog een syntax error krijgen door regel 53, je eindigt met een & teken. Hier moet nog iets achteraankomen.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

col-dejong schreef op vrijdag 06 juli 2012 @ 11:09:
Om het heel simpel op te lossen .. bovenin het script zet je het volgende neer:

On Error Resume Next
Wat een heerlijk slecht advies. Dan verandert ergens in de toekomst de situatie waardoor het script op een andere plek eruit klapt, kun je niet vinden waar het hem in zit. 8)7

Als je al in de "On Error"-hoek wil kijken (liever niet), zet dan On Error Resume Next boven de regel(s) die hier fout gaat en dan On Error Goto 0 op de regel eronder, zodat andere foutmeldingen wel gewoon opgeworpen worden.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • @r!k
  • Registratie: April 2000
  • Laatst online: 11-09 10:01

@r!k

It is I, Leclerq

Als ik het script goed begrijp kun je beter een functie inbouwen waarbij hij controleert of je verbinding hebt met het domein en als dit niet het geval is dat hij het script dan stopt. Hij leest uit hoe oud je wachtwoord is en geeft dan een waarschuwing, alleen je kunt die toch niet wijzigen als je niet op het domein aangemeld bent dus waarom zou je deze verder nog laten draaien?

Een hele rij microsoft certificeringen.


Acties:
  • 0 Henk 'm!

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 05-09 17:55
met ^

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


Acties:
  • 0 Henk 'm!

  • col-dejong
  • Registratie: Juni 2010
  • Laatst online: 17-09-2024
NMe schreef op vrijdag 06 juli 2012 @ 13:35:
[...]

Wat een heerlijk slecht advies. Dan verandert ergens in de toekomst de situatie waardoor het script op een andere plek eruit klapt, kun je niet vinden waar het hem in zit. 8)7

Als je al in de "On Error"-hoek wil kijken (liever niet), zet dan On Error Resume Next boven de regel(s) die hier fout gaat en dan On Error Goto 0 op de regel eronder, zodat andere foutmeldingen wel gewoon opgeworpen worden.
Normaal gesproken gebruik ik ook niet On Error Resume Next maar in deze situatie, omdat het aannemelijk is dat er niet meer verandert in het script is het hierbij een goede oplossing.

Om het anders op te vangen, hier de aangepaste code:

VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
'A VBS script that goes in to your GPO that displays a popup window telling the user their password expires in # days and that
'the user MUST click OK to dismiss. It goes in the GPO - User Config - Policies - Admin Templates - System - Logon - Run these
'programs at user logon.  You will also need to add the folder location to IE Trusted Sites to avoid having a popup asking if
'it should run the script.

'PwExpChk.vbs
On Error Resume Next
      '========================================
    ' First, get the domain policy.
    '========================================
    Dim oDomain
    Dim oUser
    Dim maxPwdAge
    Dim numDays
    Dim warningDays

    warningDays = 15

    Set LoginInfo = CreateObject("ADSystemInfo")
    Set objUser = GetObject("LDAP://" & LoginInfo.UserName & "")
    If Err <> 0 Then
    'Wscript.Echo "Hier een foutmelding?"
    else
    
    strDomainDN = UCase(LoginInfo.DomainDNSName)
    strUserDN = LoginInfo.UserName


    Set oDomain = GetObject("LDAP://" & strDomainDN)
    Set maxPwdAge = oDomain.Get("maxPwdAge")

    '========================================
    ' Calculate the number of days that are
    ' held in this value.
    '========================================
    numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
                    maxPwdAge.LowPart) / CCur(-864000000000)
    'WScript.Echo "Maximum Password Age: " & numDays

    '========================================
    ' Determine the last time that the user
    ' changed his or her password.
    '========================================
    Set oUser = GetObject("LDAP://" & strUserDN)

    '========================================
    ' Add the number of days to the last time
    ' the password was set.
    '========================================
    whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
    fromDate = Date
    daysLeft = DateDiff("d",fromDate,whenPasswordExpires)

    'WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged

    if (daysLeft < warningDays) and (daysLeft > -1) then
        Msgbox "password expires " & daysLeft & " dagen" & " op " & whenPasswordExpires & chr(13) & chr(13) & "LET OP!" & chr(13) 
   End if
   
   
   End If


Dit bijgevoegd na regel 20:

If Err <> 0 Then

else

En de laatste regeld End If

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

col-dejong schreef op vrijdag 06 juli 2012 @ 16:16:
[...]

Normaal gesproken gebruik ik ook niet On Error Resume Next maar in deze situatie, omdat het aannemelijk is dat er niet meer verandert in het script is het hierbij een goede oplossing.
Dat is het dus niet. ;) De code hoeft niet te veranderen om nieuwe fouten te introduceren. Wat als een software-upgrade op het systeem waar dit script draait een probleem oplevert? Dan stopt dit script ineens met werken zonder foutmelding. Dat debugt makkelijk. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1