-1

Нашел этот файл на устройстве на работе ...

Set WshShell = CreateObject("WScript.Shell")
PINGFlag = Not CBool(WshShell.run("ping contoso.com -n 1 " & vSystemIdentifier,0,True))
      If PINGFlag = True Then
         'Successful ping
    'WScript.Echo "Connectivity to domain confirm."
    Call Password
      Else
         'Unsuccessful ping
    'WScript.Echo "No Connectivity to domain password check cancelled."
      End If



Function Password()

'========================================
    ' 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 in " & daysLeft & " day(s)" & " at " & whenPasswordExpires & chr(13) & chr(13) & "Press CTRL-ALT-DEL and" & chr(13) & "select the 'Change a password' option" & chr(13) & "Please allow enough time for password change to take effect," & chr(13) & "minimum of 15 minutes before disconnecting", 0, "PASSWORD EXPIRATION WARNING!"
    End if

    '========================================
    ' Clean up.
    '========================================
    Set oUser = Nothing
    Set maxPwdAge = Nothing
    Set oDomain = Nothing
End Function

1 ответ1

6

Этот скрипт создает всплывающее окно, чтобы предупредить пользователя, когда его пароль истекает.

Первоначально он был опубликован MarkK/Mark-K в качестве ответов на сообщения как об отказе сервера, так и на форумах TechNet корпорации Майкрософт, которые оба получали обновления с момента опубликованной вами версии. Версия, которую вы включили в свой вопрос, также включает некоторые модификации, которых нет в версиях, опубликованных Mark K.

Для справки приведена ссылка на соответствующий ответ о сбое сервера, а также сообщения об оригинале и обновлении на форумах TechNet.

Кроме того, я нашел скриншот всплывающего окна, создаваемого этим скриптом, который был опубликован JitenSh на форумах Spiceworks:
Предупреждение об истечении срока действия пароля: (i) Срок действия вашего пароля истекает через 4 дня в 04.10.2014 14:03:42. Нажмите сочетание клавиш CTRL + ALT + DEL и выберите параметр «Изменить пароль».[ХОРОШО]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .