Как заблокировать обычных (не администраторов) пользователей во время установки программного обеспечения?

12

У нас много тонких клиентов под управлением Windows Embedded Standard 7 и сервер SCCM 2012 R2 для управления ими. У тонких клиентов включены фильтры записи (FBWF), поэтому изменения машины не являются постоянными. В редких случаях нам нужно что-то обновить на них, мы просто внедряем это через SCCM, и оно автоматически отключает и снова включает фильтры записи для фиксации изменений.

Вот что должно произойти:
клиент SCCM уведомляет пользователя и 30-минутный обратный отсчет, чтобы сохранить его работу и выйти из системы. Затем тонкий клиент перезагружается и отключает фильтр записи. Экран входа в систему отображает замок и замечает, что устройство обслуживается, и не позволит обычным пользователям (не администраторам) войти в систему, пока SCCM делает это. Когда SCCM завершен, он снова включает фильтр записи, перезагружается, и тогда пользователи могут снова войти в систему.

У меня проблема в том, что мы используем считыватели бесконтактных карт для входа в систему. Сотрудники не вводят пароли. Они просто нажимают на свой значок. Эта система хороша, но программное обеспечение, которое ее запускает, нарушает автоматизацию фильтра записи в Windows Embedded.

Вот что на самом деле происходит:
клиент SCCM выдает обычное уведомление за 15 минут до перезагрузки с отключенным фильтром записи. Когда он перезагружается, отображается обычный экран входа в систему. Пользователи могут войти в систему и использовать ее, пока SCCM устанавливает программное обеспечение. И поскольку пользовательский сеанс активен, он снова дает 30-минутное уведомление перед перезагрузкой с включенным фильтром записи.

В этом сценарии он не только добавляет дополнительные 30 минут к времени развертывания, но также дает обычным пользователям 30-60 минут незащищенного времени на тонких клиентах, и любые изменения, которые они вносят, навсегда запекаются в образе, когда Фильтр записи снова включается.

Проблема связана с тем, что в Windows Embedded 7 используется поставщик учетных данных, отличный от обычного Windows 7, но продукт SSO должен заменить поставщика учетных данных Windows, чтобы функционировать. Я связался с продавцом по этому поводу, но они просто говорят, что это известная проблема, и нет решения или обходного пути для этого.

Итак, вот мой вопрос:
как я могу имитировать желаемое поведение другим способом? Я знаю, что есть параметр групповой политики, в котором вы можете запретить локальный вход в определенные группы пользователей. Я думал, что смогу перевернуть соответствующий параметр реестра до и после установки, но я открыт для других идей.

Я не выше сценариев установки, если мне нужно. Я свободно владею скриптами, PowerShell, VBScript и т. Д. Мне просто интересно, есть ли у кого-нибудь яркие идеи о том, как решить эту проблему.


Обновление:
я забыл упомянуть, что эти устройства используются в больничной среде для персонала, чтобы составить карту своих пациентов. Они должны быть доступны 24 часа в сутки, поэтому мы не можем ограничить часы входа в систему или настроить окна обслуживания. Мы справляемся с простоями, заблаговременно уведомляя начальников смен, но все, что занимает более часа, становится проблемой соблюдения правовых норм и требует введения в действие официальных процедур простоя.

Уэс Сайид
источник
Отличный вопрос Я хотел бы иметь лучший ответ.
Хороший вопрос, надеюсь, ваша история с горечью отговаривает других от покупки тонких клиентов. Я ненавижу весь багаж, который приносят эти устройства с «низким уровнем обслуживания»,
Джим Б.

Ответы:

4

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

мы просто проталкиваем его через SCCM

SCCM - это технология, основанная на извлечении. Я знаю, что вы имели в виду, но я обнаружил, что у моих парней первого уровня каждая возможность подчеркнуть, что SCCM не является технологией, основанной на push, помогает им быстрее понять ее.


Я связался с поставщиком по этому поводу, но они просто говорят, что это известная проблема, и нет решения или обходного пути для этого

Это очень плохо, так как кажется, что причиной этой проблемы является встроенная программа проверки подлинности карты. Держите поставщика, возможно, они действительно исправят свое программное обеспечение.



На реальный ответ - я вижу несколько возможных решений для вас, ни одно из них не особенно хорошо.

  • Настройте окно обслуживания для этих клиентов, чтобы ваша первоначальная перезагрузка для удаления клиентов из их фильтра записи, фактическая полезная нагрузка и полученная перезагрузка происходили в нерабочее время, когда сотрудники не присутствуют на терминалах. Это кажется наименее болезненным вариантом. Нет необходимости делать SCCM более сложным, чем он есть.
  • Создайте шаблон локальной групповой политики, который добавляет группу безопасности к праву пользователя «Запретить вход в систему», а затем назначьте / отмените ее как часть развертывания приложения.
  • Используйте PowerShell, чтобы установить право запретить вход в систему. Я полагаю, что в PowerShell Community Extensions (PSCX) есть Set/Get-Privilegesкомандлеты, которые позволят вам манипулировать назначением прав пользователя.
  • Вы можете использовать API, если хотите. Вот пример .

источник
Спасибо за ответ. Я обновил свой вопрос, чтобы отразить окружающую среду. Это операция 24x7, поэтому вариант 1 не подходит. Вариант 2 был тем, о чем я думал, но я не знаю способа назначить / отменить назначение объекта групповой политики по требованию. Это оставляет варианты 3 и 4, которые я рассмотрю. Я подумал, что мне, вероятно, придется написать свой выход из этого. Ох, и я исправил терминологию :-)
Уэс Сайед
@WesSayeed Теоретически вы должны иметь возможность создавать шаблоны локальной групповой политики с SecPol.msc, сохранять их как шаблоны и применять / отменять с secedit.exeпомощью сценария. Я не говорю об использовании групповой политики Active Directory, поскольку случайное время опроса не сработает для вашего жесткого окна обслуживания.
+1, мне нравится этот ответ, и я не знал о PSCX.
MDMoore313
4

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

Если все, что вы устанавливаете и настраиваете, обрабатывается с помощью SCCM, вы должны иметь возможность использовать последовательность задач для этого. В первую очередь для OSD, использование TS не только для OSD и может обеспечить следующие преимущества:

Нет входа на рабочую станцию

TS запускается до запуска winlogon.exe, поэтому пользователь не может случайно войти в систему, так как нет окна входа в систему. Что подводит меня ко второму пункту:

Пользовательский фоновый экран

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

TS на самом деле является просто прославленным скриптом, но он обладает множеством функциональных возможностей и собран таким образом, чтобы сократить время разработки, и я нашел варианты использования за пределами OSD.

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

MDMoore313
источник
1
+1 Мне всегда было интересно, были ли в реальном мире последовательности задач, не связанные с OSD.
alx9r
@BigHomie; Я просто попытался выполнить развертывание, используя последовательность задач, а не обычное приложение, и это не помешало входу пользователя. Первым шагом в последовательности задач является перезагрузка компьютера. Как только компьютер возвращается, он представляет нормальный экран входа в систему. Последовательность задач не возобновляется примерно через минуту (поскольку служба настроена на отложенный запуск). Я могу настроить запуск службы сразу с групповой политикой, чтобы пользователь мог видеть индикатор выполнения, но это будет только препятствовать входу в систему, а не предотвращать его. Я что-то пропустил?
Уэс Сайид
@WesSayeed !! Это TS объявлено пользователю или компьютеру?
MDMoore313
@BigHomie; AFAIK, последовательности задач могут быть объявлены только в компьютерных коллекциях.
Уэс Сайид
Это верно, я забыл об этом. К сожалению, в прошлом году я устроился на новую работу и довольно долго был вне игры sccm. Я продолжу поиск ответа, но я подумал, что тот же механизм, который позволял устанавливать программное обеспечение во время OSD до появления экрана входа в систему, можно использовать и вне OSD. Я полагаю, что вы не можете выполнить развертывание, если машина загружается в WinPE, правильно?
MDMoore313
2

Вы не указали, использует ли программное обеспечение единого входа учетные данные Active Directory, поэтому решение состоит в том, чтобы использовать функцию «Часы входа в систему» ​​Active Directory. Это на уровне пользователя, но может быть легко написано в Powershell ( это пример). По сути, установите часы входа в систему, чтобы «запретить» вход в систему в окне обновления SCCM, и пользователи не смогут войти в клиенты, пока SCCM делает свое дело. Вам потребуется первая принудительная перезагрузка, при которой они будут выходить из системы (функция часов входа в систему не работает для вошедших в систему пользователей), но в противном случае реализовать ее было бы безболезненно.

Натан С
источник
Программное обеспечение SSO использует AD. Все, что он делает, это сопоставляет тег RFID с учетной записью AD и передает учетные данные в Windows для выполнения входа в систему. Я обновил свой ответ, чтобы объяснить, почему я не могу использовать часы входа в систему (я не упомянул об окружающей среде), но я посмотрю на сценарий, на который вы ссылались. Я мог бы сделать что-то подобное на месте.
Уэс Сайид
-1

Может захотеть проверить это и посмотреть, работает ли он:

Сценарий в начале действия SCCM для выполнения следующих действий:

  • Удалить NT AUTHORITY \ Authenticated Users удостоверение личности из локальной группы пользователей
  • Удалить NT AUTHORITY \ Интерактивная личность из локальной группы пользователей
  • Удалить группу пользователей домена из локальной группы пользователей

В конце:

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

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

Что-то немного более трейлерное, в начале действия SCCM можно скопировать ярлык для logoff.exe в папку «Пуск всех пользователей» \ «Папка запуска» (обычно это C: \ ProgramData \ Microsoft \ Windows \ «Пуск» \ Programs \ StartUp). Это приведет к выходу из сеанса сразу после входа в систему. Чтобы быть в безопасности, вы можете захотеть иметь скрипт запуска / выключения, чтобы удалить этот ярлык. (Я считаю, что ярлыки при запуске можно обойти, удерживая клавишу Shift во время входа в систему).

Грег Аскью
источник
Мне нужно -1 это, это будет работать, но если сценарий будет убит в середине, из-за какой-то случайной ошибки или закона Мерфи, тогда пользователь не сможет войти в систему, и они будут мертвы в воде, пока IT не сможет ответить.
MDMoore313