Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Odisseus

Старожил


Сообщения: 257
Благодарности: 7

Профиль | Отправить PM | Цитировать


Цитата clevergod:
Гугел все давно придумал »
А вот за это отдельное спасибо! Как говорится, одна голова хорошо, а много - лучше.
Но надо прояснить по скрипту кое-что. Итак, весь скрипт тут:
Код: Выделить весь код
strComputer = "."
REM ========================================
REM Проверка версии операционной системы.
REM Если Windows 7, то действуем дальше
REM ========================================
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
    ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Select Case Left(objOperatingSystem.Caption,19)
Case "Microsoft Windows 7"

REM ========================================
REM Доменные политики и количество дней
REM ========================================
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")

REM ========================================
REM Считаем сколько дней осталось
REM ========================================
numDays = CCur((maxPwdAge.HighPart * 2 ^ 32) + _
maxPwdAge.LowPart) / CCur(-864000000000)
REM WScript.Echo "Maximum Password Age: " & numDays ' это для дэбага

REM ========================================
REM Определяем когда менялся пароль
REM ========================================
Set oUser = GetObject("LDAP://" & strUserDN)
whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
fromDate = Date
daysLeft = DateDiff("d",fromDate,whenPasswordExpires)

REM WScript.Echo "Password Last Changed: " & oUser.PasswordLastChanged
if (daysLeft < warningDays) and (daysLeft > -1) then
Msgbox "Число дней до истечения срока действия пароля: " & daysLeft & "." & chr(13) & "Пароль действительный до " & whenPasswordExpires & chr(13) & chr(13) & "Чтобы изменить пароль, нажмите клавиши " & chr(13) & "CTRL+ALT+DEL и выберите 'Сменить пароль...'", 0, "Рекомендуется изменить ваш пароль"
End if

REM ========================================
REM Конец проверки версии ОС
REM ========================================
End Select
Next
REM ========================================
REM Зачистка
REM ========================================
Set oUser = Nothing
Set maxPwdAge = Nothing
Set oDomain = Nothing
Для того, чтобы он работал в моем домене, надо изменить
Код: Выделить весь код
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")
Или он просто будет опираться на существующий домен и прописывать его не надо?

Цитата cameron:
Предполагаю, что бдет проще реализовать скрипт на пош отправляющий почту с напоминанием. »
Такой вариант уже есть и работает, спасибо за наводку! Хочется иметь дублирующее напоминание.

Отправлено: 09:10, 24-09-2014 | #10