Вход в качестве пакетного задания windows 2016

Начиная с Windows Vista, пользователям десктопных и серверных систем доступны функции входа в качестве службы и в качестве пакетного задания.

windowsservicesWindows располагает хорошими средствами автоматизации рутинных действий что называется «из коробки». Начиная с Windows Vista, пользователям десктопных и серверных систем доступны функции входа в качестве службы и в качестве пакетного задания.

Что это значит? Если учетная запись пользователя имеет право входить в систему в качестве службы, то это позволяет запустить от его имени какой-либо процесс как службу. Соответственно, такой процесс наделяется всеми свойствами службы (например, автозапуском).

Что касается пакетных заданий, то данная система обеспечивает функционирование Планировщика заданий без необходимости для пользователя лично заходить в компьютер под своей учетной записью.

Как включить вход в качестве службы и вход в качестве пакетного задания

Планировщик заданий.

Для того, чтобы обе функции стали доступны, необходимо открыть Редактор локальных групповых политик командой gpedit.msc.

gpedit

Далее откройте раздел Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Назначение прав пользователя.

Как включить вход в качестве службы и вход в качестве пакетного задания

Обе групповые политики редактируются одинаковым образом. Достаточно нажать кнопку Добавить пользователя или группу и выбрать соответствующего пользователя (соответствующую группу).

Как включить вход в качестве службы и вход в качестве пакетного задания

Обновлено 16.02.2017

ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-01

ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-01

При создании в планировщике windows задания и попытке его запустить выскакивает ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания. Дело в том что учетной записи от имени которой пытаюсь запустить не хватает прав.

Эта настройка безопасности позволяет пользователю входить в систему с помощью средства обработки пакетных заданий.

Например, если пользователь инициирует задание с помощью планировщика заданий, планировщик обеспечивает ему вход в систему как пакетному пользователю, а не как интерактивному.

Примечание

  • В операционных системах Windows 2000 Server, Windows 2000 Professional, Windows XP Professional. и семейства Windows Server 2003 планировщик заданий автоматически предоставляет это право как обязательное.

Решить данную проблему можно либо в локальной либо в групповой политике прописать нужный параметр и дать нужному пользователю права по пути Учетной записи, от имени которой должно выполнятся задание, в «Локальной политике безопасностиКонфигурация компьютераКонфигурация WindowsПараметры безопасностиЛокальные политикиНазначение прав пользователя» должно быть выделено право «Вход в качестве пакетного задания» (В аноязычном интерфейсе будет в «Local policyComputer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesUser Rights Assignment»  выделятся  «Log on as a batch job» ).

ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-02

ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-02

по умолчанию права в этой группе имеют Администраторы и Операторы архива, их не забудьте сюда добавить в групповой политике, а то затрете их права.

ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-03

ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-03

и еще В свойствах задания (на первой странице) НЕ ДОЛЖЕН БЫТЬ ВКЛЮЧЕН пункт «Выполнять только при выполненном входе в систему» или Выполнять вне зависимости от регистрации пользователя («Run if user logon»), в самом задании.

Фев 16, 2017 10:09

При создании в планировщике windows задания и попытке его запустить выскакивает ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания. Дело в том что учетной записи от имени которой пытаюсь запустить не хватает прав.

Эта настройка безопасности позволяет пользователю входить в систему с помощью средства обработки пакетных заданий.

Например, если пользователь инициирует задание с помощью планировщика заданий, планировщик обеспечивает ему вход в систему как пакетному пользователю, а не как интерактивному.

Примечание

  • В операционных системах Windows 2000 Server, Windows 2000 Professional, Windows XP Professional. и семейства Windows Server 2003 планировщик заданий автоматически предоставляет это право как обязательное.

Решить данную проблему можно либо в локальной либо в групповой политике прописать нужный параметр и дать нужному пользователю права по пути Учетной записи, от имени которой должно выполнятся задание, в «Локальной политике безопасностиКонфигурация компьютераКонфигурация WindowsПараметры безопасностиЛокальные политикиНазначение прав пользователя» должно быть выделено право «Вход в качестве пакетного задания» (В аноязычном интерфейсе будет в «Local policyComputer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesUser Rights Assignment» выделятся «Log on as a batch job»).

по умолчанию права в этой группе имеют Администраторы и Операторы архива, их не забудьте сюда добавить в групповой политике, а то затрете их права.

В предыдущих статьях, посвященных локальным политикам безопасности, вы узнали о принципах работы политик учетных записей и политик аудита. Владея приобретенными знаниями, вы можете значительно обезопасить учетные данные ваших пользователей и отслеживать попытки несанкционированного доступа. Стоит учесть, что пользователи не владеют достаточной базой знаний по обеспечению безопасности и даже у обычного пользователя может быть достаточно привилегий для нанесения ущерба своей системе и даже компьютерам в вашей интрасети. Избежать подобных проблем помогают локальные политики безопасности назначения прав пользователя, о чем, собственно, и пойдет речь в данной статье. При помощи политик назначения прав пользователя вы можете сами определить, для каких пользователей или групп пользователей будут предоставлены различные права и привилегии. Оперируя данными политиками, вы можете не волноваться за то, что пользователи будут выполнять действия, которые им делать не положено. Для назначения прав доступны 44 политики безопасности, о применении которых далее пойдет речь.

Политики назначения прав пользователей

Как говорилось выше, для назначения прав пользователей существует 44 политики безопасности. Далее вы сможете ознакомиться с восемнадцатью политиками безопасности, которые отвечают за назначение различных прав для пользователей или групп вашей организации.

  1. Архивация файлов и каталогов
    . При помощи данной политики вы можете указать пользователей или группы, предназначенные для выполнения операций резервного копирования файлов, каталогов, разделов реестра и других объектов, которые подлежат архивации. Данная политика предоставляет доступ для следующих разрешений:
  • Обзор папок/Выполнение файлов
  • Содержимое папки/Чтение данных
  • Чтение атрибутов
  • Чтение расширенных атрибутов
  • Чтение разрешений

