Чтобы подготовить файл ответов Autounattend.xml для цели формирования собственного образа Windows Server 2016 Standard из скачанного с Microsoft Volume License Service оригинального образа: SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO[wbcr_html_snippet]: PHP snippets error (not passed the snippet ID)
Нужно, опираясь на ранее опубликованную заметку, где я показал шаги, как сделать файл ответов для Windows Server 2012 R2 Std English пройтись по ней изменяя только используемый образ – все шаги одинаковы. Или же взять файл ответов Autounattend.xml от Server 2012 R2 и сохранить как Autounattend.xml в каталог C:\isoproject
На заметку: Все дальнейшие действия выполняются из-под Windows 10 Pro с правами локального администратора системы с применением установленного пакета Windows ADK.
Шаг №1: Опять извлекаю информацию по индексам какие редакции можно установить из распакованного образа:
Индекс 2: Windows Server 2016 Standard (Desktop Experience)
Индекс 3: Windows Server 2016 Datacenter
Индекс 4: Windows Server 2016 Datacenter (Desktop Experience)
Т.к. мне нужно только Desktopредакция то извлекаю во временную директорию данный индекс и после замещаю оригинальный:
1234567891011121314151617181920212223
C:\WINDOWS\system32>dism /export-image /sourceimagefile:c:\isoproject\sources\install.wim /sourceindex:2 /destinationimagefile:c:\windows\temp\install.wim /compress:max /checkintegrity C:\WINDOWS\system32>copy /Y c:\windows\temp\install.wim c:\isoproject\sources\install.wim C:\WINDOWS\system32>del c:\windows\temp\install.wim C:\WINDOWS\system32>dism /get-wiminfo /wimfile:c:\isoproject\sources\install.wim Cистема DISM Версия: 10.0.17134.1 Сведения об образе : c:\isoproject\sources\install.wim Индекс: 1 Имя : Windows Server 2016 Standard (Desktop Experience) Описание : This option is useful when a GUI is required—for example, to provide backward compatibility for an application that cannot be run on a Server Core installation. All server roles and features are supported. For more details see “Windows Server Installation Options.” Размер (байт): 15 560 241 110 Операция успешно завершена.
На заметку: А можно и не делать все выше, а использовать в файл ответов Autounattend.xml
/IMAGE/NAME = Windows Server 2016 Standard (Desktop Experience)
/IMAGE/INDEX = это то-что я использую
/IMAGE/DESCRIPTION
Шаг №2: Затем через редактор Notepadd++ открыть c:\isoproject\Autounattend.xml и внести следующие изменения:
Была строка:
1
<cpi:offlineImage cpi:source=”wim:c:/isoproject/sources/install.wim#Windows Server 2012 R2 SERVERSTANDARD” xmlns:cpi=”urn:schemas-microsoft-com:cpi” />
Изменил на:
1
<cpi:offlineImage cpi:source=”wim:c:/isoproject/sources/install.wim#Windows Server 2016 SERVERSTANDARD” xmlns:cpi=”urn:schemas-microsoft-com:cpi” />
После не забываем сохранить внесенные изменения.
Шаг №3: Формирую образ:
Win -> Windows Kits – через правый клик на «Среда средств развертывания и работы с образами» выбираю «Дополнительно» — «Запуск от имени администратора»
Шаг №4: Проверяю на тестовом окружении: QEMU+KVM, ESXi, Virtualbox, сейчас уже использую Proxmoxкак установится система из сформированного образа Шаг №3. Итого, система установилась. По сути получается, что я могу для Windows Server 2012 R2 Std подготовить файл ответов + предопределенные нюансы настройки на продуктивное использование и их же применить к общей базе системы Windows Server 2016 Std.
На этом я прощаюсь, задача выполнена, с уважением автор блога Олло Александр aka ekzorchik.
Мое рабочее место (ОС: Windows 10 Pro (10.0.17134.950)), как системного администратора третьей линии поддержки включает в себя рабочее место под управлением:
И вот приходится то одно удалить, то другое заархивировать, но нужно ведь держать систему в порядке, а потому:
В виду того факта что место на диске C: системы Windows 10 Pro почему-то стало заканчиваться была предпринята попытка через утилиту TreeSize Professional проанализировать куда израсходовалось. Анализ показал…
C:\Windows\WinSxS -> целых 10Gb -> вот этим каталогом и займусь в этой заметке.
Возник вопрос, если обновления установлены, так почему же каталог отбирает столько места. По-другому и сказать нельзя без эмоций. А нет, документация от Майкрософт показала, что я немного ошибся: WinSxS-> хранит резервные копии системных файлов/компонентов ОС до обновлений. Вы ставите обновления и в папку сохраняются изменения о файлах чтобы если что была возможность их удалить и отменить установленные обновления.
Ладно, перехожу к практике:
Вариант №1: В ручную через запуск утилиты cleanmgr.exe (Очистка диска) -> Очистить системные файлы – и отмечаем галочкой «Очистка обновлений Windows». Будет активирована задача.
Вариант №2: В системе есть дефолтная задача которая якобы выполняет «Очистку обновлений Windows” с указанной вами периодичностью, у меня она почему-то не отрабатывает. Так что я данный вариант не использую, мне проще командами – так я знаю, что заложенное действие в команду отработает.
Win + X > Командная строка (администратор)
Вариант №3:
Инициализирую анализ каталога WinSxS, каков его объем, фактический размер и когда он последний раз очищался:
1234567891011121314151617181920212223242526272829
C:\WINDOWS\system32>dism.exe /online /Cleanup-Image /AnalyzeComponentStore Cистема DISM Версия: 10.0.17134.1 Версия образа: 10.0.17134.950 [===========================99.3%========================= ] Сведения хранилища компонентов (WinSxS): Размер хранилища компонентов по данным проводника : 8.39 GB Фактический размер хранилища компонентов : 8.05 GB Совместно с Windows : 4.51 GB Резервные копии и отключенные компоненты : 3.25 GB Кэш и временные данные : 278.22 MB Дата последней очистки : 2019-08-16 05:14:31 Число освобождаемых пакетов : 1 Рекомендуется очистка хранилища компонентов : Да Операция успешно завершена.
Вариант №4: Запускаю очистку папки WinSxS (замечу, что данная команда выполняется долго):
123456789101112131415
C:\WINDOWS\system32>dism.exe /online /Cleanup-Image /StartComponentCleanup Cистема DISM Версия: 10.0.17134.1 Версия образа: 10.0.17134.950 [===== 9.8% ] [==========================100.0%==========================] Операция успешно завершена. C:\WINDOWS\system32>
После проделанных команды из указанных выше вариантов, см. размер каталога c:\windows\winsxs\ по данным свойств каталога:
Размер: 6,76Gb
На диске: 5,18Gb
А применяя «Вариант №3»:
1234567891011121314151617181920212223242526272829
C:\WINDOWS\system32>dism.exe /online /Cleanup-Image /AnalyzeComponentStore Cистема DISM Версия: 10.0.17134.1 Версия образа: 10.0.17134.950 [==========================100.0%==========================] Сведения хранилища компонентов (WinSxS): Размер хранилища компонентов по данным проводника : 5.46 GB Фактический размер хранилища компонентов : 5.37 GB Совместно с Windows : 4.48 GB Резервные копии и отключенные компоненты : 611.73 MB Кэш и временные данные : 278.22 MB Дата последней очистки : 2019-08-21 11:16:05 Число освобождаемых пакетов : 0 Рекомендуется очистка хранилища компонентов : Нет Операция успешно завершена.
Подвожу итог оформив вывод в виде таблицы:
До
После
Версия: 10.0.17134.1
Версия: 10.0.17134.1
Версия образа: 10.0.17134.950
Версия образа: 10.0.17134.950
Размер хранилища компонентов по данным проводника: 8.39Gb
Размер хранилища компонентов по данным проводника:5.46Gb
Фактический размер хранилища компонентов: 8.05Gb
Фактический размер хранилища компонентов:5.37Gb
Совместно с Windows: 4.51Gb
Совместно с Windows: 4.48Mb
Резервные копии и отключенные компоненты: 3.25Gb
Резервные копии и отключенные компоненты: 611.73Mb
Кэш и временные данные: 278.22Mb
Кэш и временные данные: 278.22Mb
Вижу данные поменялись в меньшую сторону, значит что-то работало, а изначально было:
До: C:\Windows\WinSxS -> целых 10Gb
После: C:\Windows\WinSxS -> целых 6,76Gb
Итог сэкономлены 4Gb, не существенно, конечно, но как вариант.
Вывод: Если уж рабочих диск мал, то можно и заниматься чисткой, а так в текущее время больших объемов HDD/SDD заниматься такой ерундой не заслуживает потраченного времени вручную, автоматизировать – «Да». На этом я прощаюсь, с уважением Олло Александр aka ekzorchik.
Порой приходится вводить в строй новые терминальные сервера, а это подразумевает собой и восстановление на них всех настроек заведенных принтеров. В этом случае
У меня TS (Terminal Server – Терминальный сервер):
OS: Windows Server 2016 Standard
Role: Remote Desktop + Print Server
Чтобы сделать бекап настроек Print Server нужно:
Шаг №1: Авторизоваться на системе с правами администратора.
Шаг №2: Открыть оснастку Print Manager и действия по бекапированию настроек принтеров:
Win + X – Control Panel – View by: Category -> Small icons – Administrative Tools – Print Manager – и через правый клик мышью на текущем хосте, у меня он srv-ts2(local) выбрать “Export printers to a file…” в появившемся окне “Print Migration” будет сперва представлено какие драйвера принтеров будут экспортированы в файл, нажимаем Next – указываем место сохранения в файловой системе, к примеру:
Export printer data to: c:\1\srv_ts_local_print_backup
И нажимаем Save к указанному именованию добавится расширение:
1
C:\1\srv_ts_local_print_backup.printerExport
Нажимаем Next и начинается процесс экспорта.
И нажимаю Finish для выхода из мастера.
На заметку: Делать данную процедуру можно также в процессе работы терминального сервера с ролью принт сервера.
Если все сделано правильно, то Вы должны видеть сообщение: Export complete. The operation completed with no errors.
Printbrm.exe
По логам в оснастке Event Viewer (local) – Applications and Services Logs – Microsoft – Windows – PrintBRM - Admin значатся сообщения:
Event ID: 1
Source: PrintBRM
Description: Printbrm.exe (the Printer Migration Wizard or the command-line tool) is beginning a backup of print queues. No user action is required.
Event ID: 33
Source: PrintBRM
Description: Printbrm.exe (the Printer Migration Wizard or the command-line tool) is backing up printer forms. No user action is required.
Что из себя представляем экспортированный файл с описание/драйверами для всех установленных драйверов принт сервера:
123
ekzorchik@ADM-19:/mnt/c/test$ file srv_ts_local_print_backup.printerExport srv_ts_local_print_backup.printerExport: Zip archive data, at least v4.5 to extract
если щелкнуть по нему левой кнопкой мыши, к примеру в Windows 10 Pro (Version 10.0.17134.950), то запуститься оснастка «Перенос принтеров» где будет указано какие объекты можно импортировать. А если открыть через архиватор 7zip, то в данном архиве присутствует:
Каталог Drivers – драйвера на принтера
Каталог Printers – принтера
И xml файлы: портов, форм и т.д
Т.е. по-сути все что есть в оснастке Print Manager раздела Print Servers – srv-ts2 (local): Drivers, Forms, Ports, Printers.
Шаг №3: Открыть оснастку Print Manager и действия по восстановлению настроек принтеров:
Win + X – Control Panel – View by: Category -> Small icons – Administrative Tools – Print Manager
и через правый клик мышью на текущем хосте, у меня он srv-ts2(local) выбрать “Import printers from a file…”, указать путь до файла (с:\test\srv_ts_local_print_backup.printerExport) сделанного через экспорт и следовать указаниям мастера.
После чего, собственно, все, настройки принтеров, драйверов, портов успешно, как бы установлены с нуля, за исключением, что были восстановлены с другой системы. Задача выполнена, с уважением автор блога Олло Александр aka ekzorchik.
Порой политика не отрабатывает, а по мере того, как она допиливается, приходят заявки вида:
Описание: Очистить КЭШ 1С на терминальных серверах: TS1 ; TS2 ; TS4 ; TS9 ; TS10 ; TS11 ; TS12 Login: alektest При необходимости, можно завершить процесс 1cv8.exe пользователя на терминальном сервере.
и чтобы не обходить каждый сервер, либо заходя на него через mstsc /v: или Win + E и через строку адреса указываю путь где хранится кэш 1Судалять GUIDкаталог формируемый при инициализации подключения к 1Сбазе я по быстрому наваял небольшой batchскрипт который я запускаю находясь в консоли командной строки на своей рабочей системе под управлением Windows 10 Pro (она в домене, как и терминальные сервера).[wbcr_html_snippet]: PHP snippets error (not passed the snippet ID)
c:\Script>tips_ts_clear_v1.bat c:\Script>echo off[Name TS User:]alektestTS1Не существуют сеансы для alektestЕсли указано имя сервера, нужно указать код сеанса или имя сеанса.Режим вывода команд на экран (ECHO) отключен.Не удается найти указанный файл.Не удается найти указанный файл.TS2Не существуют сеансы для alektestЕсли указано имя сервера, нужно указать код сеанса или имя сеанса.Режим вывода команд на экран (ECHO) отключен.Не удается найти указанный файл.Не удается найти указанный файл.TS4Не существуют сеансы для alektestЕсли указано имя сервера, нужно указать код сеанса или имя сеанса.Режим вывода команд на экран (ECHO) отключен.Не удается найти указанный файл.Не удается найти указанный файл.TS9Не существуют сеансы для alektestЕсли указано имя сервера, нужно указать код сеанса или имя сеанса.Режим вывода команд на экран (ECHO) отключен.Не удается найти указанный файл.Не удается найти указанный файл.TS10Не существуют сеансы для alektestЕсли указано имя сервера, нужно указать код сеанса или имя сеанса.Режим вывода команд на экран (ECHO) отключен.Не удается найти указанный файл.Не удается найти указанный файл.TS11Не существуют сеансы для alektestЕсли указано имя сервера, нужно указать код сеанса или имя сеанса.Режим вывода команд на экран (ECHO) отключен.Не удается найти указанный файл.Не удается найти указанный файл.TS12Не существуют сеансы для alektestЕсли указано имя сервера, нужно указать код сеанса или имя сеанса.Режим вывода команд на экран (ECHO) отключен.Не удается найти указанный файл.Не удается найти указанный файл.Для продолжения нажмите любую клавишу . . .
Это запущенный пример, как видно ни на одном терминальном сервере нет залогиненной учетной записи под логином alektest, а если бы соединение было, то в одном из подключении строки были бы:
123456
TS11Режим вывода команд на экран (ECHO) отключен.Будет выполнен выход alektest (сеанс 1277) из системы ,продолжить (n=нет)?1277Не удается найти указанный файл.Не удается найти указанный файл.
От 18.11.2019 — Выкладываю свой скрипт выполняющий задачу очистки кеша
echo offrem Author Ollo Alexander aka ekzorchikrem 18.11.2019 11:52rem Work!!! setlocal enabledelayedexpansionrem кода достигнут конец файла выполняется endlocal, все из-за строчки вышеset /p name=[Name TS User:]dsquery user -samid %name%set host1=ts1.polygon.localset host2=ts2.polygon.localset host9=ts9.polygon.localset host10=ts10.polygon.localset host11=ts11.polygon.localset host12=ts12.polygon.localset host13=u2-ts13.polygon.localset host14=u2-ts14.polygon.localset host15=u2-ts15.polygon.local rem TS1echo TS1rem clear var userid1set userid1=rem skip=1 – пропустить первую строкуrem tokens=3 – перейти на третью колонкуfor /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host1%’) do set userid1=%%i && echo %userid1%echo y | logoff %userid1% /server:%host1% /VMecho %userid1%rem clear var userid1set userid1=rmdir /S /Q \\%host1%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host1%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host1%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS2echo TS2rem clear var userid2set userid2=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host2%’) do set userid2=%%i && echo %userid2%echo y | logoff %userid2% /server:%host2% /VMecho %userid2%rem clear var userid2set userid2=rmdir /S /Q \\%host2%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host2%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host2%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS9rem clear var userid9echo TS9set userid9=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host9%’) do set userid9=%%i && echo %userid9%echo y | logoff %userid9% /server:%host9% /VMecho %userid9%rem clear var userid9set userid9=rmdir /S /Q \\%host9%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host9%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host9%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS10echo TS10rem clear var userid10set userid10=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host10%’) do set userid10=%%i && echo %userid10%echo y | logoff %userid10% /server:%host10% /VMecho %userid10%rem clear var userid10set userid10=rmdir /S /Q \\%host10%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host10%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host10%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS11echo TS11rem clear var userid11set userid11=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host11%’) do set userid11=%%i && echo %userid11%echo y | logoff %userid11% /server:%host11% /VMecho %userid11%rem clear var userid11set userid11=rmdir /S /Q \\%host11%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host11%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host11%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS12echo TS12rem clear var userid12set userid12=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host12%’) do set userid12=%%i && echo %userid12%echo y | logoff %userid12% /server:%host12% /VMecho %userid12%rem clear var userid12set userid12=rmdir /S /Q \\%host12%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host12%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host12%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS13echo TS13rem clear var userid13set userid13=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host13%’) do set userid13=%%i && echo %userid13%echo y | logoff %userid13% /server:%host13% /VMecho %userid13%rem clear var userid13set userid13=rmdir /S /Q \\%host13%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host13%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host13%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS14echo TS14rem clear var userid14set userid14=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host14%’) do set userid14=%%i && echo %userid14%echo y | logoff %userid14% /server:%host14% /VMecho %userid14%rem clear var userid14set userid14=rmdir /S /Q \\%host14%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host14%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host14%\c$\Users\%name%\AppData\local\1c\1cv8\dumps rem TS15echo TS15rem clear var userid15set userid15=for /f “skip=1 tokens=3” %%i in (‘qwinsta %name% /server:%host15%’) do set userid15=%%i && echo %userid15%echo y | logoff %userid15% /server:%host15% /VMecho %userid15%rem clear var userid15set userid15=rmdir /S /Q \\%host15%\c$\Users\%name%\AppData\local\1c\1cv8\6c97f90c-6d0e-46b6-b042-b61a02b5fd49rmdir /S /Q \\%host15%\c$\Users\%name%\AppData\Roaming\1C\1cv8rmdir /S /Q \\%host15%\c$\Users\%name%\AppData\local\1c\1cv8\dumps pause
Пока данное решение меня выручает в решении задач приходящих на третью линию поддержки где я сейчас работают. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.
Задача: Хочу разобрать для себя, как из ранее опубликованной заметки сделать, что данная информация была на всех компьютерах подконтрольной сети. Ведь когда звонит пользователь и просит что-либо помочь или проконсультировать, то нужно же знать за каким рабочим местом он сидит. Да, у меня все доменные и не доменные станции оснащены средством удаленного обслуживания TightVNC который я всем уже установил посредством ранее опубликованного скрипта или GPO.
Но вот, каждый раз говорить пользователям, скажите какой у Вас адрес? — а как, я этого не знаю – часто слышу данный ответ. В ответ я им рассказываю по телефону, что возле часов на вашем компьютере в правом нижнем углу есть “галочка”, наведите на нее и во всплывающем окне скажите какие цифры с точкой Вы видите.
Но вот для некоторых это составляет невыполнимую задачу, что навести что куда и как, хотя рабочие моменты они выполняют так, что для IT Отдела вот это все становится таким сложным.
Только ведь это и правильно, наиболее продуктивная работа достигается тогда когда каждый отдел работает с максимальной отдачей в своем деле, а вместе мы команда, а потому я хочу чтобы вся информация по каждому рабочему место отображалась на рабочем столе.
Предварительные действий:
Скачиваю с официального сайта Microsoft утилиту bginfo (Статья: http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx
Ссылка: https://download.sysinternals.com/files/BGInfo.zip), я уже когда-то давным давным давно я как-то разбирал что есть утилита bginfo (http://www.ekzorchik.ru/2012/08/server-2008-bginfo-desktop/), но то было статичное использование, а сейчас у меня:
Задача: На все компьютеры домена сделать настройку чтобы на обоях рабочего стола отображалось:
Текущее имя компьютера
Имя авторизованного пользователя на компьютере
IP адрес компьютера на котором авторизовался пользователь
пока как-то так. И делать это я буду наверное через групповые политики. В настоящее время у меня подконтрольный домен контроллер на базе Windows Server 2012 R2.
И так ниже все шаги для воплощения моей задумки в жизнь.
Шаг №1: Для данной (Name: "GPO: BGinfo”) создаю в дополнение настройку:
Win + X — Control Panel (Панель управления) — Administrative Tools (Администрирование) — Group Policy Management (Менеджер групповых политик):
Конфигурация компьютера (Computer Configuration) — Политики (Policies) — Административные шаблоны (Administrative Template) — Система (System) — Групповая политика (Group Policy) — Настройка режима обработки замыкания пользовательской групповой политики: (Configure user Group Policy loopback processing mode) Включено (Enabled)
Режим (Mode): Слияние (Merge)
Хотя правильнее вынести данную настройку в дефолтную политику: Default Domain Policy
На заметку: Если выносить в Default Domain Policy то делать не «Слияние», а «Замена», но можно в каждой политике это сделать, как «Слияние», дабы примененная политика не задваивалась при просмотре через gpresult /r
Шаг №2:
Через утилиту bginfo (использовать буду файл Bginfo.exe, а не Bginfo64) подготавливаю файл (Предварительно запустив его с выбором «Запуск от имени администратора» посредством которого на экране будет выдаваться значимая информация для меня.
Дополняю настройки: Desktops
User Desktop: Update this wallpaper
Logon Desktop for Console users: Update this wallpaper
Logon Desktop for Remote Desktop users: Update this wallpaper
и нажимаю OK окна Desktops.
Дополняю настройки: Background
Select your background parameters: Copy user’s wallpaper settings
Make wallpaper visible behind txt: отмечаю галочкой
Чтобы внесенные изменения применились следует нажать кнопку Apply.
а после сохраняю настройки в файл: File – Save as – пока на рабочий стол, к примеру: info расширение bgi подставится автоматически и нажимаю «Сохранить», после закрываю утилиту.
Итак необходимый конфигурационный файл настроен, осталось его распространить через GPO при входе пользователя в систему (Logon).
Пользовательская информация дополненного рабочего стола может сохранятьcя, а по дефолту располагается в каталоге: %TEMP%\BGinfo.bmp, вот только размер данного файла в целых 3Mb не очень-то и продуктивно скажется на работе, переменная %TEMP% трансформируется в путь: C:\Users\aollo\AppData\Local\Temp, но ее место хранения можно изменить: Bitmap – Location
На заметку: Если тормозит вход с систему, то следует проверить:
Размер пользовательского профиля
Размер изображения вставленного у пользователя на рабочем столе
Проанализировать как долго под его учетной записью инициализируются групповые политики (если система в домене)
Шаг №3: Настраиваю групповую политику добавления информации на рабочий стол авторизованного в системе пользователя.
Область нацеливания
Размещение:
polygon.local
Фильтр безопасности: “Прошедшие проверку»
Фильтр WMI: GPO: <Уместно сделать фильтр чтобы отфильтровывал только распространение политики на рабочие станции>, добавляется по желанию.
в данном фильтре составлен запрос на поиск в домене только рабочих станций, как только станция найдена, к ней применяется политика.
Помещаю файл Bginfo.exe & info.bgi в каталог: C:\Windows\SYSVOL\sysvol\polygon.local\scripts (это тот же что и при обращении: \\polygon.local\NETLOGON\, только обратившись так в него ничего нельзя записать, а через файловый менеджер можно)
Затем в политике GPO: Bginfo
Конфигурация пользователя (User Configuration) — Политики (Policies) — Конфигурация Windows (Windows Settings) – Сценарии (вход/выход из системы) (Scripts (Logon/Logoff) — Вход в систему (Logon)
и создаю bat—файл
12345
@echo off \\polygon.local\netlogon\Bginfo.exe \\polygon.local\netlogon\info.bgi /timer:0 /silent /nolicprompt exit
После делаю Logoff/Logon и авторизуюсь на компьютере под учетной записью alektest и на рабочем столе выводится информация которую я запрограммировал:
Необходимо убедиться, что политика применилась:
Win + R → cmd.exe
12345
C:\Users\alektest>gpresult /r | findstr “Примененные | GPO: BGinfo” Примененные объекты групповой политики GPO: BGinfo
Отлично, политика применилась, так а теперь попробую авторизоваться на Windows 10 Pro RUS дабы посмотреть, что данная политика также отработает.
Отработала.
12345
C:\Users\alektest>gpresult /r | findstr /R “\<Примененные BGinfo\>” Примененные объекты групповой политики GPO: Bginfo
Если политика настраивалась на конкретных пользователей и учетная запись исключена из применения политики, то при авторизации учетной записи на компьютере политика останется примененной, точнее надпись на рабочем столе останется, а утилита gpresult покажет что политики нет. В этом случае нужно вручную удалить в профили пользователя:
1
C:\Users\alektest\AppData\Local\Temp\BGinfo.bmp
После сделать Logon/Logoff – не помогло.
Решение: Нужно открыть утилиту bginfo и удалить параметры которые предлагаются по умолчанию и сохранить конфигурацию под другим именем, к примеру default.bgi и запустить.
Создаем две конфигурации для утилиты bginfo:
одна с названием info.bgi – которая прописывает на рабочий столе необходимые параметры
вторая с названием clear.bgi – которая удаляет параметры с рабочего стола.
Итого создаем две GPO:
Одна на включение параметров на рабочем столе
Вторая на выключение параметров на рабочем столе. Правда она отрабатывает когда на пк делаешь gpupdate /force и после Logoff/Logon и политика на выключение отрабатывает.
На заметку: Настройку обратной петли делать не обязательно.
На этом у меня всё, я сделал поставленную задачу и применяю данную заметку на рабочих местах текущего домена. С уважением автор блога Олло Александр aka ekzorchik.
В очередной раз разбираю, как сбросить оценочный период использования терминального сервера, базирующегося на операционной системе, но уже Windows Server 2016 Standard. До этого я для себя разобрал, как это сделать на Server 2008 R2 Std и Server 2012 R2 Std – это было познавательно и практично. А главное у меня есть отработанное решение. По сравнению если бы я просто непонятно что искал в интернете, где результат как обычно не 100% и задача по сбросу/восстановлению использования 120 дней на терминальном сервере уж сильно бы затянулась если бы это попало на рабочий день. Как показывает практика мои ресурсы:
Частенько используются на каждом месте работы, где бы я не работал.
На всякий случай приведу пример базовых ролей установленных для поднятия терминального сервера на базе Windows Server 2016 Std (SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO):
Host: srv-ts
Role: Remote Desktop Services
Feature: отмечаю галочками:
Remote Desktop Licensing Diagnoser Tools
Remote Desktop Licensing Tools
Role Services: отмечаю галочками
Remote Desktop Licensing
Remote Desktop Session Host
После, как и в прошлые разы проверяю количество дней до окончания использования тестового периода в 120 дней по использованию сервера в качестве терминального с неограниченным числом RDP сессий к нему, но ограничение все же существует, и оно это ресурсы самого сервера: RAM, CPU.
Дальнейшие действия:
Из-под учетной записи, состоящей в группе локальных администраторов системы
Консоль командной строки запущена, как «Run as administrator” (Запуск от имени администратора)
Шаг №1: Смотрим количество дней оставшихся в использовании терминальным сервером из 120 дефолтных, как оценочные:
Шаг №2: Напоминаю, чтобы восстановить Trial Period, но он полнофункциональный для использования терминальным сервером понадобится утилита от Microsoft, именуется она: subinacl.exe (version: 5.2.3790.1180), скачиваем ее и помещаем в %systemroot%\system32. Затем с помощью нее захватываем права владельца на раздел реестра:
Шаг №3: После захвата прав владельца для локальных администраторов устанавливаем права на запись всем кто вхож в группу "Administrators/Администраторы" на текущей системе:
Шаг №4: Далее удаляем ключ из раздела GracePeriod который отвечает за оценочный период по использованию текущего сервера с ролью терминального в 120 дней. Этим мы опять восстановим работу в 120 дней:
Шаг №5: Возьмите за правило, если что-то изменили в реестре в качестве прав и захвата владельца, то после по достижению результата следует восстановить как было до. В частности восстанавливаем дефолтные права которыми руководствуется роль Remote Desktop Services при работе:
Как видно 120 дней снова и снова можно использовать терминальный сервер как и было изначально, а вот если Вам надоест, то можно и активировать его лицензионным ключом или же Вы что-то тестируете, то такая схема описанная/разобранная мной в этой заметке может помочь Вам.
Итого, теперь у меня есть три заметки, где действия по восстановлению периода в 120 дней на системах Windows Server 2008 R2 & Windows Server 2012 R2 & Windows Server 2016. Пока на этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.
Windows Server 2008 R2 Std SP1 (SW_DVD5_Windows_Svr_DC_EE_SE_Web_2008_R2_64Bit_English_w_SP1_MLF_X17-22580.ISO)
Windows Server 2012 R2 Std (SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO)
И нужно иметь собственные наработки, т.к. в этом увы коллективе не принято работать в команде, каждый сам по себе. Плюс проблемы не решаются, а смысл работы — это простое закрытие заявки. Мне от этого дико.
Предварительные действия: Терминальный сервер поднят на образе Windows Server 2012 R2 Standard, системе не в домене (но заметка работает на доменной), дальнейшие действия выполняются с применением учетной записи, состоящей в группе Local Administrators + Command Prompt через «Run as administrator”.
Шаг №2: Как и в прошлый раз необходима утилита subinacl.exe скачиваемая с сайта Microsoft, с ее помощью и происходит собственно основная часть работы по захвату прав владельца:
Шаг №3: Как и в прошлый раз необходима утилита subinacl.exe скачиваемая с сайта Microsoft, с ее помощью и происходит собственно основная часть работы по установке полных прав для группы учетных записей «Администраторов»:
Шаг №5: Восстанавливаем изначальные права доступа на ключ реестра дабы роль Remote Desktop Services могла корректно считывать дни триал периода и собственно сам сервис работал:
И вот снова 120дней триал периода на использования терминального сервера с неограниченным количеством удаленных соединений, все зависит от ресурсов самого сервера: RAM, CPU, HDD, Eth.
Итого, теперь у меня есть две заметки, где действия по восстановлению периода в 120дней на системах Windows Server 2008 R2 & Windows Server 2012 R2. Пока на этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.
ВНИМАНИЕ: Все, что делается ниже на свой собственный страх и риск, сперва оттестируйте на тестовой системе, а после если все хорошо на боевой.
Когда поднимается терминальный сервер в организации, то как я вижу нет нужны сразу же его активировать можно использовать дефолтные 120дней. Или же в организации просто нет денег или руководство считает, что в мире информационных технологий платить за что-то не приносящее материального дохода – это пустая трата денег. Вот в этом случае я хочу рассмотреть так называемую чистку определенного ключа реестра ответственного за данный Grace Period
На заметку: Все дальнейшие действия выполняются на любой учетной записи, которая включена в группу локальных администраторов системы, а также строки в консоли командной строки выполняются с применением «Запуск от имени администратора»
Шаг №1: Сервер на базе Windows Server 2008 R2 Std SP1 развернут из образа успешно составленного с применением файла ответов заметки или же Вы можете его установить просто из образа скачанного с Microsoft Volume License Service смотря как принято у Вас.
Шаг №3: Сейчас терминальный сервер если он не активирован работает в режиме Grace Period (Льготный период/Тестовый период) сроком на 120дней об этом говорит всплывающее окно в правом нижнем углу экрана как если Вы зашли на него локального или через RDP-сеанс:
«No Remote Desktop license server is specified.
Remote Desktop Services will stop working in 119 days if a license server is not specified.
Click this message to launch the RD Session Host Server Configuration tool to specify a license server for the RD Session Host server to use.”
Шаг №4: Чтобы узнать количество дней до окончания тестового период с целью, как ввода лицензий или сброса на опять 120дней использования.
Поиск по документации сайта Microsoft (https://docs.microsoft.com/en-us/windows/win32/termserv/win32-terminalservicesetting)
От 07.10.2020 — ссылка ведет в никуда, поэтом качаю ее из своего хранилища необходимых файлов к заметкам отсюда.
вывел меня на class: win32_terminalservicesetting и его метод: GetGracePeriodDays
Start – All Programs – Accessories – и через правый клик мышью на «Command Prompt” выбираю «Run as administrator”, затем следующая команда:
Синтаксис использования wmic: wmic /namespace:\\root\<namespace> path <class name> get <attributes>
1234567891011121314151617
C:\Users\Administrator>wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TerminalServiceSetting where (__CLASS !=””) call getgraceperioddays Executing (\\SRV-TS\root\CIMV2\TerminalServices:Win32_TerminalServiceSetting.ServerName=”SRV-TS”)->getgraceperioddays() Method execution successful. Out Parameters: instance of __PARAMETERS { DaysLeft = 119; ReturnValue = 0; };
Ну а чтобы через одну длинную команду получить количество дней до окончания тестового периода использования терминального сервера:
Где сервер srv-ts2 – это система на базе Windows Server 2012 R2 Standard, а вот почему с Windows Server 2008 R2 Std SP1 у меня информация не снимается:
Вторая Login: ekzorchik (созданная и добавленная в группу локальных администраторов) и если под ней удаленно обратиться, то информация не снимается пишет – «Отказано в доступе»
Смотрю логи (Event View – Windows Logs – Application) на srv-ts:
Log Name: Application
Source: WMI
Event ID: 5605
Description: The root\CIMV2\TerminalServices namespace is marked with the RequiresEncryption flag. Access to this namespace might be denied if the script or application does not have the appropriate authentication level. Change the authentication level to Pkt_Privacy and run the script or application again.
Дело в том, что если делать этот запрос локально на системе, то выполнится, а вот чтобы изменить уровень аутентификации для доступа к root\CIMV2. Нашел документ (https://docs.microsoft.com/en-us/windows/win32/wmisdk/setting-the-default-process-security-level-using-vbscript) по которому можно сделать скрипт:
1
C:\Windows\system32>mkdir c:\test
Создаю VBS-скрипт, к примеру под именем: level.vbs
Но лучше этого не делать, а пойти по пути наименьшего сопротивления:
Либо под административной учетной записью подключаться
Либо отключить UAC, перезагрузить компьютер и после команда wmicотработает как надо:
Проверяю со своей рабочей станции под управлением Windows 10 Pro что обратившись к терминальному серверу могу получить количество дней льготного использования терминального сервера:
Шаг №5: Итак, вот вы используете терминальный сервер в триал режиме целых 120дней, дни подходят к нулю, но вы не хотите вводить ключ лицензии, переустанавливать терминальный сервер тоже не вариант. Как быть в таком случае? На просторах интернета натыкался якобы на способ удаления определенного ключа реестра, но для этого требуется утилита subinacl.exe (скачиваю ее с сайта Microsoft: https://www.microsoft.com/en-us/download/confirmation.aspx?id=23510) копирую ее для удобства использования %systemroot%\system32)
Этап №1: Сохраняем права доступа для раздела реестра
Лучше этого не делать, т.к. после потерял доступ к разделу GracePeriodи получаю сообщение при открытии разрешений:
Заголовок окна: Error Opening Key
Тело: GracePeriod cannot be opened. An error is preventing this key from being opened. Details: Access is denied.
Также по RDPк серверу. Чтобы восстановить доступ к серверу по RDPу меня заработало следующее:
Удалил роль терминального сервера
Перезагрузился
По RDP авторизовался.
Но посмотреть разрешения на раздел GracePeriodне могу через Regedit.exe
Раз у меня работают «Этап 2 & Этап 3” то применяю, получается, что есть права для администраторов. Попробую удалить данный раздел GracePeriodи заново разверну роль Терминального сервера. Раздел GracePeriodуспешно создался, теперь смотрю права доступа чтобы из задокумментировать вручную:
Этап №6: Перезагружаю систему для последующего использования терминального сервера:
1
C:\Windows\system32>shutdown /r /t 3
И у меня снова 120дней тестового использования терминального сервера, а такой трюк можно проделывать не один раз, получается компания Microsoftсоздала, а люди нашли как бы багу и теперь ее пользуются. Такое решение применимо к тем организациям и личному использованию в рамках ответственности за принятое решение идти по пути не лицензирования. Итого заметка работоспособна. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.
Разбираю на рабочем месте, как подготовить файл ответов для образа Windows 2012 R2 Std из-под Windows 10 Pro. Сейчас есть время, а время чтобы быстро и продуктивно шло я использую через самообразование. Мне нравится, т.к. у меня хобби и работа – это одно и то же.
Шаг №1: Устанавливаю на свою систему Windows 10 Pro пакет Windows ADK
Шаг №2: Создаю каталог isoprojectна диске C:
Шаг №3: Распаковываю образ SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO посредством установленного в системе архиватора 7zipв каталог Шаг №1:
Шаг №4: Запускаю консоль командной строки с правами Администратора и извлекаю информацию по редакциям файла install.wim которые можно развернуть из моего образа:
C:\WINDOWS\system32>dism /get-wiminfo /wimfile:c:\isoproject\sources\install.wim Cистема DISM Версия: 10.0.17134.1 Сведения об образе : c:\isoproject\sources\install.wim Индекс: 1 Имя : Windows Server 2012 R2 Standard (Server Core Installation) Описание : This option (recommended) reduces management and servicing by installing only what is needed to run most server roles and applications. It does not include a GUI, but you can fully manage the server locally or remotely with Windows PowerShell or other tools. You can switch to a different installation option later. See “Windows Server Installation Options.” Размер (байт): 7 460 086 466 Индекс: 2 Имя : Windows Server 2012 R2 Standard (Server with a GUI) Описание : This option is useful when a GUI is required—for example, to provide backward compatibility for an application that cannot be run on a Server Core installation. All server roles and features are supported. You can switch to a different installation option later. See “Windows Server Installation Options.” Размер (байт): 13 068 096 479 Индекс: 3 Имя : Windows Server 2012 R2 Datacenter (Server Core Installation) Описание : This option (recommended) reduces management and servicing by installing only what is needed to run most server roles and applications. It does not include a GUI, but you can fully manage the server locally or remotely with Windows PowerShell or other tools. You can switch to a different installation option later. See “Windows Server Installation Options.” Размер (байт): 7 457 614 120 Индекс: 4 Имя : Windows Server 2012 R2 Datacenter (Server with a GUI) Описание : This option is useful when a GUI is required—for example, to provide backward compatibility for an application that cannot be run on a Server Core installation. All server roles and features are supported. You can switch to a different installation option later. See “Windows Server Installation Options.” Размер (байт): 13 067 663 813
Операция успешно завершена.
Шаг №5: Из вывода выше вижу, что для установки операционной системы Windows Server 2012 R2 мне доступно четыре редакции, но в тестовой и боевой сети я использую обычно Standard. Если нужна Enterpriseредакция, то отличия будут в одном шаге. Итак, я экспортирую из дефолтного install.wim редакцию Standard, а она у меня под номером два в отличный каталог от дефолтного.
12345678910111213
C:\WINDOWS\system32> C:\WINDOWS\system32>dism /export-image /sourceimagefile:c:\isoproject\sources\install.wim /sourceindex:2 /destinationimagefile:c:\install.wim /compress:max /checkintegrity Cистема DISM Версия: 10.0.17134.1 Экспорт образа [==========================100.0%==========================] Операция успешно завершена.
Шаг №6: Теперь замещаю экспортированный файл install.wim на место где был оригинальный.
C:\WINDOWS\system32>dism /get-wiminfo /wimfile:c:\isoproject\sources\install.wim Cистема DISM Версия: 10.0.17134.1 Сведения об образе : c:\isoproject\sources\install.wim Индекс: 1 Имя : Windows Server 2012 R2 Standard (Server with a GUI) Описание : This option is useful when a GUI is required—for example, to provide backward compatibility for an application that cannot be run on a Server Core installation. All server roles and features are supported. You can switch to a different installation option later. See “Windows Server Installation Options.” Размер (байт): 13 068 096 479 Операция успешно завершена.
Шаг №7: Запускаю оснастку: Win – Windows Kits – и через правый клик мышью на «Диспетчер установки Windows» выбираю «Дополнительно» — «Запуск от имени администратора», затем Файл – Новый файл ответов – на вопрос всплывающего окна с текстом «Редактирование файла ответов без открытия образа Windows приведет к ограничению функциональности. Вы хотите открыть образ Windows сейчас?» нажимаю «Да», а после указываю путь до файла c:\isoproject\sources\install.wim и нажимаю «Открыть», затем «Да» (на создание файла каталога).
Но опять же получаю сообщение об ошибке:
«Диспетчеру установки Windows не удалось создать каталог. Дополнительные сведения об устранении неполадок см. в разделе «Техническое руководство по диспетчеру системных образов Windows” в руководстве пользователя Windows ADK.
Подробные сведения: Клиент не обладает требуемыми правами»
Что опять, ладно смотрю есть ли дефолтные файлы с расширением clg – файлов нет в каталоге c:\isoproject\sources. Так, а если щелкнуть мышью по гиперссылке: «Щелкните здесь, чтобы открыть файл журнала» — тут сообщение:
См. сообщение выше:
System.ComponentModel.Win32Exception (0x80004005): Клиент не обладает требуемыми правами
Что это за права такие, я вроде вхож в группу локальных администраторов на своей рабочей станции.
Читаю что же такое clgфайл каталога, является двоичным файлом, содержащим состояние всех параметров и пакетов образа Windows.
Попробую на VMв оси Windows 10 Pro с использованием прав вхожей в группу локальных администраторов без какого делегированный администраторы на ПК – Да, походу дело в этом.
Я на своем рабочем месте вхож в группу GPO:LocalAdmin она соответственно состоит в группе Администраторы моего компьютера
На новой VMпоставил Windows 10 Pro не вносил систему в домен и из-под локального администратора:
1) Установил пакет Windows ADK
2) Запустил Windows System Image Manager – файл – выбрать образ (install.wim) и нажал «Да» и файл каталога как видно ниже создается.
Окно: Создание файла каталога
Образ 1 из 1
Подключение образа Windows:
C:\isoproject\sources\install.wim. Это может занять несколько минут.
Ожидаю завершения/формирования clg файла.
Файл каталога создан и именуется, как: install_Windows Server 2012 R2 SERVERSTANDARD.clg
Раз так, то к своей заметке важное дополнение:
На заметку: Создание файла ответов на рабочей системе с применением инструмента «Диспетчер установки Windows» обязательно чтобы Ваша учетная запись была чисто административной и без какого-либо делегирования либо же действия выполнять из под дефолтной «Администратор»&”Administrator”. Или на другой системе создать файл каталога и переместить на текущую и продолжить. Кстати, я так и поступлю. При установленной поддержке запуска Linuxутилиту внутри Windowsможно для себя посмотреть, что представляет из себя файл каталога:
12345
ekzorchik@W10X64:/mnt/c/Windows/System32$ file /mnt/c/isoproject/sources/install_Windows\ Server\ 2012\ R2\ SERVERSTANDARD.clg /mnt/c/isoproject/sources/install_Windows Server 2012 R2 SERVERSTANDARD.clg: data ekzorchik@W10X64:/mnt/c/Windows/System32$ cat /mnt/c/isoproject/sources/install_Windows\ Server\ 2012\ R2\ SERVERSTANDARD.clg | head -n1
Шаг №8: Повторяю создаю файла ответов: Файл – Новый файл ответов – Да – выбираю install.wim и все происходит без каких-либо проблем, в окне «Windows System Image Manager” по областям:
Образ Windows: загружена/сформирована структура компонентов, определяющих настройки
Файл ответов: загружена/сформирована базовая структура, которая будет дополняться выбором через правый клик мышью на компонентах «Образ Windows»
Шаг №9: Опять же расписывать что и как я создаю считаю излишним, в интернете и официальной документации уже все расписано, я сделаю свой файл ответов под себя и выложу его здесь. По мере надобности его я буду дополнять/обновлять.
Обычная установка подразумевает из-себя набор нескольких шагов:
Disk 0 (UEFI-based PC): System: MSR:Windows:Recovery
И т.д.
Шаг №10: Сохраняем файл ответов под именем Autounattend.xml в каталог c:\isoproject: Файл – Сохранить файл ответов как, после закрываем оснастку: Windows System Image Manager и, если нужно можем открыть файл ответов и через редактор Notepad++ внести дополнения.
Шаг №11: Собираю образ:
Win -> Windows Kits – через правый клик на «Среда средств развертывания и работы с образами» выбираю «Дополнительно» — «Запуск от имени администратора»
1234567891011121314151617181920212223242526272829
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>oscdimg -u2 -m -o -lWin2012R2Std -b”c:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\etfsboot.com” c:\isoproject c:\test\Win2012R2Std.iso OSCDIMG 2.56 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2012. All rights reserved. Licensed only for producing Microsoft authorized content. Scanning source tree (2000 files in 813 directories) Scanning source tree complete (2160 files in 872 directories) Computing directory information complete Image file is 5176393728 bytes (before optimization) Writing 2160 files in 872 directories to c:\test\Win2012R2Std.iso 100% complete Storage optimization saved 456 files, 92153856 bytes (2% of image) After optimization, image file is 5091352576 bytes Space saved because of embedding, sparseness or optimization = 92153856 Done. C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>
Шаг №12: Проверяю на тестовом окружении: QEMU+KVM, ESXi, Virtualbox как установится система из сформированного образа «Шаг №11». Система поставилась. Работает.
Итого я уже для Windows Server 2012 R2 проработал файл ответов под себя. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.
Здесь и сейчас я рассмотрю шаги по настройке защиты в пределах локальной сети к сервису FTP на Windows Server 2016 Std которые применяю лично Я. А использовать это уже решать ВАм, либо если у Вас есть свое видение, то просьба написать мне в Telegram: @aka_ekzorchik или на почту: support@ekzorchik.ru
Шаг №1: Настроим ограничение с каких систем разрешено подключаться к данному FTP сервиса в пределах локальной сети:
Win + R → control.exe — Administrative Tools — через оснастку Internet Information Service (IIS) Manager — SRV-BACKUP (SRV-BACKUP\Administrator) — (FTP) FTP IP Address and Domain Restrictions
В правой части (Actions) нажимаю «Add Deny Entry...»
«Add Allow Entry» → кому разрешено подключаться, либо конкретным IP адресам, либо подсети
«Add Deny Entry» → кому запрещено подключаться, либо конкретным IP адресам, либо подсети.
Вот к пример настройка запрета на подключение для IP адреса 172.33.33.16
Пробую подключиться:
1234567891011
ekzorchik@navy:~$ ftp ftp> open 172.33.33.30 Connected to 172.33.33.30. 421 Service not available, remote server has closed connection ftp> quit ekzorchik@navy:~$
Как видно сервис принудительно оборвал со мной связь и закрыл подключение. А просканировав сетевым сканером я вижу, что порт открыт и ожидает подключение к сервису:
123456789101112131415
ekzorchik@navy:~$ sudo nmap 172.33.33.30 -p 21 Starting Nmap 7.60 ( https://nmap.org ) at 2019-04-05 22:16 MSK Nmap scan report for 172.33.33.30 Host is up (0.00074s latency). PORT STATE SERVICE 21/tcp open ftp MAC Address: 52:54:00:AD:49:D3 (QEMU virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.63 seconds
Отлично.
Шаг №2: Ограничим количество попыток между неправильными/ошибочными подключениями к FTP сервису:
Win + R → control.exe — Administrative Tools — через оснастку Internet Information Service (IIS) Manager — SRV-BACKUP (SRV-BACKUP\Administrator) — (FTP) FTP Logon Attempt Restrictions
видно, что сервис ожидает подключение на всех сетевых интерфейсах, а это не правильно — нужно чтобы он ожидал подключение только на своем единственном, а не вида 0.0.0.0:
Win + R → control.exe — Administrative Tools — через оснастку Internet Information Service (IIS) Manager — SRV-BACKUP (SRV-BACKUP\Administrator) — Sites — и через правый клик мышью на «FTP storage» выбираю «Edit Binding...», выделяю строку и нажимаю «Edit...» и привожу к виду:
Type: ftp
IP Address: 172.33.33.30 (IP адрес текущей системы)
Port: 21 (для безопасности можно также изменить порт на котором работает FTP сервис на отличный от дефолтного)
и после нажимаю кнопку OK окна Edit Site Binding, после кнопку Close окна Site Binding
Шаг №4: Не лишним будет ограничить количество создаваемых соединений и другие параметры:
Win + R → control.exe — Administrative Tools — через оснастку Internet Information Service (IIS) Manager — SRV-BACKUP (SRV-BACKUP\Administrator) — Sites — и через правый клик мышью на «FTP storage» выбираю Manage FTP Site — Advanced Settings, развернуть настройки «Connections» & «File Handing»
Max Connections: 10000
Allow Replace on Rename: True
и после нажимаю кнопку OK окна Advanced Settings
Шаг №5: Не лишним будет уведомлять тех кто подключился к FTP сервису, что он соглашается что все его действия логируются и в случае чего данные его сессии могут быть переданы в правоохранительные органы.
Win + R → control.exe — Administrative Tools — через оснастку Internet Information Service (IIS) Manager — SRV-BACKUP (SRV-BACKUP\Administrator) — Sites — FTP storage — FTP Messages
(Message Behavior)
Show detailed messages for local requests: отмечаю галочкой
Banner: Добро пожаловать. Учтите если вы задумали зло или хотите навредить сервису, то все Ваши действия логируются и в случае могут быть переданы в правоохранительные органы для расследования.
И после нажимаю (Actions) Apply
На заметку: Дабы у Всех сообщение отрабатывалось лучше писать на English языке иначе к примеру на Ubuntu системе будут отображаться символы вопроса.
Banner: Welcome. Take into account if you have conceived the evil or want to harm the service, then all your actions are logged and in the case can be transferred to law enforcement agencies for investigation.
Проверяю:
12345678910111213141516171819202122232425
ekzorchik@navy:~$ ftp ftp> open 172.33.33.30 Connected to 172.33.33.30. 220-Microsoft FTP Service 220 Welcome. Take into account if you have conceived the evil or want to harm the service, then all your actions are logged and in the case can be transferred to law enforcement agencies for investigation. Name (172.33.33.30:ekzorchik): ftpuser1 331 Password required Password: 230 User logged in. Remote system type is Windows_NT. ftp> quit 221 Goodbye. ekzorchik@navy:~$
Шаг №6: По возможности не использовать голый FTP сервис, а использовать связку FTP + HTTPS
Шаг №7: Т.к. у оснастки IIS нет возможности ограничить размер FTP-ресурса, то следует установить на Windows Server 2016 роль File Service, а ней компонент FSRM
Win + R → control.exe — Administrative Tools — Server Manager — Add roles and features:
Server Roles: File and Storage Services и отметить галочкой компонент с именованием, как «File Server Resource Manager» и внутри него для каталога который является корнем для FTP сервиса настроить квоту.
Пока на этом у меня всё, выполнив все эти шаги Вы тем самым затрудните проникновение в Вашу систему кого бы то ни было. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.