2

Поэтому в настоящее время я ищу решение, позволяющее пользователям выходить из системы, пока программное обеспечение устанавливает или активирует всплывающее сообщение, которое нельзя перемещать, закрывать и которое всегда находится сверху, потому что иногда, когда мы разворачиваем программное обеспечение для пользователей (через SCCM), параметры установки требуют, чтобы пользователь вышел из системы на время установки. Я смотрел на попытку настроить групповую политику для блокировки учетной записи, но безуспешно. Кто-нибудь знает какие-либо программы или скрипты, которые делают это?

Спасибо!

2 ответа2

1

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

Сначала я написал скрипт в powershell для отображения заставки HTA на экране входа в систему, информируя пользователя о том, что установка происходит следующим образом:

#Set-ExecutionPolicy -ExecutionPolicy Bypass -Force
#$ErrorActionPreference = 0
$args = @('-accepteula', '-s', '-h', '-x', 'mshta.exe "c:\temp\splash.hta"')
$thisfolder = Split-Path -Parent $MyInvocation.MyCommand.Definition #Get's the folder you are currently in
$installpath = "C:\GOOGLE_SKETCHUP_PRO_14p0p4900\Install-Sketchup2014.cmd" #path to install (msi, exe, cmd, etc...)

Copy-Item $thisfolder\* C:\temp -Exclude *.ps1 -Recurse -Force
start-process -file c:\temp\pstools\psexec.exe  -ArgumentList $args -WindowStyle Minimized #opens login splash screen
#Start-process $installpath -NoNewWindow -Wait -WindowStyle Hidden #starts the install and waits until its finished to close the splash screen
Start-Sleep 10 #To simulate an installation.. 
Get-Process mshta | Stop-Process -Force #closes the splash screen
Get-Process PSEXESVC | Stop-Process -Force #closes the PSExec
cmd.exe /c "rd C:\TEMP\PSTools /s /q" #removes pstools from computer
cmd.exe /c "del C:\TEMP\splash.hta /q /f" #removes splash screen files from computer

Затем я использовал скрипт autoIt3 для блокировки мыши и клавиатуры на время установки с помощью функции BlockInput() AutoIt3. Я превратил скрипт в EXE-файл, чтобы его можно было запускать без автоматической установки на машине.

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

0

Вы можете посмотреть на изменение следующего значения реестра:

HKEY_LOCAL_MACHINE\ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Userinit

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

C:\windows\system32\userinit.exe

но это может быть изменено, чтобы делать все, что вы хотите. Например, у нас есть несколько систем, которые мы хотим использовать в качестве дамп-терминалов, подключающихся к нашей ферме серверов терминалов Citrix. мы делаем это, изменяя это значение следующим образом:

c:\\windows\\system32\\wscript.exe c:\\someFolder\\somescript.vbs

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

Опять же, это не помешает пользователю войти в систему, но предотвратит начало сеанса входа в систему и немедленно завершит его регистрацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .