Нагадування про зміну пароля для Windows 7
Операційна система Windows 7 внесла чимало змін у роботу як користувача, а й системного адміністратора. Наприклад, нагадування про зміну пароля ненав'язливе, з'являється у треї і зникає саме:

Якщо згадати Windows XP, то там ситуація була кращою: повідомлення з'являлося відразу після введення пароля, пропонувалося змінити пароль зараз, завантаження не тривало до дії користувача:
Вирішення проблеми нагадування зміни пароля в Windows 7
Офіційно, виправити ситуацію не можна – Майкрософт не подбала про вирішення цієї проблеми. Єдиний вихід – самописний скрипт.
Його (скрипта) завдання порахувати рядків дії пароля та у разі наближення закінчення терміну дії пароля (поріг задається) виводити вікно нагадування. Варіант такого скрипту мені порадили на форумі. Він повністю відповідав вимогам, я додав лише перевірку версії ОС, щоб відпрацьовувалося виключно Windows 7.
Запускати скрипт груповою політикою (логон-скрипт). Результат роботи такий:

Є ще один вихід -
Є ще один вихід - спеціалізоване ПЗ, призначене для цих цілей оповіщення користувачів - наприклад, NetWrix Password Expiration Notifier. Причому є як безкоштовна базова версія (повідомлення користувачів про те, що пароль необхідно змінити), так і повна з розширеними можливостями (налаштування оповіщень, фільтрація, оповіщення по SMS).
рідкісної краси скрипт! не
рідкісної краси скрипт! не довелося нічого доопрацьовувати напилком. Дякую!
Дякую, старався
У мене не працюєDC
У мене не працює DC Win2008R2Скрипт запускається через bat файлик.
Якщо на клієнта запустити
Якщо клієнт запустити скрипт (vbs), що пише? Помилки видає?
Як допиляти під Win 2008R2?
Як допиляти під Win 2008R2?
Я так думаю, потрібно у секції
Я так думаю, потрібно у секції
змінити версію Microsoft Windows 7 на потрібну.
Я не сильний в автозапуску
Я не сильний в автозапуску скриптів, підкажіть, як його запустити на win server 2008 r2?
Task Scheduler (Призначені
Task Scheduler (Призначені завдання).
А хіба не через групові
А хіба не через групові політики його треба запускати?
Так, протупив.
Через групові політики скрипт потрібно додавати так (User Configuration - Policies - Windows Settings - Scripts - Logon):

Дякую, вийшло.
Здрастуйте, спробував
Здрастуйте, спробував запустити скрипт на win 2012 r2 . Мої дії: зберіг вказаний вище скрипт у форматі .ps1. У групових політиках, як вказано на скріншоті зверху, додати PowerShell скрипт. Застосував політику, при вході в систему повідомлення про зміну пароля не змінюється, підкажіть, може, не те роблю?
Вітаю.
По-перше, скрипт VBS. Тому потрібно зберігати у форматі .vbs
Змінив розширення скрипту на
Змінив розширення скрипта на VBS. Змінив версію Windows на Windows Server 2012 R2 Standart. Скрипт все одно не витримується. Думаю, що щось роблю не так)
Якщо запустити скрипт руками
Якщо запустити скрипт руками щось трапляється?
Так, я розібрався)
Так, я розібрався) Помістив скрипт у розшарену папку, у скрипті залишив усе, як у вас. Додав скрипт до групових політик, тепер при вході користувача під windows 7 у нього з'являється це повідомлення. Але є маленька проблемка,коли спрацьовує скрипт, то в ньому написано, що залишилося 6 днів, а стандартне повідомлення каже, що 5. Не знаєте в чому може бути проблема?
Радий, що все вийшло.
Радий, що все вийшло. Чому каже 6 а не 5 днів - тут, швидше за все, винна математика та округлення. Дивитись цю частину скрипту:
Варіант забити мене повністю
Варіант забити мене повністю влаштовує) Бо користувачі раніше не помічали дефолтного повідомлення, саме тому я і зайнявся пошуком вирішення проблеми. Спасибі ще раз)
А взагалі чисто для інтересу
А взагалі чисто для інтересу спробував, і раптом комусь знадобиться. Щоб правильний час з'являвся замінив у рядку maxPwdAge.LowPart)/CCur(-864000000000), цифру 4 на 5. Тепер дата визначається коректно
Вітаю! У мене
Вітаю!У мене Win2008R2Ent і Win2012, через групові політики не запускається, локально пробую сам скрипт запустити, виправлений під 2008 і 2012 відповідно, нічого не відбувається( ні помилок, нічого.)
Скрипт видає повідомлення лише якщо пароль закінчується раніше, ніж встановлений поріг. Якщо ваш пароль не спливає - повідомлень не буде. Спробуйте розмістити рядок:
Так на 7 відпрацьовує.
Та на 7 відпрацьовує.. А на серверних, може, приведете як правильно писати? Пробував "Microsoft Windows Server 2008 R2 Enterprise" власне така система і є. Є ще 2012 Datacenter. На них вперто не хоче. І включений дебаг нічого не показує
Ну, за великим рахунком, можна
Ну, за великим рахунком, можна виключити перевірку версії ОС взагалі – і скрипт відпрацьовуватиме на всіх версіях.
Забираємо ось це? REM =========
Забираємо ось це? REM ========================================REMопераційної системи.REM Якщо Windows 7, то діємо далі REM ======================================= =Set objWMIService = GetObject("winmgmts:" _ & "!\\" & strComputer & "\root\cimv2") Case Left(objOperatingSystem.Caption,19)Case "Microsoft Windows 7"
Так. Там ще наприкінці щось.
Так. Там ще наприкінці щось.
Це здається. Запуск підкаже ;)
Ееєєєс. Без перевірки
Ееєєєс. Без перевірки дійсно спрацювало чудово!)Спасибо величезне. Респекти в карму просто нереальні Вам!
Рано зрадів. на 2008
Рано зрадів. на 2008 рік відпрацював, а на 2012 не хоче. Примусово запустив – показує. а при вході в систему віконця немає. Може в 2012 році де секрет є? або пніть куди дивитися.
Немає жодної різниці при
Немає жодної різниці при запуску руками та груповими політиками. Якщо сприпт відпрацьовує, то й у групових політиках буде. Якщо при вході в систему віконця немає – дивитися логон скрипт у групових політиках.
Так дивився rsop там
Так дивився rsop там показує що політика відпрацьовує, та сама політика під тим же користувачем на 2008 відпрацьовує на ура. на 2012 що помітив віконце з'являється, але через кілька хвилин) ось і не знаю навіть куди копати))) Перевірка зате прибралася, це радує)
Запускаю на w7 x64. При
Запускаю на w7 x64. При запуску помилка:рядок 36символ 1помилка: Переповнення: "ccur"Що це може бути?
I як the valuable info you
I як the valuable info you provide in your articles. Я буду bookmark вашого blog and check again here regularly. I am quite certain I'll learn a lot of new stuffright here! Best of luck for the next! cafeefdebabc
А як бути з комп'ютерами, де
А як бути з комп'ютерами, де стоїть галка Термін дії пароля не обмежений? Повідомлення про зміну пароля також з'являється. Відлік часу, я розумію, починається з моменту запуску скрипта.
з обліковим записом користувачів*
з обліковим записом користувачів*
у мене не працює скрипт на
у мене не працює скрипт на 2008 r2Вимкнув блок перевірки ОСзапускаю виходить помилка:Зіставлення між іменами користувачів та ідентифікаторами безпеки не було зроблено.у чому проблема?
скрипт не працює на 2012 рік.
скрипт не працює на 2012 рік. Вимкнув блок перевірки ОС. Скрипт запускаю, і нічого не відбувається.
ось працюючий скрипт для
ось працюючий скрипт для 2008/2012 http://paste.org.ru/?20nkn6
А навіщо перевірку скоротили?
А навіщо перевірку скоротили? Було: if (daysLeft -1) then Стало: if (daysLeft Сергій on Втр, 10/11/2016 - 21:15 ).
Ось те саме але записане в 6 (!) Рядків. Також і з перевіркою на випадок якщо користувач має безстроковий пароль (галочка "password never expire" в AD). Перевірки версії ОС немає, т.к. від XP в домені вже давно настав час відмовитися (та й не в домені теж). Скрипт зберігати у файлі з розширенням .vbs
=============== WarningDays = 10 'За скільки днів буде виводитися повідомлення (поріг спрацьовування)
Set oLoginInfo = CreateObject("ADSystemInfo") 'Отримуємо інформацію про поточне оточення
Set oUser = GetObject("LDAP://" & oLoginInfo.UserName) 'Отримуємо інформацію про користувача
WhenPasswordExpires = oUser.PasswordExpirationDate 'Отримуємо дату та час закінчення пароля
DaysLeft = DateDiff("d",Date,WhenPasswordExpires) 'Обчислюємо скільки днів залишилося (за різницеюміж поточною датою та датою закінчення)
'Виводимо повідомлення якщо задовольняє поріг спрацювання і якщо пароль користувача не безстроковий if (DaysLeft = "01.01.1970") then Msgbox "Кількість днів до закінчення терміну дії пароля: " & daysLeft & chr(13) & "Пароль дійсний до" & WhenPasswordExpires & chr(13) & chr(13) & "Щоб змінити пароль, натисніть клавіші" & chr(13) & "Ctrl+Alt+Del і виберіть 'Змінити пароль.'." & chr(13) & chr(13) & "Не відкладайте зміну пароля на останній день. ", 0, "Рекомендується змінити пароль!"