вторник, 1 октября 2013 г.

Windows: информационное окно при входе в систему

  1. Пишем скрипт на VBS с обратным отсчетом: Inform.vbs
    call MsgBox("Первая строка сообщения" & vbCrLf & "Вторая строка 
    чообщения" & vbCrLf & "Обратный отсчет числа:" & vbCrLf & 
    "30",0,"Заголовок окна")
  2. Пишем еще один скрипт на PowerShell-e: change_left.ps1
    Clear-Host
    $curr_date = get-date -uFormat "%d"
    $left_day = 30 - $curr_date
    $new_left_day = $left_day - 1
    
    $text = Get-Content Inform.vbs
    $text -replace ("$left_day"), "$new_left_day" | Out-File Inform.vbs
  3. Производим некоторые шаманства:
    • Ложим эти два скрипта в домашнюю папку доменного администратора
    • Разрешаем выполнение скриптов PowerShell на данном ПК
      Set-ExecutionPolicy RemoteSigned
  4. Добавляем в Sheduler выполнение change_left.ps1 в 23:55 каждый день
    в параметрах безопастости обязательно указываем "Выполнять вне зависимости от регистрации пользователя" (Вкладка "Общие")
  5. Добавляем в груповую политику Сценарий на вход в систему:
    • Управление групповой политикой
    • Редактор управления групповыми политиками
    • Конфигурация пользователя -> Политики -> Конфигурация Windows -> Сценарии (вход/выход из системы)
    • Вход в систему -> Сценарии -> Добавить -> Обзор -> указываем путь к Inform.vbs -> OK

    На следующий день будет:
Upd! PS: Будьте внимательны! text -replace делает замену во всём тексте. Так что, если у вас присутствуют и другие цифры, скрипт необходимо "кастомизировать" под конкретный случай.