«Администраторы»
и «Операторы архивации»
, а на контроллерах домена – «Операторы архивации»
и «Операторы сервера»
.

  • Блокировка страниц в памяти
    . Используя эту политику безопасности, вы можете указать конкретных пользователей или группы, которым разрешается использовать процессы для сохранения данных в физической памяти для предотвращения сброса данных в виртуальную память на диске.
  • Восстановление файлов и каталогов
    . Эта политика позволяет вам указывать пользователей и группы, которые могут выполнять восстановление файлов и каталогов, в обход блокировке файлов, каталогов, разделов реестра и прочих объектов, расположенных в архивных версиях файлов.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    и «Операторы архивации»
    , а на контроллерах домена – «Операторы архивации»
    и «Операторы сервера»
    .

  • Вход в качестве пакетного задания
    . При создании задания, используя планировщик заданий, операционная система регистрирует пользователя в системе как пользователя с пакетным входом. Данная политика разрешает группе или определенному пользователю входить в систему при помощи такого метода.
  • По умолчанию, как на рабочих станциях, так и на контроллерах домена, данные привилегии предоставляются группам «Администраторы»
    и «Операторы архивации»
    .

  • Вход в качестве службы
    . Некоторые системные службы осуществляют вход в операционную систему под разными учетными записями. Например, служба «Windows Audio»
    запускается под учетной записью «Локальная служба»
    , служба «Телефония»
    использует учетную запись «Сетевая служба»
    . Данная политика безопасности определяет, какие учетные записи служб могут зарегистрировать процесс в качестве службы.
  • По умолчанию, как на рабочих станциях, так и на серверах, ни у одной группы нет на это разрешений.

  • Выполнение задач по обслуживанию томов
    . Используя эту политику, вы можете указать пользователей или группы, участники которых могут выполнять операции, предназначенные для обслуживания томов. У пользователей, обладающих такими привилегиями, есть права на чтение и изменение запрошенных данных после открытия дополнительных файлов, они также могут просматривать диски и добавлять файлы в память, занятую другими данными.
  • По умолчанию, такими правами обладают только администраторы рабочих станций и контроллеров домена.

  • Добавление рабочих станций к домену
    . Эта политика отвечает за разрешение пользователям или группам добавлять компьютеры в домен Active Directory. Пользователь, обладающий данными привилегиями, может добавить в домен до десяти компьютеров.
  • По умолчанию, все пользователи, прошедшие проверку подлинности, на контроллерах домена могут добавлять до десяти компьютеров.

  • Доступ к диспетчеру учетных данных от имени доверенного вызывающего
    . Диспетчер учетных данных – это компонент, который предназначен для хранения учетных данных, таких как имена пользователей и пароли, используемых для входа на веб-сайты или другие компьютеры в сети. Эта политика используется диспетчером учетных данных в ходе архивации и восстановления, и ее не желательно предоставлять пользователям.
  • По умолчанию, как на рабочих станциях, так и на серверах, ни у одной группы нет на это разрешений.

  • Доступ к компьютеру из сети
    . Данная политика безопасности отвечает за разрешение подключения к компьютеру по сети указанным пользователям или группам.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    и «Операторы архивации»
    , «Пользователи»
    и «Все»
    . На контроллерах домена – «Администраторы»
    , «Проверенные пользователи»
    , «Контроллеры домена предприятия»
    и «Все»
    .

  • Завершение работы системы
    . Используя этот параметр политики, вы можете составить список пользователей, которые имеют право на использование команды «Завершение работы»
    после удачного входа в систему.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    , «Операторы архивации»
    и «Пользователи»
    (только на рабочих станциях), а на контроллерах домена – «Администраторы»
    , «Операторы архивации»
    , «Операторы сервера»
    и «Операторы печати»
    .

  • Загрузка и выгрузка драйверов устройств
    . При помощи текущей политики вы можете указать пользователей, которым будут предоставлены права на динамическую загрузку и выгрузку драйверов устройств в режиме ядра, причем эта политика не распространяется на PnP-устройства.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    , а на контроллерах домена – «Администраторы»
    и «Операторы печати»
    .

  • Замена маркера уровня процесса
    . Используя данную политику безопасности, вы можете ограничить пользователей или группу от использования API-функции CreateProcessAsUser для того, чтобы одна служба могла запускать другую функцию, процесс или службу. Стоит обратить внимание на то, что такое приложение как «Планировщик заданий»
    для своей работы использует данные привилегии.
  • По умолчанию, как на рабочих станциях, так и на контроллерах домена, данные привилегии предоставляются учетным записям «Сетевая служба»
    и «Локальная служба»
    .

  • Запретить вход в систему через службу удаленных рабочих столов
    . При помощи данной политики безопасности вы можете ограничить пользователей или группы от входа в систему в качестве клиента удаленных рабочих столов.
  • По умолчанию, как на рабочих станциях, так и на серверах, всем разрешено входить в систему как клиенту удаленных рабочих столов.

  • Запретить локальный вход
    . Данная политика запрещает отдельным пользователям или группам выполнять вход в систему.
  • По умолчанию всем пользователям разрешен вход в систему.

  • Изменение метки объектов
    . Благодаря данной политике назначения прав, вы можете предоставить возможность указанным пользователям или группам изменять метки целостности объектов других пользователей, таких как файлы, разделы реестра или процессы.
  • По умолчанию никому не разрешено изменять метки объектов.

  • Изменение параметров среды изготовителя
    . Используя эту политику безопасности, вы можете указать пользователей или группы, которым будет доступна возможность чтения переменных аппаратной среды. Переменные аппаратной среды — это параметры, сохраняемые в энергонезависимой памяти компьютеров, архитектура которых отлична от x86.
  • На рабочих станциях и контроллерах домена, по умолчанию данные привилегии предоставляются группам «Администраторы»
    .

  • Изменение системного времени
    . Эта политика отвечает за изменение системного времени. Предоставив данное право пользователям или группам, вы тем самым кроме разрешения изменения даты и времени внутренних часов позволите им изменять соответствующее время отслеживаемых событий в оснастке «Просмотр событий»
    .
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    и «Локальная служба»
    , а на контроллерах домена – «Администраторы»
    , «Операторы сервера»
    и «Локальная служба»
    .

  • Изменение часового пояса
    . При помощи текущей политики безопасности, вы можете указать пользователей или группы, которым разрешено изменять часовой пояс своего компьютера для отображения местного времени, которое представляет собой сумму системного времени компьютера и смещения часового пояса.
  • На рабочих станциях и контроллерах домена по умолчанию данные привилегии предоставляются группам «Администраторы»
    и «Пользователи»
    .

    Применение политик назначение прав пользователей

    В этом примере я расскажу, как можно назначить права для одной из групп вашей организации на контроллере домена. Выполните следующие действия:

    Заключение

    В данной статье мы продолжили изучение политик безопасности, а именно, узнали о политиках назначения прав пользователей. При помощи политик назначения прав пользователя вы можете сами определить, для каких пользователей или групп пользователей будут предоставлены различные права и привилегии. Подробно описаны 18 из 44 политик безопасности. На приведенном в статье примере вы также узнали о том, как можно применить данные политики в организации. В следующей статье вы узнаете политиках, управляющих журналами событий.

    Тут ничего подробно расписывать не буду, да и не занимаюсь я администрированием сети, пусть лучше этим займется мастер своего дела — системный администратор.

    2. Блокируем начало сеансов

    Запускаем консоль администрирования серверов 1С:Предприятие, открываем свойства информационной базы и устанавливаем галочку для свойства Блокировка начала сеансов включена
    . Учтите, что как только вы примените данное свойства, начало любых сеансов будет блокироваться, поэтому для выполнения следующего пункта конфигуратор должен быть запущен до применения свойства.

    3. Делаем резервную копию

    Тут уж как вам душа велит. Как по мне, самый простой и надежный способ создания резервной копии — это выгрузка информационной базы через конфигуратор.

    4. Задаем локальные политики безопасности

    Открываем консоль «Локальная политика безопасности» (в командной строке набираем secpol.msc). Переходим в раздел Локальные политики -> Назначение прав пользователя
    и добавляем доменного пользователя в политики (см. рисунок 1):

    • Вход в качестве пакетного задания
      (Log on as batch job) — обеспечивает функционирование Планировщика заданий без необходимости для пользователя лично заходить в компьютер под своей учетной записью;
    • Вход в качестве службы
      (Log on as service) — позволяет запустить от имени пользователя какой-либо процесс как службу.

    Дополнительно, если требуется, пользователя можно добавить в политики:

    • Доступ к компьютеру из сети
      (Access this computer from the network) — пользователь имеет право подключаться к компьютеру из сети;
    • Локальный вход в систем
      у (Allow log on locally) — пользователь имеет право запускать интерактивный сеанс на компьютере;
    • Разрешить вход через службу удаленных рабочих столов
      (Allow log on through Remote Desktop Services) — пользователь имеет право входа в систему удаленного компьютера через подключение к службам удаленных рабочих столов.

    5. Добавляем доменного пользователя в группы

    Открываем консоль «Управление компьютером», переходим в раздел Служебные программы -> Локальные пользователи -> Пользователи
    и смотрим в каких группах состоит локальный пользователь от имени которого работает служба «Агент сервера 1С:Предприятие» (обычно это пользователь USR1CV8) (см. рисунок 2).
    В эти же группы добавляем доменного пользователя.

    6. Запускаем агента от имени доменного пользователя

    Открываем консоль «Службы», находим в списке службу «Агент сервера 1С:Предприятие» и открываем её свойства. На вкладке Общие
    останавливаем службу, на вкладке Вход в систему
    вместо локального пользователя указываем доменного (см. рисунок 3).
    Переходим обратно на вкладку Общие
    и запускаем службу. Если все правильно настроено, то служба стартует без проблем.

    Вы можете сказать, что 2-ой и 3-й пункты избыточны, но лучше перебздеть, чем недобздеть. Инструкция справедлива не только для доменного пользователя, но и для локального.

    windowsservicesWindows располагает хорошими средствами автоматизации рутинных действий что называется «из коробки». Начиная с Windows Vista, пользователям десктопных и серверных систем доступны функции входа в качестве службы и в качестве пакетного задания.

    Что это значит? Если учетная запись пользователя имеет право входить в систему в качестве службы, то это позволяет запустить от его имени какой-либо процесс как службу. Соответственно, такой процесс наделяется всеми свойствами службы (например, автозапуском).

    Что касается пакетных заданий, то данная система обеспечивает функционирование Планировщика заданий без необходимости для пользователя лично заходить в компьютер под своей учетной записью.

    Как включить вход в качестве службы и вход в качестве пакетного задания

    Планировщик заданий.

    Для того, чтобы обе функции стали доступны, необходимо открыть Редактор локальных групповых политик командой gpedit.msc.

    gpedit

    Далее откройте раздел Конфигурация компьютера → Конфигурация Windows → Параметры безопасности → Назначение прав пользователя.

    Как включить вход в качестве службы и вход в качестве пакетного задания

    Обе групповые политики редактируются одинаковым образом. Достаточно нажать кнопку Добавить пользователя или группу и выбрать соответствующего пользователя (соответствующую группу).

    Как включить вход в качестве службы и вход в качестве пакетного задания

    • Remove From My Forums
    • Question

    • How do I configure a user account to have ‘logon as a service’ permissions?

      This is for CRM application use and need to enable permission via GPO


      Microsoft TechNet Forum Bandara

    Answers

    • Hi,

      It seems that you know the group policy “Log on as a service” can achieve your goal, so I would like to confirm what do you want to ask?

      If you do not know the path of the group policy “Log on as a service” in domain, you may expend Computer ConfigurationWindows SettingsSecurity
      SettingsLocal PoliciesUser Rights AssignmentLog on as a service in GPMC.

      Regards,


      Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

      • Marked as answer by

        Monday, February 21, 2011 2:30 AM

    • Remove From My Forums
    • Question

    • How do I configure a user account to have ‘logon as a service’ permissions?

      This is for CRM application use and need to enable permission via GPO


      Microsoft TechNet Forum Bandara

    Answers

    • Hi,

      It seems that you know the group policy “Log on as a service” can achieve your goal, so I would like to confirm what do you want to ask?

      If you do not know the path of the group policy “Log on as a service” in domain, you may expend Computer ConfigurationWindows SettingsSecurity
      SettingsLocal PoliciesUser Rights AssignmentLog on as a service in GPMC.

      Regards,


      Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

      • Marked as answer by

        Monday, February 21, 2011 2:30 AM

    При создании в планировщике windows задания и попытке его запустить выскакивает ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания. Дело в том что учетной записи от имени которой пытаюсь запустить не хватает прав.

    Эта настройка безопасности позволяет пользователю входить в систему с помощью средства обработки пакетных заданий.

    Например, если пользователь инициирует задание с помощью планировщика заданий, планировщик обеспечивает ему вход в систему как пакетному пользователю, а не как интерактивному.

    Примечание

    • В операционных системах Windows 2000 Server, Windows 2000 Professional, Windows XP Professional. и семейства Windows Server 2003 планировщик заданий автоматически предоставляет это право как обязательное.

    Решить данную проблему можно либо в локальной либо в групповой политике прописать нужный параметр и дать нужному пользователю права по пути Учетной записи, от имени которой должно выполнятся задание, в «Локальной политике безопасностиКонфигурация компьютераКонфигурация WindowsПараметры безопасностиЛокальные политикиНазначение прав пользователя» должно быть выделено право «Вход в качестве пакетного задания» (В аноязычном интерфейсе будет в «Local policyComputer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesUser Rights Assignment» выделятся «Log on as a batch job»).

    по умолчанию права в этой группе имеют Администраторы и Операторы архива, их не забудьте сюда добавить в групповой политике, а то затрете их права.

    В предыдущих статьях, посвященных локальным политикам безопасности, вы узнали о принципах работы политик учетных записей и политик аудита. Владея приобретенными знаниями, вы можете значительно обезопасить учетные данные ваших пользователей и отслеживать попытки несанкционированного доступа. Стоит учесть, что пользователи не владеют достаточной базой знаний по обеспечению безопасности и даже у обычного пользователя может быть достаточно привилегий для нанесения ущерба своей системе и даже компьютерам в вашей интрасети. Избежать подобных проблем помогают локальные политики безопасности назначения прав пользователя, о чем, собственно, и пойдет речь в данной статье. При помощи политик назначения прав пользователя вы можете сами определить, для каких пользователей или групп пользователей будут предоставлены различные права и привилегии. Оперируя данными политиками, вы можете не волноваться за то, что пользователи будут выполнять действия, которые им делать не положено. Для назначения прав доступны 44 политики безопасности, о применении которых далее пойдет речь.

    Политики назначения прав пользователей

    Как говорилось выше, для назначения прав пользователей существует 44 политики безопасности. Далее вы сможете ознакомиться с восемнадцатью политиками безопасности, которые отвечают за назначение различных прав для пользователей или групп вашей организации.

    1. Архивация файлов и каталогов
      . При помощи данной политики вы можете указать пользователей или группы, предназначенные для выполнения операций резервного копирования файлов, каталогов, разделов реестра и других объектов, которые подлежат архивации. Данная политика предоставляет доступ для следующих разрешений:
    • Обзор папок/Выполнение файлов
    • Содержимое папки/Чтение данных
    • Чтение атрибутов
    • Чтение расширенных атрибутов
    • Чтение разрешений

    «Администраторы»
    и «Операторы архивации»
    , а на контроллерах домена – «Операторы архивации»
    и «Операторы сервера»
    .

  • Блокировка страниц в памяти
    . Используя эту политику безопасности, вы можете указать конкретных пользователей или группы, которым разрешается использовать процессы для сохранения данных в физической памяти для предотвращения сброса данных в виртуальную память на диске.
  • Восстановление файлов и каталогов
    . Эта политика позволяет вам указывать пользователей и группы, которые могут выполнять восстановление файлов и каталогов, в обход блокировке файлов, каталогов, разделов реестра и прочих объектов, расположенных в архивных версиях файлов.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    и «Операторы архивации»
    , а на контроллерах домена – «Операторы архивации»
    и «Операторы сервера»
    .

  • Вход в качестве пакетного задания
    . При создании задания, используя планировщик заданий, операционная система регистрирует пользователя в системе как пользователя с пакетным входом. Данная политика разрешает группе или определенному пользователю входить в систему при помощи такого метода.
  • По умолчанию, как на рабочих станциях, так и на контроллерах домена, данные привилегии предоставляются группам «Администраторы»
    и «Операторы архивации»
    .

  • Вход в качестве службы
    . Некоторые системные службы осуществляют вход в операционную систему под разными учетными записями. Например, служба «Windows Audio»
    запускается под учетной записью «Локальная служба»
    , служба «Телефония»
    использует учетную запись «Сетевая служба»
    . Данная политика безопасности определяет, какие учетные записи служб могут зарегистрировать процесс в качестве службы.
  • По умолчанию, как на рабочих станциях, так и на серверах, ни у одной группы нет на это разрешений.

  • Выполнение задач по обслуживанию томов
    . Используя эту политику, вы можете указать пользователей или группы, участники которых могут выполнять операции, предназначенные для обслуживания томов. У пользователей, обладающих такими привилегиями, есть права на чтение и изменение запрошенных данных после открытия дополнительных файлов, они также могут просматривать диски и добавлять файлы в память, занятую другими данными.
  • По умолчанию, такими правами обладают только администраторы рабочих станций и контроллеров домена.

  • Добавление рабочих станций к домену
    . Эта политика отвечает за разрешение пользователям или группам добавлять компьютеры в домен Active Directory. Пользователь, обладающий данными привилегиями, может добавить в домен до десяти компьютеров.
  • По умолчанию, все пользователи, прошедшие проверку подлинности, на контроллерах домена могут добавлять до десяти компьютеров.

  • Доступ к диспетчеру учетных данных от имени доверенного вызывающего
    . Диспетчер учетных данных – это компонент, который предназначен для хранения учетных данных, таких как имена пользователей и пароли, используемых для входа на веб-сайты или другие компьютеры в сети. Эта политика используется диспетчером учетных данных в ходе архивации и восстановления, и ее не желательно предоставлять пользователям.
  • По умолчанию, как на рабочих станциях, так и на серверах, ни у одной группы нет на это разрешений.

  • Доступ к компьютеру из сети
    . Данная политика безопасности отвечает за разрешение подключения к компьютеру по сети указанным пользователям или группам.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    и «Операторы архивации»
    , «Пользователи»
    и «Все»
    . На контроллерах домена – «Администраторы»
    , «Проверенные пользователи»
    , «Контроллеры домена предприятия»
    и «Все»
    .

  • Завершение работы системы
    . Используя этот параметр политики, вы можете составить список пользователей, которые имеют право на использование команды «Завершение работы»
    после удачного входа в систему.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    , «Операторы архивации»
    и «Пользователи»
    (только на рабочих станциях), а на контроллерах домена – «Администраторы»
    , «Операторы архивации»
    , «Операторы сервера»
    и «Операторы печати»
    .

  • Загрузка и выгрузка драйверов устройств
    . При помощи текущей политики вы можете указать пользователей, которым будут предоставлены права на динамическую загрузку и выгрузку драйверов устройств в режиме ядра, причем эта политика не распространяется на PnP-устройства.
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    , а на контроллерах домена – «Администраторы»
    и «Операторы печати»
    .

  • Замена маркера уровня процесса
    . Используя данную политику безопасности, вы можете ограничить пользователей или группу от использования API-функции CreateProcessAsUser для того, чтобы одна служба могла запускать другую функцию, процесс или службу. Стоит обратить внимание на то, что такое приложение как «Планировщик заданий»
    для своей работы использует данные привилегии.
  • По умолчанию, как на рабочих станциях, так и на контроллерах домена, данные привилегии предоставляются учетным записям «Сетевая служба»
    и «Локальная служба»
    .

  • Запретить вход в систему через службу удаленных рабочих столов
    . При помощи данной политики безопасности вы можете ограничить пользователей или группы от входа в систему в качестве клиента удаленных рабочих столов.
  • По умолчанию, как на рабочих станциях, так и на серверах, всем разрешено входить в систему как клиенту удаленных рабочих столов.

  • Запретить локальный вход
    . Данная политика запрещает отдельным пользователям или группам выполнять вход в систему.
  • По умолчанию всем пользователям разрешен вход в систему.

  • Изменение метки объектов
    . Благодаря данной политике назначения прав, вы можете предоставить возможность указанным пользователям или группам изменять метки целостности объектов других пользователей, таких как файлы, разделы реестра или процессы.
  • По умолчанию никому не разрешено изменять метки объектов.

  • Изменение параметров среды изготовителя
    . Используя эту политику безопасности, вы можете указать пользователей или группы, которым будет доступна возможность чтения переменных аппаратной среды. Переменные аппаратной среды — это параметры, сохраняемые в энергонезависимой памяти компьютеров, архитектура которых отлична от x86.
  • На рабочих станциях и контроллерах домена, по умолчанию данные привилегии предоставляются группам «Администраторы»
    .

  • Изменение системного времени
    . Эта политика отвечает за изменение системного времени. Предоставив данное право пользователям или группам, вы тем самым кроме разрешения изменения даты и времени внутренних часов позволите им изменять соответствующее время отслеживаемых событий в оснастке «Просмотр событий»
    .
  • На рабочих станциях и серверах данные привилегии предоставляются группам «Администраторы»
    и «Локальная служба»
    , а на контроллерах домена – «Администраторы»
    , «Операторы сервера»
    и «Локальная служба»
    .

  • Изменение часового пояса
    . При помощи текущей политики безопасности, вы можете указать пользователей или группы, которым разрешено изменять часовой пояс своего компьютера для отображения местного времени, которое представляет собой сумму системного времени компьютера и смещения часового пояса.
  • На рабочих станциях и контроллерах домена по умолчанию данные привилегии предоставляются группам «Администраторы»
    и «Пользователи»
    .

    Применение политик назначение прав пользователей

    В этом примере я расскажу, как можно назначить права для одной из групп вашей организации на контроллере домена. Выполните следующие действия:

    Заключение

    В данной статье мы продолжили изучение политик безопасности, а именно, узнали о политиках назначения прав пользователей. При помощи политик назначения прав пользователя вы можете сами определить, для каких пользователей или групп пользователей будут предоставлены различные права и привилегии. Подробно описаны 18 из 44 политик безопасности. На приведенном в статье примере вы также узнали о том, как можно применить данные политики в организации. В следующей статье вы узнаете политиках, управляющих журналами событий.

    Тут ничего подробно расписывать не буду, да и не занимаюсь я администрированием сети, пусть лучше этим займется мастер своего дела — системный администратор.

    2. Блокируем начало сеансов

    Запускаем консоль администрирования серверов 1С:Предприятие, открываем свойства информационной базы и устанавливаем галочку для свойства Блокировка начала сеансов включена
    . Учтите, что как только вы примените данное свойства, начало любых сеансов будет блокироваться, поэтому для выполнения следующего пункта конфигуратор должен быть запущен до применения свойства.

    3. Делаем резервную копию

    Тут уж как вам душа велит. Как по мне, самый простой и надежный способ создания резервной копии — это выгрузка информационной базы через конфигуратор.

    4. Задаем локальные политики безопасности

    Открываем консоль «Локальная политика безопасности» (в командной строке набираем secpol.msc). Переходим в раздел Локальные политики -> Назначение прав пользователя
    и добавляем доменного пользователя в политики (см. рисунок 1):

    • Вход в качестве пакетного задания
      (Log on as batch job) — обеспечивает функционирование Планировщика заданий без необходимости для пользователя лично заходить в компьютер под своей учетной записью;
    • Вход в качестве службы
      (Log on as service) — позволяет запустить от имени пользователя какой-либо процесс как службу.

    Дополнительно, если требуется, пользователя можно добавить в политики:

    • Доступ к компьютеру из сети
      (Access this computer from the network) — пользователь имеет право подключаться к компьютеру из сети;
    • Локальный вход в систем
      у (Allow log on locally) — пользователь имеет право запускать интерактивный сеанс на компьютере;
    • Разрешить вход через службу удаленных рабочих столов
      (Allow log on through Remote Desktop Services) — пользователь имеет право входа в систему удаленного компьютера через подключение к службам удаленных рабочих столов.

    5. Добавляем доменного пользователя в группы

    Открываем консоль «Управление компьютером», переходим в раздел Служебные программы -> Локальные пользователи -> Пользователи
    и смотрим в каких группах состоит локальный пользователь от имени которого работает служба «Агент сервера 1С:Предприятие» (обычно это пользователь USR1CV8) (см. рисунок 2).
    В эти же группы добавляем доменного пользователя.

    6. Запускаем агента от имени доменного пользователя

    Открываем консоль «Службы», находим в списке службу «Агент сервера 1С:Предприятие» и открываем её свойства. На вкладке Общие
    останавливаем службу, на вкладке Вход в систему
    вместо локального пользователя указываем доменного (см. рисунок 3).
    Переходим обратно на вкладку Общие
    и запускаем службу. Если все правильно настроено, то служба стартует без проблем.

    Вы можете сказать, что 2-ой и 3-й пункты избыточны, но лучше перебздеть, чем недобздеть. Инструкция справедлива не только для доменного пользователя, но и для локального.

    Здравствуйте!
    Сразу извиняюсь если подобная тема существует, просто не нашел ни чего подобного!
    Ситуация такая: Домен под управлением Windows 2003 был мегрирован под Win2008. Операция прошла успешно, глюков долгое время не наблюдалось.
    В дальнейшем в связи с вводом корпоративного антивируса Kaspersky установил, на сервер не являющийся контроллером домена, Kaspersky Administration Kid. Его служба начала вываливаться ежедневно. На форуме касперского, что нужно сделать такие манипуляции: 

    Для пользователя с которого запускается сервер администрирования необходимо в политике домена прописать разрешение на вход в качестве
    службы (Локальная политика безопасновти —> Локальные политики —> Назначение прав пользователя и в пункт «Вход в качестве службы» добавить пользователя из под которого запускается сервер администраирования.)

    Зашел в данный пункт меню, там кнопка добавить пользователя или группу не активна. Пишет:

    данный параметр не совместим с пакетом обновления 1 для windows 2000 или более ранними версиями. Применяйте объекты групповой политики,содержащий
    данный параметр только к компьютерам с более поздней версией.

    Соответственно вопрос: как это поправить. устал ежедневно запускать службы

    Обновлено 16.02.2017

    ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-01

    ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-01

    При создании в планировщике windows задания и попытке его запустить выскакивает ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания. Дело в том что учетной записи от имени которой пытаюсь запустить не хватает прав.

    Эта настройка безопасности позволяет пользователю входить в систему с помощью средства обработки пакетных заданий.

    Например, если пользователь инициирует задание с помощью планировщика заданий, планировщик обеспечивает ему вход в систему как пакетному пользователю, а не как интерактивному.

    Примечание

    • В операционных системах Windows 2000 Server, Windows 2000 Professional, Windows XP Professional. и семейства Windows Server 2003 планировщик заданий автоматически предоставляет это право как обязательное.

    Решить данную проблему можно либо в локальной либо в групповой политике прописать нужный параметр и дать нужному пользователю права по пути Учетной записи, от имени которой должно выполнятся задание, в «Локальной политике безопасностиКонфигурация компьютераКонфигурация WindowsПараметры безопасностиЛокальные политикиНазначение прав пользователя» должно быть выделено право «Вход в качестве пакетного задания» (В аноязычном интерфейсе будет в «Local policyComputer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesUser Rights Assignment»  выделятся  «Log on as a batch job» ).

    ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-02

    ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-02

    по умолчанию права в этой группе имеют Администраторы и Операторы архива, их не забудьте сюда добавить в групповой политике, а то затрете их права.

    ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-03

    ошибка Данное задание требует, чтобы указанная учетная запись пользователя имела права вход в качестве пакетного задания-03

    и еще В свойствах задания (на первой странице) НЕ ДОЛЖЕН БЫТЬ ВКЛЮЧЕН пункт «Выполнять только при выполненном входе в систему» или Выполнять вне зависимости от регистрации пользователя («Run if user logon»), в самом задании.

    Фев 16, 2017 10:09

    Вот уже несколько лет занимаюсь в университете поддержкой 10 рабочих станций под управлением ОС Microsoft Windows 8.1. В основном поддержка заключается в установке нужного для учебного процесса ПО и обеспечении общей работоспособности.

    На каждой станции есть 2 пользователя: Администратор и Студент. Администратору доступно полное управление, у Студента нет возможности установки ПО. Чтобы не утруждать себя чисткой пользователя Студент, эта учетка просто удаляется целиком и создается заново. Это влечет за собой некоторые телодвижения, которые нужно выполнять на каждой станции.

    В этом году решил автоматизировать большую часть телодвижений c помощью PowerShell без ActiveDirectory и собрал в этот пост некоторые рецепты, которые отыскал в сети.

    Подготовка

    Сразу же столкнулся с тем, что на станциях установлен PS 4 и некоторые примеры из всезнающего Интернета не работали. Поэтому, прежде, чем запускать получившиеся скрипты, нужно выполнить пару действий:

    1. Установить Windows Management Framework 5.1
    2. Установить последнюю верисию PowerShell

    Автоматизируемые действия

    1. Удаление/создание учетной записи пользователя
    2. Автовход заданного пользователя
    3. Запуск скрипта при первом входе пользователя

    Удаление/создание учетной записи пользователя

    Начал с создания. В этом случае требуется выполнить 2 действия: создать пользователя (New-LocalUser) и добавить его в группу (Add-LocalGroupMember). Для удобства объединил эти команды в функцию:

    Function New-User {
        <#
        .SYNOPSIS
            Создание нового пользователя
        .DESCRIPTION
            Данная функция создает нового пользователя и добавляет его в группу Пользователи
        .EXAMPLE
            #New-User "Student" "Student"
        .PARAMETER Name
            Имя нового пользователя (обязательный параметр)
        .PARAMETER Password
            Пароль (обязательный параметр)
        #>
    
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][String]$Name,
            [PARAMETER(Mandatory=$True)][String]$Password
            )
    
        $Pwd = convertto-securestring $Password -asplaintext -force
        $GroupSID = "S-1-5-32-545"
        New-LocalUser -User $Name -AccountNeverExpires:$true -FullName $Name -Password $Pwd -PasswordNeverExpires:$true
        Add-LocalGroupMember -SID $GroupSID -Member $Name
    
        Write-Host "-- Создан пользователь $Name с паролем $Password" -foregroundcolor Green
    }
    

    В группу добавляю по SID, потому что в одной из статей встретил, что SID группы Пользователи везде одинаковый — S-1-5-32-545.

    Удаление организовал по следующему принципу: удалить все учетные записи, которые были созданы Администратором. Для этого с помощью WMI объекта класса Win32_UserProfile определяю всех пользователей, которые в данный момент не активны и не являются специальными.

    Function Remove-Users {
        <#
        .SYNOPSIS
            Удаление пользователей
        .DESCRIPTION
            Данная функция удаляет пользователей, которые сейчас не активны и не являются специальными
            Удаляются в том числе рабочий каталог и реестр пользователей
        .EXAMPLE
            #Remove-Users
        #>
        [CmdletBinding()]
    
        $UsersProfiles = Get-WMIObject -class Win32_UserProfile -ComputerName $env:COMPUTERNAME | Where {!($_.Loaded) -and !($_.Special)}
        foreach($Usr in $UsersProfiles) {
           	$UsrName = $Usr.LocalPath.Split("")[2]
           	Write-Host "-- Удаление пользователя $UsrName ..." -foregroundcolor Green
           	Remove-LocalUser -Name $UsrName
    	Remove-WmiObject -Path $Usr.__PATH
            Write-Host "-- Пользователь $UsrName удален" -foregroundcolor Green
        }
    }
    

    Автовход (автологин) заданного пользователя

    Здесь все ограничилось изменением реестра HKEY_LOCAL_MACHINE. Эти действия также объединил в не большую функцию:

    Function Set-AutoLogon {
        <#
        .SYNOPSIS
            Включение автовхода для пользователя
        .DESCRIPTION
            Данная функция включает автовход для указанного пользователя
        .EXAMPLE
            #Set-AutoLogon  "Student" "Student"
        .PARAMETER Name
            Имя пользователя (обязательный параметр)
        .PARAMETER Password
            Пароль (обязательный параметр)
        #>
    
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][String]$Name,
            [PARAMETER(Mandatory=$True)][String]$Password
            )
    
        $PathToWinlogon = "HKLM:SoftwareMicrosoftWindows NTCurrentVersionWinlogon"
        New-ItemProperty -Path $PathToWinlogon -Name AutoAdminLogon  -Value 1 -PropertyType "String"
        New-ItemProperty -Path $PathToWinlogon -Name DefaultUserName -Value $Name -PropertyType "String"
        New-ItemProperty -Path $PathToWinlogon -Name DefaultPassword -Value $Password -PropertyType "String"
    }
    

    Запуск скрипта при первом входе пользователя

    Оказалось, что не все можно настроить до первого входа нового пользователя (что было для меня несколько удивительно). Поэтому возникла потребность запустить скрипт, который выполняет некоторые действия после первого входа:

    1. Настройка прокси
    2. Запрет создания файлов на рабочем столе
    3. Настройка панели управления пользователя

    Я попробовал несколько способов, но рабочим для меня оказался следующий: установить таск. Но таск средствами PS мне не удалось завести. Поэтому пошел длинной тропинкой:

    schtasks /create /tn LogonUserSettings /tr "pwsh C:ScriptsSettings.ps1" /sc onlogon /ru $env:USERDOMAIN$UserName /rp $Password /f
    

    Но этого оказалось не достаточно — Windows запросила разрешить вход в качестве пакетного задания (SeBatchLogonRight). Поиски ответа на вопрос как это сделать привели к такому результату:

    LsaWrapper

    $Source = @'
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace MyLsaWrapper
    {
        using System.Runtime.InteropServices;
        using System.Security;
        using System.Management;
        using System.Runtime.CompilerServices;
        using System.ComponentModel;
    
        using LSA_HANDLE = IntPtr;
    
        [StructLayout(LayoutKind.Sequential)]
        struct LSA_OBJECT_ATTRIBUTES
        {
            internal int Length;
            internal IntPtr RootDirectory;
            internal IntPtr ObjectName;
            internal int Attributes;
            internal IntPtr SecurityDescriptor;
            internal IntPtr SecurityQualityOfService;
        }
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
        struct LSA_UNICODE_STRING
        {
            internal ushort Length;
            internal ushort MaximumLength;
            [MarshalAs(UnmanagedType.LPWStr)]
            internal string Buffer;
        }
        sealed class Win32Sec
        {
            [DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
            SuppressUnmanagedCodeSecurityAttribute]
            internal static extern uint LsaOpenPolicy(
            LSA_UNICODE_STRING[] SystemName,
            ref LSA_OBJECT_ATTRIBUTES ObjectAttributes,
            int AccessMask,
            out IntPtr PolicyHandle
            );
    
            [DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
            SuppressUnmanagedCodeSecurityAttribute]
            internal static extern uint LsaAddAccountRights(
            LSA_HANDLE PolicyHandle,
            IntPtr pSID,
            LSA_UNICODE_STRING[] UserRights,
            int CountOfRights
            );
    
            [DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
            SuppressUnmanagedCodeSecurityAttribute]
            internal static extern int LsaLookupNames2(
            LSA_HANDLE PolicyHandle,
            uint Flags,
            uint Count,
            LSA_UNICODE_STRING[] Names,
            ref IntPtr ReferencedDomains,
            ref IntPtr Sids
            );
    
            [DllImport("advapi32")]
            internal static extern int LsaNtStatusToWinError(int NTSTATUS);
    
            [DllImport("advapi32")]
            internal static extern int LsaClose(IntPtr PolicyHandle);
    
            [DllImport("advapi32")]
            internal static extern int LsaFreeMemory(IntPtr Buffer);
    
        }
        /// <summary>
        /// This class is used to grant "Log on as a service", "Log on as a batchjob", "Log on localy" etc.
        /// to a user.
        /// </summary>
        public sealed class LsaWrapper : IDisposable
        {
            [StructLayout(LayoutKind.Sequential)]
            struct LSA_TRUST_INFORMATION
            {
                internal LSA_UNICODE_STRING Name;
                internal IntPtr Sid;
            }
            [StructLayout(LayoutKind.Sequential)]
            struct LSA_TRANSLATED_SID2
            {
                internal SidNameUse Use;
                internal IntPtr Sid;
                internal int DomainIndex;
                uint Flags;
            }
    
            [StructLayout(LayoutKind.Sequential)]
            struct LSA_REFERENCED_DOMAIN_LIST
            {
                internal uint Entries;
                internal LSA_TRUST_INFORMATION Domains;
            }
    
            enum SidNameUse : int
            {
                User = 1,
                Group = 2,
                Domain = 3,
                Alias = 4,
                KnownGroup = 5,
                DeletedAccount = 6,
                Invalid = 7,
                Unknown = 8,
                Computer = 9
            }
    
            enum Access : int
            {
                POLICY_READ = 0x20006,
                POLICY_ALL_ACCESS = 0x00F0FFF,
                POLICY_EXECUTE = 0X20801,
                POLICY_WRITE = 0X207F8
            }
            const uint STATUS_ACCESS_DENIED = 0xc0000022;
            const uint STATUS_INSUFFICIENT_RESOURCES = 0xc000009a;
            const uint STATUS_NO_MEMORY = 0xc0000017;
    
            IntPtr lsaHandle;
    
            public LsaWrapper()
                : this(null)
            { }
            // // local system if systemName is null
            public LsaWrapper(string systemName)
            {
                LSA_OBJECT_ATTRIBUTES lsaAttr;
                lsaAttr.RootDirectory = IntPtr.Zero;
                lsaAttr.ObjectName = IntPtr.Zero;
                lsaAttr.Attributes = 0;
                lsaAttr.SecurityDescriptor = IntPtr.Zero;
                lsaAttr.SecurityQualityOfService = IntPtr.Zero;
                lsaAttr.Length = Marshal.SizeOf(typeof(LSA_OBJECT_ATTRIBUTES));
                lsaHandle = IntPtr.Zero;
                LSA_UNICODE_STRING[] system = null;
                if (systemName != null)
                {
                    system = new LSA_UNICODE_STRING[1];
                    system[0] = InitLsaString(systemName);
                }
    
                uint ret = Win32Sec.LsaOpenPolicy(system, ref lsaAttr,
                (int)Access.POLICY_ALL_ACCESS, out lsaHandle);
                if (ret == 0)
                    return;
                if (ret == STATUS_ACCESS_DENIED)
                {
                    throw new UnauthorizedAccessException();
                }
                if ((ret == STATUS_INSUFFICIENT_RESOURCES) || (ret == STATUS_NO_MEMORY))
                {
                    throw new OutOfMemoryException();
                }
                throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
            }
    
            public void AddPrivileges(string account, string privilege)
            {
                IntPtr pSid = GetSIDInformation(account);
                LSA_UNICODE_STRING[] privileges = new LSA_UNICODE_STRING[1];
                privileges[0] = InitLsaString(privilege);
                uint ret = Win32Sec.LsaAddAccountRights(lsaHandle, pSid, privileges, 1);
                if (ret == 0)
                    return;
                if (ret == STATUS_ACCESS_DENIED)
                {
                    throw new UnauthorizedAccessException();
                }
                if ((ret == STATUS_INSUFFICIENT_RESOURCES) || (ret == STATUS_NO_MEMORY))
                {
                    throw new OutOfMemoryException();
                }
                throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
            }
    
            public void Dispose()
            {
                if (lsaHandle != IntPtr.Zero)
                {
                    Win32Sec.LsaClose(lsaHandle);
                    lsaHandle = IntPtr.Zero;
                }
                GC.SuppressFinalize(this);
            }
            ~LsaWrapper()
            {
                Dispose();
            }
            // helper functions
    
            IntPtr GetSIDInformation(string account)
            {
                LSA_UNICODE_STRING[] names = new LSA_UNICODE_STRING[1];
                LSA_TRANSLATED_SID2 lts;
                IntPtr tsids = IntPtr.Zero;
                IntPtr tdom = IntPtr.Zero;
                names[0] = InitLsaString(account);
                lts.Sid = IntPtr.Zero;
                //Console.WriteLine("String account: {0}", names[0].Length);
                int ret = Win32Sec.LsaLookupNames2(lsaHandle, 0, 1, names, ref tdom, ref tsids);
                if (ret != 0)
                    throw new Win32Exception(Win32Sec.LsaNtStatusToWinError(ret));
                lts = (LSA_TRANSLATED_SID2)Marshal.PtrToStructure(tsids,
                typeof(LSA_TRANSLATED_SID2));
                Win32Sec.LsaFreeMemory(tsids);
                Win32Sec.LsaFreeMemory(tdom);
                return lts.Sid;
            }
    
            static LSA_UNICODE_STRING InitLsaString(string s)
            {
                // Unicode strings max. 32KB
                if (s.Length > 0x7ffe)
                    throw new ArgumentException("String too long");
                LSA_UNICODE_STRING lus = new LSA_UNICODE_STRING();
                lus.Buffer = s;
                lus.Length = (ushort)(s.Length * sizeof(char));
                lus.MaximumLength = (ushort)(lus.Length + sizeof(char));
                return lus;
            }
        }
        public class LsaWrapperCaller
        {
            public static void AddPrivileges(string account, string privilege)
            {
                using (LsaWrapper lsaWrapper = new LsaWrapper())
                {
                    lsaWrapper.AddPrivileges(account, privilege);
                }
            }
        }
    }
    '@
    
    Add-Type -TypeDefinition $Source
    [MyLsaWrapper.LsaWrapperCaller]::AddPrivileges($Identity, "SeBatchLogonRight")
    

    Разрешение входа в качестве пакетного задания позволило двигаться дальше — к написанию скрипта, который выполняется из-под пользователя.

    Настройка прокси

    С настройкой прокси оказалось все просто. Рабочее решение быстро нашлось:

    Function Set-Proxy {
        <#
        .SYNOPSIS
            Установка параметров прокси
        .DESCRIPTION
            Данная функция задает параметры прокси для пользователя
        .EXAMPLE
            #Set-Proxy a.cproxy.ru 8080
        .PARAMETER Server
            Адрес или доменное имя сервера (обязательный параметр)
        .PARAMETER Port
            Порт (обязательный параметр)
        #>
    
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][String]$Server,
            [PARAMETER(Mandatory=$True)][Int]$Port
            )
    
        If ((Test-NetConnection -ComputerName $Server -Port $Port).TcpTestSucceeded) {
            Set-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionInternet Settings' -name ProxyServer -Value "$($Server):$($Port)"
            Set-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionInternet Settings' -name ProxyEnable -Value 1
        } Else {
            Write-Error -Message "-- Invalid proxy server address or port:  $($Server):$($Port)"
        }
    }
    

    Запрет создания файлов на рабочем столе

    С запретом создания файлов на рабочем столе пришлось повозиться дольше, чем с сетью. Выставить права на папку оказалось не там просто как в *nix системах. Но и тут нашлись ответы, которые я успешно адаптировал под себя:

    Function Set-AccessRule {
        <#
        .SYNOPSIS
            Установка прав на папку
        .DESCRIPTION
            Данная функция устанавливает заданные права на директорию
        .EXAMPLE
            #Set-AccessRule -Folder $env:USERPROFILEDesktop  -UserName $env:USERNAME -Rules CreateFiles,AppendData -AccessControlType Deny
        .PARAMETER Folder
            Директория, над которой производится действие (обязательный параметр)
        .PARAMETER UserName
            Имя учетной записи пользователя, для кого задаются права доступа (обязательный параметр)
        .PARAMETER Rules
            Права доступа через запятую (обязательный параметр)
        .PARAMETER AccessControlType
            Обязательный параметр, который может принимать одно из двух значений: Allow или Deny
        #>
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][Path]$Folder,
            [PARAMETER(Mandatory=$True)][String]$UserName,
            [PARAMETER(Mandatory=$True)][String]$Rules,
            [PARAMETER(Mandatory=$True)][String]$AccessControlType
            )
    
        #считываем текущий список ACL рабочего стола
        $acl = Get-Acl $Folder
        #Создаем переменную с нужными правами
        $fileSystemRights = [System.Security.AccessControl.FileSystemRights]"$Rules"
        #Cоздаем переменную с указанием пользователя, прав доступа и типа разрешения
        $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($UserName, $fileSystemRights, $AccessControlType)
        #Передаем переменную в класс FileSystemAccessRule для создания объекта
        $acl.SetAccessRule($AccessRule)
        #Применяем разрешения к папке
        $acl | Set-Acl $Folder
    }
    
    Set-AccessRule -Folder $env:USERPROFILEDesktop  -UserName $env:USERNAME -Rules CreateFiles,AppendData,Delete -AccessControlType Deny
    

    Описание FileSystemRights на официальном сайте.

    Настройка панели управления пользователя

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

    PinnedApplication

    function Set-PinnedApplication
    {
        <#
        .SYNOPSIS
            Управление ярлыками на панели управления
        .DESCRIPTION
            Данная функция добавляет или удаляет ярлыки на панели управления пользователя
        .EXAMPLE
            #Set-PinnedApplication -Action UnpinfromTaskbar -FilePath "$env:ProgramFilesInternet Exploreriexplore.exe"
        .EXAMPLE
            #Set-PinnedApplication -Action PintoTaskbar -FilePath "${env:ProgramFiles(x86)}Mozilla Firefoxfirefox.exe"
        .PARAMETER Action
            Обязательный параметр, который может принимать одно из двух значений: UnpinfromTaskbar или PintoTaskbar
        .PARAMETER FilePath
            Имя учетной записи пользователя, для кого задаются права доступа (обязательный параметр)
        #>
        [CmdletBinding()]
        param(
            [Parameter(Mandatory=$True)][String]$Action, 
            [Parameter(Mandatory=$True)][String]$FilePath
       	)
        if(-not (test-path $FilePath)) { 
       	throw "FilePath does not exist."  
        }
        function InvokeVerb {
       	param([string]$FilePath,$verb)
    	$verb = $verb.Replace("&","")
    	$path = split-path $FilePath
    	$shell = new-object -com "Shell.Application" 
    	$folder = $shell.Namespace($path)   
    	$item = $folder.Parsename((split-path $FilePath -leaf))
    	$itemVerb = $item.Verbs() | ? {$_.Name.Replace("&","") -eq $verb}
    	if($itemVerb -eq $null){
    		throw "Verb $verb not found."			
    	} else {
    		$itemVerb.DoIt()
    	}
       }
        function GetVerb {
    	param([int]$verbId)
    	try {
    		$t = [type]"CosmosKey.Util.MuiHelper"
    	} catch {
    	    $def = [Text.StringBuilder]""
    	    [void]$def.AppendLine('[DllImport("user32.dll")]')
    	    [void]$def.AppendLine('public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer);')
    	    [void]$def.AppendLine('[DllImport("kernel32.dll")]')
    	    [void]$def.AppendLine('public static extern IntPtr LoadLibrary(string s);')
    	    Add-Type -MemberDefinition $def.ToString() -name MuiHelper -namespace CosmosKey.Util			
    	}
    	if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){		
    	    $global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll")
    	}
    	$maxVerbLength=255
    	$verbBuilder = New-Object Text.StringBuilder "",$maxVerbLength
    	[void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32,$verbId,$verbBuilder,$maxVerbLength)
    	return $verbBuilder.ToString()
        }
        $verbs = @{ 
    	"PintoTaskbar"=5386
    	"UnpinfromTaskbar"=5387
        }
        if($verbs.$Action -eq $null){
       	Throw "Action $action not supported`nSupported actions are:`n`tPintoTaskbar`n`tUnpinfromTaskbar"
        }
        InvokeVerb -FilePath $FilePath -Verb $(GetVerb -VerbId $verbs.$action)
    }
    

    Заключение

    Скрипты работают, время обслуживания каждой станции сократилось, цель достигнута. Для меня, как пользователя Linux, настройка Windows оказалось не самым простым приключением, но познавательным. Скрипт настройки буду развивать. В планах добавить проверку на наличие установленного ПО и установка, запуск антивируса.

    Итоговые скрипты, которые в работе

    Запуск от имени Администратора

    Function New-User {
        <#
        .SYNOPSIS
            Создание нового пользователя
        .DESCRIPTION
            Данная функция создает нового пользователя и добавляет его в группу Пользователи
        .EXAMPLE
            #New-User "Student" "Student"
        .PARAMETER Name
            Имя нового пользователя (обязательный параметр)
        .PARAMETER Password
            Пароль (обязательный параметр)
        #>
    
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][String]$Name,
            [PARAMETER(Mandatory=$True)][String]$Password
            )
    
        $Pwd = convertto-securestring $Password -asplaintext -force
        $GroupSID = "S-1-5-32-545"
        New-LocalUser -User $Name -AccountNeverExpires:$true -FullName $Name -Password $Pwd -PasswordNeverExpires:$true
        Add-LocalGroupMember -SID $GroupSID -Member $Name
    
        Write-Host "-- Создан пользователь $Name с паролем $Password" -foregroundcolor Green
    }
    
    Function Remove-Users {
        <#
        .SYNOPSIS
            Удаление пользователей
        .DESCRIPTION
            Данная функция удаляет пользователей, которые сейчас не активны и не являются специальными
            Удаляются в том числе рабочий каталог и реестр пользователей
        .EXAMPLE
            #Remove-Users
        #>
        [CmdletBinding()]
    
        $UsersProfiles = Get-WMIObject -class Win32_UserProfile -ComputerName $env:COMPUTERNAME | Where {!($_.Loaded) -and !($_.Special)}
    	foreach($Usr in $UsersProfiles) {
            $UsrName = $Usr.LocalPath.Split("")[2]
            Write-Host "-- Удаление пользователя $UsrName ..." -foregroundcolor Green
            Remove-LocalUser -Name $UsrName
    		Remove-WmiObject -Path $Usr.__PATH
            Write-Host "-- Пользователь $UsrName удален" -foregroundcolor Green
    	}
    }
    
    Function Set-AutoLogon {
        <#
        .SYNOPSIS
            Включение автовхода для пользователя
        .DESCRIPTION
            Данная функция включает автовход для указанного пользователя
        .EXAMPLE
            #Set-AutoLogon  "Student" "Student"
        .PARAMETER Name
            Имя пользователя (обязательный параметр)
        .PARAMETER Password
            Пароль (обязательный параметр)
        #>
    
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][String]$Name,
            [PARAMETER(Mandatory=$True)][String]$Password
            )
    
        $PathToWinlogon = "HKLM:SoftwareMicrosoftWindows NTCurrentVersionWinlogon"
        New-ItemProperty -Path $PathToWinlogon -Name AutoAdminLogon  -Value 1 -PropertyType "String"
        New-ItemProperty -Path $PathToWinlogon -Name DefaultUserName -Value $Name -PropertyType "String"
        New-ItemProperty -Path $PathToWinlogon -Name DefaultPassword -Value $Password -PropertyType "String"
    }
    
    $Source = @'
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace MyLsaWrapper
    {
        using System.Runtime.InteropServices;
        using System.Security;
        using System.Management;
        using System.Runtime.CompilerServices;
        using System.ComponentModel;
    
        using LSA_HANDLE = IntPtr;
    
        [StructLayout(LayoutKind.Sequential)]
        struct LSA_OBJECT_ATTRIBUTES
        {
            internal int Length;
            internal IntPtr RootDirectory;
            internal IntPtr ObjectName;
            internal int Attributes;
            internal IntPtr SecurityDescriptor;
            internal IntPtr SecurityQualityOfService;
        }
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
        struct LSA_UNICODE_STRING
        {
            internal ushort Length;
            internal ushort MaximumLength;
            [MarshalAs(UnmanagedType.LPWStr)]
            internal string Buffer;
        }
        sealed class Win32Sec
        {
            [DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
            SuppressUnmanagedCodeSecurityAttribute]
            internal static extern uint LsaOpenPolicy(
            LSA_UNICODE_STRING[] SystemName,
            ref LSA_OBJECT_ATTRIBUTES ObjectAttributes,
            int AccessMask,
            out IntPtr PolicyHandle
            );
    
            [DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
            SuppressUnmanagedCodeSecurityAttribute]
            internal static extern uint LsaAddAccountRights(
            LSA_HANDLE PolicyHandle,
            IntPtr pSID,
            LSA_UNICODE_STRING[] UserRights,
            int CountOfRights
            );
    
            [DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true),
            SuppressUnmanagedCodeSecurityAttribute]
            internal static extern int LsaLookupNames2(
            LSA_HANDLE PolicyHandle,
            uint Flags,
            uint Count,
            LSA_UNICODE_STRING[] Names,
            ref IntPtr ReferencedDomains,
            ref IntPtr Sids
            );
    
            [DllImport("advapi32")]
            internal static extern int LsaNtStatusToWinError(int NTSTATUS);
    
            [DllImport("advapi32")]
            internal static extern int LsaClose(IntPtr PolicyHandle);
    
            [DllImport("advapi32")]
            internal static extern int LsaFreeMemory(IntPtr Buffer);
    
        }
        /// <summary>
        /// This class is used to grant "Log on as a service", "Log on as a batchjob", "Log on localy" etc.
        /// to a user.
        /// </summary>
        public sealed class LsaWrapper : IDisposable
        {
            [StructLayout(LayoutKind.Sequential)]
            struct LSA_TRUST_INFORMATION
            {
                internal LSA_UNICODE_STRING Name;
                internal IntPtr Sid;
            }
            [StructLayout(LayoutKind.Sequential)]
            struct LSA_TRANSLATED_SID2
            {
                internal SidNameUse Use;
                internal IntPtr Sid;
                internal int DomainIndex;
                uint Flags;
            }
    
            [StructLayout(LayoutKind.Sequential)]
            struct LSA_REFERENCED_DOMAIN_LIST
            {
                internal uint Entries;
                internal LSA_TRUST_INFORMATION Domains;
            }
    
            enum SidNameUse : int
            {
                User = 1,
                Group = 2,
                Domain = 3,
                Alias = 4,
                KnownGroup = 5,
                DeletedAccount = 6,
                Invalid = 7,
                Unknown = 8,
                Computer = 9
            }
    
            enum Access : int
            {
                POLICY_READ = 0x20006,
                POLICY_ALL_ACCESS = 0x00F0FFF,
                POLICY_EXECUTE = 0X20801,
                POLICY_WRITE = 0X207F8
            }
            const uint STATUS_ACCESS_DENIED = 0xc0000022;
            const uint STATUS_INSUFFICIENT_RESOURCES = 0xc000009a;
            const uint STATUS_NO_MEMORY = 0xc0000017;
    
            IntPtr lsaHandle;
    
            public LsaWrapper()
                : this(null)
            { }
            // // local system if systemName is null
            public LsaWrapper(string systemName)
            {
                LSA_OBJECT_ATTRIBUTES lsaAttr;
                lsaAttr.RootDirectory = IntPtr.Zero;
                lsaAttr.ObjectName = IntPtr.Zero;
                lsaAttr.Attributes = 0;
                lsaAttr.SecurityDescriptor = IntPtr.Zero;
                lsaAttr.SecurityQualityOfService = IntPtr.Zero;
                lsaAttr.Length = Marshal.SizeOf(typeof(LSA_OBJECT_ATTRIBUTES));
                lsaHandle = IntPtr.Zero;
                LSA_UNICODE_STRING[] system = null;
                if (systemName != null)
                {
                    system = new LSA_UNICODE_STRING[1];
                    system[0] = InitLsaString(systemName);
                }
    
                uint ret = Win32Sec.LsaOpenPolicy(system, ref lsaAttr,
                (int)Access.POLICY_ALL_ACCESS, out lsaHandle);
                if (ret == 0)
                    return;
                if (ret == STATUS_ACCESS_DENIED)
                {
                    throw new UnauthorizedAccessException();
                }
                if ((ret == STATUS_INSUFFICIENT_RESOURCES) || (ret == STATUS_NO_MEMORY))
                {
                    throw new OutOfMemoryException();
                }
                throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
            }
    
            public void AddPrivileges(string account, string privilege)
            {
                IntPtr pSid = GetSIDInformation(account);
                LSA_UNICODE_STRING[] privileges = new LSA_UNICODE_STRING[1];
                privileges[0] = InitLsaString(privilege);
                uint ret = Win32Sec.LsaAddAccountRights(lsaHandle, pSid, privileges, 1);
                if (ret == 0)
                    return;
                if (ret == STATUS_ACCESS_DENIED)
                {
                    throw new UnauthorizedAccessException();
                }
                if ((ret == STATUS_INSUFFICIENT_RESOURCES) || (ret == STATUS_NO_MEMORY))
                {
                    throw new OutOfMemoryException();
                }
                throw new Win32Exception(Win32Sec.LsaNtStatusToWinError((int)ret));
            }
    
            public void Dispose()
            {
                if (lsaHandle != IntPtr.Zero)
                {
                    Win32Sec.LsaClose(lsaHandle);
                    lsaHandle = IntPtr.Zero;
                }
                GC.SuppressFinalize(this);
            }
            ~LsaWrapper()
            {
                Dispose();
            }
            // helper functions
    
            IntPtr GetSIDInformation(string account)
            {
                LSA_UNICODE_STRING[] names = new LSA_UNICODE_STRING[1];
                LSA_TRANSLATED_SID2 lts;
                IntPtr tsids = IntPtr.Zero;
                IntPtr tdom = IntPtr.Zero;
                names[0] = InitLsaString(account);
                lts.Sid = IntPtr.Zero;
                //Console.WriteLine("String account: {0}", names[0].Length);
                int ret = Win32Sec.LsaLookupNames2(lsaHandle, 0, 1, names, ref tdom, ref tsids);
                if (ret != 0)
                    throw new Win32Exception(Win32Sec.LsaNtStatusToWinError(ret));
                lts = (LSA_TRANSLATED_SID2)Marshal.PtrToStructure(tsids,
                typeof(LSA_TRANSLATED_SID2));
                Win32Sec.LsaFreeMemory(tsids);
                Win32Sec.LsaFreeMemory(tdom);
                return lts.Sid;
            }
    
            static LSA_UNICODE_STRING InitLsaString(string s)
            {
                // Unicode strings max. 32KB
                if (s.Length > 0x7ffe)
                    throw new ArgumentException("String too long");
                LSA_UNICODE_STRING lus = new LSA_UNICODE_STRING();
                lus.Buffer = s;
                lus.Length = (ushort)(s.Length * sizeof(char));
                lus.MaximumLength = (ushort)(lus.Length + sizeof(char));
                return lus;
            }
        }
        public class LsaWrapperCaller
        {
            public static void AddPrivileges(string account, string privilege)
            {
                using (LsaWrapper lsaWrapper = new LsaWrapper())
                {
                    lsaWrapper.AddPrivileges(account, privilege);
                }
            }
        }
    }
    '@
    
    Add-Type -TypeDefinition $Source | Out-Null
    
    
    # -------------------------
    # Пересоздание пользователя
    # -------------------------
    $UserName    = "Student"
    $Password    = "Student"
    
    Remove-Users | Out-Null
    New-User $UserName $Password | Out-Null
    Set-AutoLogon $UserName $Password | Out-Null
    [MyLsaWrapper.LsaWrapperCaller]::AddPrivileges($UserName, "SeBatchLogonRight") | Out-Null
    write-host "-- разрешен вход в качестве пакетного задания для пользователя $UserName" -foregroundcolor Green
    schtasks /create /tn LogonUserSettings /tr "pwsh C:ScriptsSetupUser.ps1" /sc onlogon /ru $env:USERDOMAIN$UserName /rp $Password /f
    

    Запускаемый из-под пользователя Student

    Function Set-Proxy {
        <#
        .SYNOPSIS
            Установка параметров прокси
        .DESCRIPTION
            Данная функция задает параметры прокси для пользователя
        .EXAMPLE
            #Set-Proxy a.cproxy.ru 8080
        .PARAMETER Server
            Адрес или доменное имя сервера (обязательный параметр)
        .PARAMETER Port
            Порт (обязательный параметр)
        #>
    
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][String]$Server,
            [PARAMETER(Mandatory=$True)][Int]$Port
            )
    
    	If ((Test-NetConnection -ComputerName $Server -Port $Port).TcpTestSucceeded) {
    		Set-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionInternet Settings' -name ProxyServer -Value "$($Server):$($Port)"
    		Set-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionInternet Settings' -name ProxyEnable -Value 1
    	} Else {
    		Write-Error -Message "-- Invalid proxy server address or port:  $($Server):$($Port)"
    	}
    }
    
    Function Set-AccessRule {
        <#
        .SYNOPSIS
            Установка правк на папку
        .DESCRIPTION
            Данная функция устанавливает заданные права на дирректорию
        .EXAMPLE
            #Set-AccessRule -Folder $env:USERPROFILEDesktop  -UserName $env:USERNAME -Rules CreateFiles,AppendData -AccessControlType Deny
        .PARAMETER Folder
            Дирректория, над которой производится действие (обязательный параметр)
        .PARAMETER UserName
            Имя учетной записи пользователя, для кого задаются права доступа (обязательный параметр)
        .PARAMETER Rules
            Права доступа через запятую(обязательный параметр)
        .PARAMETER AccessControlType
            Обязательный параметр, который может принмать одно из двух значений: Allow или Deny
        #>
        [CmdletBinding()]
        param (
            [PARAMETER(Mandatory=$True)][String]$Folder,
            [PARAMETER(Mandatory=$True)][String]$UserName,
            [PARAMETER(Mandatory=$True)][String]$Rules,
            [PARAMETER(Mandatory=$True)][String]$AccessControlType
            )
    
        #считываем текущий список ACL рабочего стола
        $acl = Get-Acl $Folder
        #Создаем переменню с нужными правами
        $fileSystemRights = [System.Security.AccessControl.FileSystemRights]"$Rules"
        #Cоздаем переменную с указанием пользователя, прав доступа и типа разрешения
        $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($UserName, $fileSystemRights, $AccessControlType)
        #Передаем переменную в класс FileSystemAccessRule для создания объекта
        $acl.SetAccessRule($AccessRule)
        #Применяем разрешения к папке
        $acl | Set-Acl $Folder
    }
    
    function Set-PinnedApplication
    {
        <#
        .SYNOPSIS
            Управление ярлыками на панели управления
        .DESCRIPTION
            Данная функция добавляет или удаляет ярлыки на панели управления пользователя
        .EXAMPLE
            #Set-PinnedApplication -Action UnpinfromTaskbar -FilePath "$env:ProgramFilesInternet Exploreriexplore.exe"
        .EXAMPLE
            #Set-PinnedApplication -Action PintoTaskbar -FilePath "${env:ProgramFiles(x86)}Mozilla Firefoxfirefox.exe"
        .PARAMETER Action
            Обязательный параметр, который может принимать одно из двух значений: UnpinfromTaskbar или PintoTaskbar
        .PARAMETER FilePath
            Имя учетной записи пользователя, для кого задаются права доступа (обязательный параметр)
        #>
        [CmdletBinding()]
        param(
                [Parameter(Mandatory=$True)][String]$Action, 
                [Parameter(Mandatory=$True)][String]$FilePath
        )
        if(-not (test-path $FilePath)) { 
            throw "FilePath does not exist."  
        }
        function InvokeVerb {
            param([string]$FilePath,$verb)
            $verb = $verb.Replace("&","")
            $path = split-path $FilePath
            $shell = new-object -com "Shell.Application" 
            $folder = $shell.Namespace($path)   
            $item = $folder.Parsename((split-path $FilePath -leaf))
            $itemVerb = $item.Verbs() | ? {$_.Name.Replace("&","") -eq $verb}
            if($itemVerb -eq $null){
                throw "Verb $verb not found."           
            } else {
                $itemVerb.DoIt()
            }
        }
        function GetVerb {
            param([int]$verbId)
            try {
                $t = [type]"CosmosKey.Util.MuiHelper"
            } catch {
                $def = [Text.StringBuilder]""
                [void]$def.AppendLine('[DllImport("user32.dll")]')
                [void]$def.AppendLine('public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer);')
                [void]$def.AppendLine('[DllImport("kernel32.dll")]')
                [void]$def.AppendLine('public static extern IntPtr LoadLibrary(string s);')
                Add-Type -MemberDefinition $def.ToString() -name MuiHelper -namespace CosmosKey.Util            
            }
            if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){        
                $global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll")
            }
            $maxVerbLength=255
            $verbBuilder = New-Object Text.StringBuilder "",$maxVerbLength
            [void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32,$verbId,$verbBuilder,$maxVerbLength)
            return $verbBuilder.ToString()
        }
        $verbs = @{ 
            "PintoTaskbar"=5386
            "UnpinfromTaskbar"=5387
        }
        if($verbs.$Action -eq $null){
            Throw "Action $action not supported`nSupported actions are:`n`tPintoTaskbar`n`tUnpinfromTaskbar"
        }
        InvokeVerb -FilePath $FilePath -Verb $(GetVerb -VerbId $verbs.$action)
    }
    
    Set-Proxy cproxy.udsu.ru 8080
    Set-AccessRule -Folder $env:USERPROFILEDesktop  -UserName $env:USERNAME -Rules "CreateFiles,AppendData,Delete" -AccessControlType Deny
    
    Set-PinnedApplication -Action UnpinfromTaskbar -FilePath "$env:ProgramFilesInternet Exploreriexplore.exe"
    Set-PinnedApplication -Action PintoTaskbar -FilePath "${env:ProgramFiles(x86)}Mozilla Firefoxfirefox.exe"
    Set-PinnedApplication -Action PintoTaskbar -FilePath "$env:ProgramDataMicrosoftWindowsStart MenuProgramsMicrosoft Office 2013Excel 2013.lnk"
    Set-PinnedApplication -Action PintoTaskbar -FilePath "$env:ProgramDataMicrosoftWindowsStart MenuProgramsMicrosoft Office 2013Word 2013.lnk"
    Set-PinnedApplication -Action PintoTaskbar -FilePath "$env:ProgramDataMicrosoftWindowsStart MenuProgramsMicrosoft Office 2013PowerPoint 2013.lnk"
    Set-PinnedApplication -Action PintoTaskbar -FilePath "$env:ProgramDataMicrosoftWindowsStart MenuProgramsАСКОНКОМПАС-3D V16КОМПАС-3D V16.lnk"
    
    # Удаление задачи, после ее выполнения
    Unregister-ScheduledTask -TaskName UdSUSettingStudent -Confirm:$false
    

    • Remove From My Forums

     locked

    Не могу заставить работать планировщик

    • Вопрос

    • Есть необходимость выполнять планировщиком задание от имени пользователя, учётная запись которого присутствует, но вход в систему не произведён. Никак не могу этого добиться. Если планировщик настроен как показано ниже, то всё
      работает, но для этого надо под этим пользователем войти в систему (локально или по терминалу).

      Если же настроить планировщик «Выполнять вне зависимости от регистрации пользователя», то задание не выполняется в журнале отображается сообщение что задание запущено и «висит часами» без каких-либо ошибок или дальнейших сообщений.

      Пробовал расставлять различные галочки «Не сохранять пароль…», «Выполнять с наивысшими …..» — ничего не меняется. В приведённых выше примерах автор задания тот пользователь от имени которого и надо выполнить
      задание, делал автором «Администратора», создавая задание от его имени, также не работает.


      im2002

    Ответы

    • У пользователя есть права в Local Security Policy «Log on as a batch job»/»Вход в качестве пакетного задания»?
      И еще — у CONS.EXE ключ /YES стоит?

      • Изменено

        20 апреля 2014 г. 18:49

      • Помечено в качестве ответа
        im20002
        21 апреля 2014 г. 4:58

    • Remove From My Forums
    • Question

    • I’m simply trying to configure Task Scheduler to run batch files in the middle of the night.  So I created a task within the scheduler and have specified «Run whether the user is logged on or not».  When I hit ok, it promots me for my username/password. 
      I’m a domain/enterprise admin logged into a domain account.  It tells me;

      «This task requires that the user account specified has Log on as batch job rights»

      Ok, so after looking this up I find myself editing the default domain policy:

      Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesUser Rights Assignment

      I find the above user right, enable it and add my username.  I log off, back on again and back into the scheduler.  It still tells me I need this right.  I checked, my username is there in the list beside the right.

      Why can’t I create a schedule even with the right I’m supposed to have?

      Thanks!

       — Edit:

      Ok I found this:

      2. Type in secpol.msc /s

      3. Select «Local Policies» in MSC snap in

      4. Select «User Rights Assignment»

      5. Right click on «Log on as batch job» and select Properties

      6. Click «Add User or Group», and include the relevant user.

      There’s a lot of users in here for different things but the Add User or Group button is greyed out.  I’m a domain/enterprise administrator.  Why can’t I add anything here?

      Or put more simply, how do I give myself this right?

      Thanks again

      • Edited by

        Wednesday, November 30, 2011 9:27 PM

    Answers

    • Hi,

      Thanks for your posting.

      Do you mean you configured Task Scheduler on your DC, but when you tried to save the setting, you got error with “This
      task requires that the user account specified has log on as batch job rights”?

      I think your issue is caused by “Default Domain Policy” or “Default Domain Controllers Policy”. Please
      check Settings tab of these two GPOs in Group Policy Management Consult. Make sure your account is not be added in “Computer Configuration—>Policies—>Windows Settings—>Security Settings—>Local Policies—>User Rights Assignment—>Deny
      log on as a batch job” and have correctly configured in “log on as a batch Job”.

      Or you can reset these two Default Policies
      by referring to following article:
      http://social.technet.microsoft.com/Forums/en/winserverDS/thread/e8a7c194-d3bf-4e1c-857c-7f779cc86705

      And for your question “There’s a lot of users in here for different things but the
      Add User or Group button is greyed out”. I think this setting is overwritten by “Default Domain Controller Policy”, so you can’t modify the local policy.

      Hope this can help! If you have any questions or confusions, please let us know.

      Best Regards,
      Lawrence


      Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

      • Marked as answer by
        Lawrence,Lu
        Friday, December 2, 2011 12:57 AM

    • This policy is grayed out because is overwritten by some particular domain policy. You should find that policy and edit it. Let Group Policy Management console -> Group Policy Results help you.


      MCITP: Enterprise Administrator; MCT; Microsoft Security Trusted Advisor; CCNA; CCSI

      • Marked as answer by
        meshman333
        Thursday, December 1, 2011 1:29 PM

    • Remove From My Forums
    • Question

    • I’m simply trying to configure Task Scheduler to run batch files in the middle of the night.  So I created a task within the scheduler and have specified «Run whether the user is logged on or not».  When I hit ok, it promots me for my username/password. 
      I’m a domain/enterprise admin logged into a domain account.  It tells me;

      «This task requires that the user account specified has Log on as batch job rights»

      Ok, so after looking this up I find myself editing the default domain policy:

      Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesUser Rights Assignment

      I find the above user right, enable it and add my username.  I log off, back on again and back into the scheduler.  It still tells me I need this right.  I checked, my username is there in the list beside the right.

      Why can’t I create a schedule even with the right I’m supposed to have?

      Thanks!

       — Edit:

      Ok I found this:

      2. Type in secpol.msc /s

      3. Select «Local Policies» in MSC snap in

      4. Select «User Rights Assignment»

      5. Right click on «Log on as batch job» and select Properties

      6. Click «Add User or Group», and include the relevant user.

      There’s a lot of users in here for different things but the Add User or Group button is greyed out.  I’m a domain/enterprise administrator.  Why can’t I add anything here?

      Or put more simply, how do I give myself this right?

      Thanks again

      • Edited by

        Wednesday, November 30, 2011 9:27 PM

    Answers

    • Hi,

      Thanks for your posting.

      Do you mean you configured Task Scheduler on your DC, but when you tried to save the setting, you got error with “This
      task requires that the user account specified has log on as batch job rights”?

      I think your issue is caused by “Default Domain Policy” or “Default Domain Controllers Policy”. Please
      check Settings tab of these two GPOs in Group Policy Management Consult. Make sure your account is not be added in “Computer Configuration—>Policies—>Windows Settings—>Security Settings—>Local Policies—>User Rights Assignment—>Deny
      log on as a batch job” and have correctly configured in “log on as a batch Job”.

      Or you can reset these two Default Policies
      by referring to following article:
      http://social.technet.microsoft.com/Forums/en/winserverDS/thread/e8a7c194-d3bf-4e1c-857c-7f779cc86705

      And for your question “There’s a lot of users in here for different things but the
      Add User or Group button is greyed out”. I think this setting is overwritten by “Default Domain Controller Policy”, so you can’t modify the local policy.

      Hope this can help! If you have any questions or confusions, please let us know.

      Best Regards,
      Lawrence


      Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

      • Marked as answer by
        Lawrence,Lu
        Friday, December 2, 2011 12:57 AM

    • This policy is grayed out because is overwritten by some particular domain policy. You should find that policy and edit it. Let Group Policy Management console -> Group Policy Results help you.


      MCITP: Enterprise Administrator; MCT; Microsoft Security Trusted Advisor; CCNA; CCSI

      • Marked as answer by
        meshman333
        Thursday, December 1, 2011 1:29 PM

    Понравилась статья? Поделить с друзьями:
  • Второй экран в windows 10 как закрыть
  • Вход в качестве пакетного задания windows 10 home
  • Второй скайп на одном компе windows 10
  • Вход в защищенный режим windows 10
  • Второй рабочий стол windows 10 со своими ярлыками