Шукати:
Настройка исходящей почты в 1C через Exchange 2010

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

Посмотрев правила TMG, Mikrotik, Exchange 2010 вывел правильный порядок действий для решения задачи. А то поиск в интернете приводит то к одной ложи то к другой, а вот рабочих шагов нет дабы помочь системному администратору решить задачу и перейти более интересным/насущным делам.

Предварительные действия:

  • Имеется почтовый сервер на базе Exchange 2010 (14.03.0248.002)
  • Кластер 1С + SQL на одном сервере

Шаг №1: На почтовом сервере srv-mail запускаем оснастку Start – All Programs - Exchange Management Console – Microsoft – Exchange – Microsoft Exchange On-Premises (srv-mail) – Server Configuration – Hub Transport – New Receive Connector… (Создаем коннектор отправки)

  • Name: Anonymous
  • Select the intended use for this Receive connector: Custom

После нажимаю Next

(Local Network settings)

  • Use these local IP addresses to receive mail: 172.33.33.10 (почтовый сервер)
  • Port: 2525
  • Specify the FQDN this connector will provide is response to HELO or EHLO: srv-mail.polygon.local

После нажимаю Next

(Remote Network settings)

  • Receive mail from remote servers that have these IP addresses: 172.33.33.100 (здесь у меня srv-db01 + кластер 1с)

После нажимаю Next, а затем “New

Как только коннектор отправки создан через правый клик по нему открываем свойства

Вкладка General

  • Protocol logging level: None
  • Maximum message size (KB): 10240

Вкладка Authentication

  • Basic Authentication: отмечаю галочкой

Вкладка Permission Groups

  • Anonymous users: отмечаю галочкой

На заметку: Далее если включен встроенный в Windows Server 2012 R2/Server 2008 R2 (смотря на чем у Вас развернут Exchange) брандмауэр нужно создать в нем правило обработки входящих соединений.

Шаг №2: Коннектор отправки также может содержать авторизацию, а не так как в «Шаг №1» ограничиться правилом, от кого подключать и куда:

Вкладка Authentication

  • Basic Authentication: отмечаю галочкой
  • Exchange Server Authentication: отмечаю галочкой
  • Integrated Windows authentication отмечаю галочкой

Вкладка Permission Groups

  • Exchange users: отмечаю галочкой

Шаг №3: Подключаюсь к базе 1С (1С: Предприятие 8.3 (8.3.16.1063), к примеру Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.75.70) из-под administrator

Создаю пользователя в 1С:

Администрирование – Настройки пользователей и прав – Пользователи – Создать

  • Полное имя: Alektest
  • Вход в программу разрешен: отмечаю галочкой
  • Имя (для входа): Alektest
  • Аутентификация 1С:Предприятия: отмечаю галочкой

Нажимаю «Установить пароль»

  • Новый пароль: Aa1234567aA
  • Подтверждение: Aa1234567aA
  • Показывать в списке выбора: отмечаю галочкой

После нажимаю «Записать»

  • Обсуждения: Нет

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

Шаг №4: Теперь указываем настройки почты в 1С (1С: Предприятие 8.3 (8.3.16.1063), к примеру Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.75.70) при подключенной к необходимой базе.

Подключаемся к базе с правами «Администратора» (не в Конфигуратор)

Переходим «Администрирование» - Настройки пользователей и прав – Пользователи – перехожу в созданного пользователя «Alektest» — Адреса, телефоны –

  • Email: вписываю почтовый ящик alektest@polygon.com

и нажимаю на иконку конверта

  • Адрес почты: alektest@polygon.com
  • Пароль: Aa1234567a
  • Использовать учетную запись: Для отправки почты
  • Для кого учетная запись: Только для меня
  • Имя отправителя: 1C Acc
  • Настроить параметры подключения вручную: Отмечаю

И нажимаю «Далее»

(Настройки сервера исходящей почты)

  • Имя пользователя: alektest@polgyon.com
  • Пароль: Aa1234567aA
  • Сервер: mail
  • Порт: 2525
  • Шифрование: Авто

И нажимаю «Далее»

(Настройки сервера входящей почты)

  • Имя пользователя: alektest@polygon.com
  • Пароль: Aa1234567aA
  • Протокол: IMAP
  • Сервер: imap.polygon.com
  • Порт: 993
  • Шифрование: Всегда (SSL)

И нажимаю «Далее»

  • Наименование учетной записи: alektest@polygon.com
  • Длительность ожидания сервера: 30 сек

И нажимаю «Далее»

И осуществляется проверка настроек, но увы она у меня завершается ошибкой (Аутентификация не прошла (SMTP error code 535 5.7.3 Authentication unsuccessfull)

В моем случае был назначен пароль не соответствующей политики домена, изменил и после проверка успешно прошла:

«Учетная запись успешно настроена»

alektest@polygon.com завершена.

А после главное на забыть нажать «Записать» или «Записать и закрыть» в свойствах где в поле Email: указали почтовый ящик.

И на почтовый ящик приходит письмо

123456789From: 1С:Предприятие alektest@polygon.com To: alektest <alektest@polygon.com> Subject: Тестовое сообщение 1С:Предприятие Содержимое письма: Это сообщение отправлено подсистемой электронной почты 1С:Предприятие

Если письмо есть значит настройки почты для учетной записи в 1С настроены верно. Посмотреть их, настройки

Переходим «Администрирование» — «Органайзер» — «Учетные записи электронной почты» и вот все созданные учетные записи электронных почт, которые Вы настроили, пока у меня одна это alektest, перехожу в нее

  • Наименование: alektest@polygon.com
  • Адрес электронной почты: alektest@polygon.com
  • Отправить: 1C Acc
  • Использование учетной записи: Для отправки писем
  • Только для: изменяю с Administrator на Alektest
  • Тип учетной записи: IMAP
  • Логин: alektest@polygon.com
  • Пароль: Aa1234567aA
  • Сервер IMAP: imap.polygon.com
  • Порт: 993
  • Всегда (SSL): отмечено
  • Сервер SMPT: mail (это внутреннее DNS имя)
  • Порт 2525
  • Шифрование: Авто
  • При отправке писем требуется авторизация на сервере исходящей почты (SMTP): галочка снята

На заметку: Если включен создан коннектор «Шаг №2», то галочка «При отправке писем требуется авторизация на сервере исходящей почты (SMTP)» должна быть установлена.

Как видно при настройке часть настроек есть, а вот и изменении в свойствах учетной записи появляются другие. Есть смысл сделать два коннектора, через один настраиваем/перенастраиваем, а после деактивируем.

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

На заметку: Я лично использую «Шаг 2» где определяю, что через порт 2525 использовать только авторизованную отправку.

На этом у меня пока все, с уважением автор блога Олло Александр aka ekzorchik.

Ошибка 12204 при доступе к ресурсам через TMG

У меня на работе используется софтварный брандмауэр именуемый, как Forefront Threat Management Gateway (7.0.9193.575) на Server 2008 R2 SP1 Enterprise и довольно таки неплохо справляется со всем наложенным функционалом в защите локальной сети как из вне, так и из нее. Конечно в будущем он будет заменен на pfSense 2.4.4, а пока работаем с тем что есть. В процессе работы была обнаружена ошибка доступа на ресурс который представляется из себя https://IP&DNS:PORT который перенаправляется на другой ресурс, т.е. работает вот такая вот схема:

(Проброс порта)

https://<WAN_IP>:48446 -> https://172.33.33.25:8006 (Debian 10 + Proxmox 6)

но TMG не понимает и блокирует соединение, а в логах ошибки.

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

Шаг №1: Заходим на сервер с установленным TMG с правами Domain Admins и через VBS скрипт который создаем для начала получаем какие порты зарезервированы для политики WebProxy:

notepad.exe -> list.vbs и сохраняю в каталог c:\tmp (это у меня, у вас может быть все по-другому)

12345678910Dim rootSet root = CreateObject(“FPC.Root”)Dim isaArrayDim tpRangesDim tpRangeSet isaArray = root.GetContainingArray()Set tpRanges = isaArray.ArrayPolicy.WebProxy.TunnelPortRangesFor Each tpRange In tpRangesWScript.Echo tpRange.Name & “: ” & tpRange.TunnelLowPort & “-” & tpRange.TunnelHighPortNext

Результат запуска скрипта выше:

12345c:\tmp>cscript list.vbsMicrosoft (R) Windows Script Host Version 5.8Copyright (C) Microsoft Corporation. All rights reserved.NNTP: 563-563SSL: 443-443

Шаг №2: Чтобы добавить нестандартный порт для подключения через SSL, т.е. к примеру у меня настроено, что при доступе https://<WAN_IP>:48446 я попадаю на https://172.33.33.25:8006, а следовательно и не работает правило обработки SSL трафика. Об этом как раз и говорит ошибка

Log type: Web Proxy (Forward)

Status: 12204 The specified Secure Sockets Layer (SSL) port is not allowed. Forefront TMG is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests.

Source: Internal (<MY_IP_COMP>:60977)

Destination: <LOCAL_IP_GW>:48446

Request: <WAN_IP>:48446

Filter information: Req ID: 0b499041; Compression: client=No, server=No, compress rate=0% decompress rate=0%

Protocol: SSL-tunnel

User: anonymous

Failed Connection Attempt SRV-GW 04.02.2020 16:04:08

Log type: Web Proxy (Forward)

Также точно такая же ошибка при обращении к внешней базе neo4j один из сотрудников:

Status: 12204 The specified Secure Sockets Layer (SSL) port is not allowed. Forefront TMG is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests.

Source: Internal (<MY_IP_COMP>:64405)

Destination: <LOCAL_IP_GW>:7687

Request: a731ac9d.databases.neo4j.io:7687

Filter information: Req ID: 0b4ae578; Compression: client=No, server=No, compress rate=0% decompress rate=0%

Protocol: SSL-tunnel

User: anonymous

Шаг №3: Создаю vbs скрипт (ssl_port.vbs) со следующим содержанием:

1234567Dim rootDim tpRangesDim newRangeSet root = CreateObject(“FPC.Root”)Set tpRanges = root.GetContainingArray.ArrayPolicy.WebProxy.TunnelPortRangesset newRange = tpRanges.AddRange(“SSL 48446”, 48446, 48446)tpRanges.Save

После запускаю его:

12345678910111213141516171819c:\tmp>cscript ssl_port.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. c:\tmp>cscript list.vbs Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. NNTP: 563-563 SSL: 443-443 SSL 7687: 7687- 7687 SSL 48446: 48446-48446

Шаг №4: После нужно перезагрузить сам сервер для активации изменений.

Шаг №5: Проверяю, открываю браузер и уже спокойно обращаюсь на https://<WAN_IP>:48446 && к базе neo4j.

На этом практическая заметка завершена. С уважением автор блога Олло Александр aka ekzorchik.

Настройка почтового ящика Exchange на Android

Задача: Настройки которые нужно сделать дабы пользователю настроить на телефоне корпоративную почту.

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

Что еще потребуется:

  • Как пишется почтовый ящик пользователя
  • Его(Её) пароль на доменную учетную запись
  • Подключать будем через imap
  • В правило на TMG (IMAPS:tcp/993) если нужно прописать с какого мобильного оператора (Tele2, Megafon, MTS, Beeline) пользователь будет инициализировать подключение к нашему почтовому серверу.
  • В настройках Exchange должна быть установлена галочка разрешающее взаимодействие через IMAP: Exchange Management Console - Recipient Configuration - Alexander Ollo (Properties) - Mailbox Features — и включен IMAP4

Подключаем почтовый ящик на Android (К примеру, для телефона Huawei Honor 5C) через приложение «Эл. Почта» — Добавить аккаунт – Другое

  • Адрес электронной почты: aollo@polygon.com
  • Пароль: указываем доменный пароль

И нажимаем «Вход»

  • Выберите тип аккаунт: IMAP

(это настройки входящего подключения)

  • Имя пользователя: aollo@polygon.com
  • Пароль: указываем доменный пароль
  • Сервер: должно быть mail.polgyon.com
  • Порт: 993
  • Тип безопасности: SSL/TLS (Принимать все сертификаты)

И нажимаем «Далее»

(это настройки исходящего подключения)

  • Сервер SMTP: mail.polygon.com
  • Порт: 587
  • Тип безопасности: STARTTLS
  • Требовать входа в аккаунт: отмечаем галочкой
  • Имя пользователя: aollo@polygon.com
  • Пароль: указываем доменный пароль

И нажимаем «Далее»

Происходит «Проверка входящий и исходящий соединений», затем предлагается настроить частоту проверки папки «Входящие»

  • Сделать аккаунтом электронной почты по умолчанию для отправки сообщений: -
  • Уведомлять при получении сообщения по эл. Почте: +
  • Синхронизировать почту из этого аккаунта: +
  • Автоматически загружать прикрепленные файлы при подключении к Wi-Fi: -

И нажимаем «Далее»

И все почта на телефоне настроена.

С уважением автор блога Олло Александр aka ekzorchik.

Перенос профилей Terminal Server на другой TS

Довелось мне поработать в одной конторе, правда не долго, там были жуткие репрессии в плане развития и проработки решения, пришлось нарушить все правила и выполнить задачу, а задача: переносу профилей TS (Terminal Server) одного сервера (Windows Server 2008 R2) на TS (Terminal Server) другого сервера (Windows Server 2016).

Я сделал это и горжусь этим, сейчас же я хотел бы поделиться с Вами читателями моего нового блога (https://win.ekzorchik.ru) посвященного целенаправленно Windows системам.

Задача: Терминальный сервер под управлением Windows Server 2008 R2 перенести на Windows Server 2016 с сохранением всех профилей пользователей

Решил: (Все делается штатными средствами) После того как развернул srv-ts2 нужно поставить все пакеты которые стояли на srv-ts, экспорт именования пакетов получаем:

1C:\Users\ekzorchik>wmic /output:”c:\1\%computername%.html” product list full /format:htable

После устанавливаем точно такие же пакеты на srv-ts2

Шаг №1: С srv-ts экспортируем ключ реестра ответственный за вход на терминальный сервер когда он первый раз залогинился

12345C:\Users\ekzorchik>wmic useraccount where name=’alektest1′ get sidSIDS-1-5-21-399544726-1125679647-597972024-1110 C:\Users\ekzorchik>reg export “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist\S-1-5-21-399544726-1125679647-597972024-1110” c:\1\alektest1.reg

Операция успешно завершена.

Шаг №2: Копируем полностью весь каталог с srv-ts на srv-ts2 по пути предопределенными дефолтными настройками

C:\Users\ekzorchik>xcopy c:\users\alektest1 /S /Y /R /I /H \\srv-ts2\c$\users\alektest1\

Шаг №3: на srv-ts2 правлю права доступа на пользовательский каталог с учетом если бы профиль создавался вручную

123456C:\Windows\system32>icacls c:\Users\alektest1 /inheritance:dC:\Windows\system32>icacls c:\Users\alektest1 /grant polygon\alektest1:(OI)(CI)(F)C:\Windows\system32>icacls c:\Users\alektest1 /grant “NT AUTHORITY\СИСТЕМА”:(OI)(CI)(F)C:\Windows\system32>icacls c:\Users\alektest1 /grant “BUILTIN\Администраторы”:(OI)(CI)(F)C:\Windows\system32>icacls c:\Users\alektest1 /remove:g “ВСЕ”C:\Windows\system32>icacls c:\Users\alektest1 /remove:g “BUILTIN\Пользователи”

Шаг №4: Применяю на srv-ts2 экспортированный файл c srv-ts

1C:\Windows\system32>reg import c:\1\alektest1.reg

Шаг №5: После сможет ли пользователь подключить не на srv-ts а на srv-ts2 и сохранены ли его файлы mstsc /v:srv-ts2 – и он успешно попадает в свой профиль и работает как ни в чем не бывало.

Итого задача выполнена в полном объеме. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

GPO Настройки политики перемещение папок и профиля

Сегодня я рассмотрю вариант настройки GPO, где в паре будут работать перемещение папок и профиля пользователя (Почти такое я уже делал ранее: Как сделать перемещаемые профили) при работе в компании. Домен уровня Windows Server 2012 R2 Std. Все файлы централизованно хранятся на сервере – они бекапятся, пользователь может сесть за любой ПК и его файлы будут с ним. Но использование данной заметки накладывает доработки в информационную инфраструктуру:

  • Гигабитная сеть
  • Быстрое хранилище с возможностью создания LUN
  • Ваша квалификация
  • Желание все сделать по уму.

Итак, в заметке участвует:

  • DC (домен контроллер): srv-dc.polygon.local (10.90.90.2) базирующейся на Windows Server 2012 R2 Std
  • Workstation (Рабочие станции): W10X641, W10X642 (Version 10.0.17134.1006)

И все это проходит обкатку на гипервизоре Debian 10 + Proxmox 6. Я использую SSD Диски так все действия выполняются быстрее и за меньший промежуток времени успеваю многое сделать. Сперва тест, а уже потом только делаю на боевом.

Шаг №1: К домен контроллеру или это может быть файловый сервер подключен диск, у меня он под логической буквой D:\ NTFS – 70Gb. Далее создаю два каталога

Каталог 1: Здесь будут располагаться файлы рабочего стола, мои документы

123456789 C:\Windows\system32> if not exist d:\users mkdir d:\users C:\Windows\system32> net share users$=d:\users /grant:”Authenticated Users”,FULL C:\Windows\system32> icacls d:\users /inheritance:d C:\Windows\system32> icacls d:\users /grant “Authenticated Users”:(OI)(CI)(M) C:\Windows\system32> icacls d:\users /remove:g “Users” /t

Каталог 2: Здесь будет располагаться перемещаемый профиль. Перемещаемый профиль – это %APPDATA%.

123456789 C:\Windows\system32> if not exist d:\profiles mkdir d:\profiles C:\Windows\system32> net share profiles$=d:\profiles /grant:”Authenticated Users”,FULL C:\Windows\system32> icacls d:\profiles /inheritance:d C:\Windows\system32> icacls d:\profiles /grant “Authenticated Users”:(OI)(CI)(M) C:\Windows\system32> icacls d:\profiles /remove:g “Users” /t

Шаг №2: Создаю GPO: GPO_Roaming_Profile_Folder

  • Связь: с OU (у меня OU=Manager)
  • Фильтр безопасности: Authenticated Users
  • Вкладка «Делегирование» - «Authenticated Users” – права на чтение.

User Configuration: - Policies – Windows Settings – Folder Redirection – через правый клик мышью на

  • Documents – Properties:

Settings: по умолчанию выставлено “Not configured”, а я изменяю на «Basic – Redirect everyone’s folder to the same location” (Перенаправлять папки всех пользователей в одно расположение)

Target folder location (Расположение целевой папки): Redirect to the following location (Перенаправлять в следующее расположение)

Root Path (Корневой путь): \\srv-dc\users$\%username%\Documents

  • Video – Properties:

Settings: Follow the Documents folder

  • Pictures – Properties:

Settings: Follow the Documents folder

  • Music – Properties:

Settings: Follow the Documents folder

  • Desktop – Properties:

Settings: Basic – Redirect everyone’s folder to the same location

Target folder location (Расположение целевой папки): Redirect to the following location (Перенаправлять в следующее расположение)

Root Path: \\srv-dc\users$\%username%\Desktop

Шаг №3: А чтобы был настроен перемещаемый профиль, открываем оснастку Win + R -> control.exe – View by: Category – Small icons – Administrative Tools – Active Directory Users and Computer – в OU=Manager открываем учетную запись, к примеру alektest и во вкладке Profile прописываем:

Profile path: \\srv-dc\profiles$\%username%

Шаг №4: Проверяем

Авторизуемся на рабочей станции под управлением системы Windows 10 Pro из-под учетной записи alektest (echo y | gpupdate /force), после Logoff & Logon и я успешно авторизован. Если проверить что содержится в каталоге на домен контроллер диска D:

Profiles: D:\profiles\alektest.V6 – создался каталог, суффикс после запятой кстати так и должен быть.

У меня есть справка на этот счет:

Client operating system version Server operating system version Profile extensions
Windows XP Windows Server 2003 / R2 None
Windows Vista/7 Server 2008 /R2 V2
Windows 8 Server 2012 V3
Windows 8.1 Server 2012 R2 V4
Windows 10,version 1507and 1511 n/a V5
Windows 10,version1607,1703,1709,1803,1809,1903 Server 2016 / Server 2019 V6

Из этой таблицы значит, что если я под учетной записью alektest зайду из под Windows 7, то у меня создастся профиль alektest.v2

Чтобы проверить, как работают перемещаемые папки, к примеру рабочего стола, создадим на рабочем столе каталоги для примера: test & test2

Возьмем другую рабочую станцию под управлением Windows 10 и авторизуемся на ней под логином alektest2, но на первой W10X641 можно не закрывать сессию, т.к. все данные профиля на сетевом диске.

Шаг №5: Еще следует включить квотирования для профиля пользователя, а то пользователям только дай волю и все задействованное место забьют не пойми чем. На работе люди работают, а не имитируют работу. Чтобы настроить использование квоты можно на srv-dc через правый клик мышью на логическом диске D: открыть Properties/Свойства – вкладка Quota – Show Quota Settings включаем:

  • Enable quota management: отмечаем галочкой
  • Deny disk space to users exceeding quota limit: отмечаем галочкой
  • Limit disk space to: 2 Gb
  • Set warning level to: 1 Gb
  • Log event when a user exceeds their quota limit: отмечаем галочкой
  • Log event when a user exceeds their warning level: отмечаем галочкой

Этими настройками мы разграничиваем размер пользовательского профиля работница. Если уж очень надо и получены все согласования расширения, то из вкладки Quota переходим на Quota Entries и для конкретной учетной записи увеличиваем квоту. А так у нас для каждого нового пользователя компании действует квота на 2Gb и предупреждение начиная с 1Gb.

Шаг №6: Логично не просматривать логи на предмет окончания места на логическом диске D: а задействовать компоненты роли File and Storage Services: Win + R -> control.exe – Administrative Tools – Server Manager – Dashboard – Add roles and features и в роли File and Storage Services отметить галочкой File Server Resource Manager. Далее его нужно настроить, нацелить на логический диск D и указать порог при которого на почту будет приходить письмо что место подходит к концу и нужно что-то делать. В этом случаем моя рекомендация внести профиля пользователей на отдельный LUN и использовать в паре с сервисом DFS.

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

Шаг №7: Если Вам приходит заявка от пользователя или каким-либо другим образом с просьбой увеличить квоту, то сперва нужно убедиться – а чем же занят профиль. Для этого на сервер, где созданы каталоги d:\users & d:\profiles устанавливаем приложение или используем Portable Version: TreeSize, запускаем его через правый клик мышью и выбор «Запуск от имени администратора». Переходим во вкладку “Home” – «Select directory for scan», выбираем каталог пользователя d:\users\alektest и видим

Анализируем через TreeSize размер профиля пользователя перед увеличением квоты

И на основе этих данных указываем, что ему нужно либо почистить корзину или удалить фильмы/музыку и т.д что не относится к рабочим моментам.

Для справки сопоставление прав:

Простые права   Переводна русском Переводна английском
  N Доступ отсутствует No access
  F Полный доступ Full Access
  M Доступ на изменение Modify Access
  RX Доступ на чтение и выполнение Read and execute access
  R Доступ только на чтение Read-only access
  W Доступ только на запись Write-only access
  D Доступ на удаление Delete access
Отдельныеправа DE Удаление Delete
  RC Чтение Read control
  WDAC Запись DAC Write DAC
  WO Смена владельца Write owner
  S Синхронизация Synchronize
  AS Доступ к безопасности системы Access System security
  MA Максимально возможный Maximum allowed
  GR Общее чтение Generic read
  GW Общая запись Generic write
  GE Общее выполнение Generic execute
  GA Все общие Generic all
  RD Чтение данных, перечисление содержимого папки Read data/list directory
  WD Запись данных, добавление файлов Write data/add file
  AD Добавление данных и вложенных каталогов Append data/add subdirectory
  REA Чтение дополнительных атрибутов Read extended attributes
  WEA Запись дополнительных атрибутов Write extended attributes
  X Выполнение файлов и обзор папок Execute/traverse
  DC Удаление вложенных объектов Delete child
  RA Чтение атрибутов Read attributes
  WA Запись атрибутов Write attributes
Праванаследования (OI) Наследование объектам Object inherit
  (CI) Наследование контейнерам Container inherit
  (IO) Только наследование Inherit only
  (NP) Запрет на распространение наследования Don't propagate inherit
  (I) Наследование разрешений от родительского каталога Permission inherited from parent container

Пример прав:

Разрешение на каталог C:\shara для пользователя alektest (Вкладка "Безопасность"/"Security")

  • Запись/Write: (OI)(CI)(W)
  • Чтение/Read: (OI)(CI)(F)
  • Список содержимого папки/”List folder  contents”: (CI)(RX)
  • Чтение и выполнение/”Read & Execute”: (OI)(CI)(RX)
  • Изменение/Modify: (OI)(CI)(M)
  • Полный доступ/”Full control”: (OI)(CI)(F)

Итого я для себя составил пошаговую инструкцию, как настроить перенаправление папок и перемещаемый профиль, содержащий настройки. Разобрал как из консоли создаются каталоги и назначаются права, что есть суффикс каталога. Пока на этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

Как интегрировать обновления в Windows 7

Задача: Проработать – Как интегрировать обновления в Windows 7

Т.е. можно подготовить свои излюбленные обновления для системы под управлением Windows 7 SP1 Pro X64 Russian которая используется либо на тест, либо на продуктив. Но это подходит/используется если в Вашей локальной сети не используется WSUS. В противном случае это бессмысленно. Не если его нет, то порой полезно воссоздать систему чтобы оттестировать код на системе, где установлено то или иное обновление Windows. Я с таким встречался и встречаюсь. Ниже набор работающих шагов по тому, как сделать образ Windows 7 + msu файлы и проверить на системе виртуализации Debian 10 + Proxmox 6, а не как раньше я использовал Ubuntu 18.04 + QEMU/KVM.

Шаг №1: Текущая система: SW_DVD5_Win_Pro_7w_64BIT_Russian_-2_MLF_X17-59431.iso (Version 6.1.7601)

Установлен архиватор 7z

Шаг №2: Устанавливаю на нее (текущую операционную систему) пакет Windows AIK (KB3AIK_RU.iso), проверяю также версию утилиты dism.exe (6.1.7600.16385)

Шаг №3: Создаю необходимую структуру каталогов:

Пуск – Все программы – Стандартные – и через правый клик мышью на «Командная строка» запускаю, как «Запуск от имени администратора»

  • C:\isoproject -> распакованный образ Windows
    • C:\Windows\system32>if not exist c:\isoproject mkdir c:\isoproject
  • C:\Drivers -> каталог с драйверами.
    • C:\Windows\system32>if not exist c:\drivers mkdir c:\drivers
  • C:\mount -> для подключения install.wim в папку
    • C:\Windows\system32>if not exist c:\mount mkdir c:\mount
  • C:\update -> каталог с обновлениями: *.msu & *.cab
    • C:\Windows\system32>if not exist c:\update mkdir c:\update
    • Windows6.1-KB3162835-x64.msu – установка TimeZone
  • C:\iso -> каталог с дистрибутивами
    • C:\Windows\system32>if not exist c:\iso mkdir c:\iso

Шаг №4: Распаковываю iso образ Windows 7 в директорию c:\isoproject

1C:\Windows\system32>”c:\Program Files\7-Zip\7z.exe” x “c:\iso\WIN7_x64fre_client_ru-ru_OEM_Professional-GRMCPRXFREO_RU_DVD.iso” -o”c:\isoproject\” -y

Шаг №5: Если в образе несколько редакций то извлекаю ту которая соответствует редакции PRO:

123456789101112131415161718192021222324252627C:\WINDOWS\system32>dism /get-wiminfo /wimfile:c:\isoproject\sources\install.wim C:\WINDOWS\system32>dism /export-image /sourceimagefile:c:\isoproject\sources\install.wim /sourceindex:3 /destinationimagefile:c:\windows\temp\install.wim /compress:max /checkintegrity /sourceindex:3 – это у меня редакция в моем ISO-образе Windows 7 Pro 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 Версия: 6.1.7600.16385 Сведения об образе : c:\isoproject\sources\install.wim Индекс: 1 Имя : Windows 7 Профессиональная Описание : Windows 7 Профессиональная Размер (байт): 11 945 156 754 Операция успешно завершена.

Шаг №6: Монтирую образ install.wim в директорию C:\Mount:

1C:\Windows\system32>dism /mount-wim /wimfile:”c:\isoproject\sources\install.wim” /index:1 /mountdir:c:\mount

После данной процедуры в каталоге C:\mount будет структура каталогов и файлов, как если бы операционная система была установлена на железе или виртуальную систему:

  •     C:\mount\PerfLogs
  •     C:\Program Files
  •     C:\Program Files (x86)
  •     C:\Windows
  •     C:\Пользователи

Шаг №7: Добавляю в образ install.wim каталог с пакетами обновлений: (файл с расширение msu)

123456789101112131415C:\Windows\system32>dism /image:c:\Mount /add-package /packagepath:”c:\Update” Cистема DISM Версия: 6.1.7600.16385 Версия образа: 6.1.7600.16385 Обрабатывается 1 из 1 – Добавление пакета c:\Update\Windows6.1-KB3162835-x64.msu [==========================100.0%==========================] Операция успешно завершена.

Шаг №8: Если нужно то добавляю в образ install.wim файлы драйверов на материнскую плату, дисковую и сетевую подсистему: (Файлы с расширением: inf & cat файлы)

1C:\Windows\system32>dism /image:c:\mount /add-driver:c:\Drivers /recurse /forceunsigned

Шаг №9: Собираем папку c:\mount обратно в образ install.wim:

123456789101112131415161718192021C:\Windows\system32>dism /unmount-wim /mountdir:c:\mount /commit Cистема DISM Версия: 6.1.7600.16385 Файл образа: c:\isoproject\sources\install.wim Индекс образа: 1 Сохранение образа [==========================100.0%==========================] Отключение образа [==========================100.0%==========================] Операция успешно завершена. C:\Windows\system32>

На заметку: Перед выполнением все открытые окна и оснастки взаимодействующие с каталогом c:\mount должны быть закрыты. Иначе вы получите ошибку 0xc1420117: «Не удалось полностью отключить каталог. Обычно это происходит при наличии в каталоге подключения файлов, открытых приложениями. Чтобы завершить процесс отключения, закройте эти файлы и повторите попытку.»

Шаг №10: Выводим сведения о подключенных образах WIM:

1234567891011C:\Windows\system32>dism /get-mountedwiminfo Cистема DISM Версия: 6.1.7600.16385 Подключено образов: Подключенные образы не найдены. Операция успешно завершена.

Шаг №11: Удаляем ресурсы, связанные с поврежденными подключенными образами WIM:

1234567891011C:\Windows\system32>dism /cleanup-wim Cистема DISM Версия: 6.1.7600.16385 Поиск устаревших файлов на диске C Операция успешно завершена. C:\Windows\system32>

Шаг №12: После собираем образ из распакованных файлов каталога c:\isoproject в один файл iso:

123C:\Windows\system32>cd /d “C:\Program Files\Windows AIK\Tools\amd64” C:\Program Files\Windows AIK\Tools\amd64> oscdimg -u2 -m -o -lWIN7PROX64 -b”c:\Program Files\Windows AIK\Tools\PETools\amd64\boot\etfsboot.com” c:\isoproject c:\Win7_SP1_Pro_amd64.iso

Итого образ готов.

Шаг №13: Загружаю образ в хранилище на Proxmox 6:

https://IP&DNS:8006 – Datacenter – Storage – local(srv-proxmox) – Upload –

  • Content: ISO image

И через Select File… указываю местонахождение сформированного/собранного iso файла, у меня он именуется, как: Win7_SP1_Pro_amd64.iso, а после нажимаю Upload.

Шаг №14: Проверяю его (образа) работу, создав VM на системе виртуализации Proxmox 6 которая у меня развернута по заметке.

Параметры VM на ноде под управлением Proxmox 6:

  • Node: srv-proxmox
  • VM ID: 105 (или установщик подставит последовательное значение к уже существующим VM)
  • Name: W7X64TEST
  • Use CD/DVD disk image file(iso) – ISO Image: выбираю свой образ Win7_SP1_Pro_amd64.iso
  • Type: Microsoft Windows
  • Version: 7/2008r2
  • Graphic card: Default
  • SCSI Controller: Virtio SCSI
  • Bus/Device: SATA / 0 (если указать IDE, то также работает, а если SCSI то увы установщик Windows Не видит интегрированные драйвера в образ Install.wim, только если явно указывать используя еще один привод с драйверами)
  • Storage: local
  • Disk size (GiB): 40
  • Cache: Write back
  • Format: QEMU image format (qcow2)
  • Sockets: 1
  • Cores: 2
  • Type: Default (kvm64)
  • Memory (MiB): 4096
  • Bridge: vmbr0 (о том как его настроить см. здесь)
  • Model: VirtIO (paravirtualized)
  • Start after created: отмечаем галочкой

И нажимаем Finish. VM запустится и открыв Console можно наблюдать за процессом и т.к. у меня не интегрирован файл ответов Autounattend.xml взаимодействовать с мастером установки.

И система успешно развернулась с интегрированными драйверами и пакетом обновления:

1234567C:\Windows\system32>wmic qfe get hotfixid | find “KB3162835” KB3162835 C:\Windows\system32>wmic qfe | find “KB3162835” C:\Windows\system32>wmic qfe | findstr /I “KB316835”

Итого: Пакет обновления успешно установился вместе с системой в среде виртуализации Proxmox внутри операционной системы Windows 7. Таким образом я приблизился еще на один шаг к тому чтобы подготовить сетевую установку через FOG Project на proxmox 6 своих систем: Windows 7, Windows 10, Server 2008 R2, Server 2012 R2, Server 2016 и конечно же Ubuntu-систем где будет все:

  •     Определенные пакеты обновления (если используется WSUS интегрировать драйвера не нужно)
  •     Определенные драйвера
  •     Файл ответов

На заметку: Если обновлений несколько важно чтобы вместе с ними были все файлы зависимых обновлений.

На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.

Как очистить историю Ubuntu внутри Windows 10 Pro

Сегодня на работе я задался целью, как сохранить мою работу (Windows 10 Pro (Version 10.0.17134.950) + установленные компоненты взаимодействия с (Ubuntu 18.04 Server)  на системе от чужих глаз, ведь в компании работает множество системных администраторов, и если допустим я решу сменить работу или уйду в отпуск, а кто-нибудь сбросит на мою учетную запись пароль, зайдет под ней на ПК и зная, что я люблю Ubuntu систему получит доступ к тому с чем я работал в консоли. Так дело не пойдет. 

Моя задача – это проработать шаги, посредством которых я произведу чистку от логирования действий в консоли. Можно настроить скрипт, который в конце рабочего дня чистит логи или же просто не вести совсем логи. В этом случае, внимательный читатель скажет – «Что каждый раз набирать команды? долго и однообразно». Мой ответ – «Знаете, личная работа стоит того!». А если хобби и работа, как у меня одно и то же, плюс владеешь десятипальцевым методом печати на нескольких языках: English, Russian, Deutsch трудностей не возникает.

Ладно перейду практике.

123456789C:\Users\olloa>bash ekzorchik@W10X64:/mnt/c/Users/olloa$ ekzorchik@W10X64:/mnt/c/Users/olloa$ echo $HISTFILE /home/ekzorchik/.bash_history ekzorchik@W10X64:/mnt/c/Users/olloa$ wc -l ~/.bash_history

378 /home/ekzorchik/.bash_history -> вот у меня значит 378 строк, которыми я взаимодействовал, как с удаленными системами, так и локальной

1ekzorchik@W10X64:/mnt/c/Users/olloa$

Что я пробовал – это очистить историю, но очистка происходит в рамках текущей сессии:

1234567891011121314151617ekzorchik@W10X64:/mnt/c/Users/olloa$ history -c ekzorchik@W10X64:/mnt/c/Users/olloa$ history     1  history ekzorchik@W10X64:/mnt/c/Users/olloa$ exit logout C:\Users\olloa>bash ekzorchik@W10X64:/mnt/c/Users/olloa$ wc -l ~/.bash_history 384 /home/ekzorchik/.bash_history ekzorchik@W10X64:/mnt/c/Users/olloa$

а точнее не происходит вообще – это какая-то пародия на работу.

Способ удаления истории №1: Удалить сам скрытый файл “.bash_history”

12345678910111213ekzorchik@W10X64:/mnt/c/Users/olloa$ rm ~/.bash_history ekzorchik@W10X64:/mnt/c/Users/olloa$ exit logout C:\Users\olloa>bash ekzorchik@W10X64:/mnt/c/Users/olloa$ wc -l ~/.bash_history 3 /home/ekzorchik/.bash_history ekzorchik@W10X64:/mnt/c/Users/olloa$

Способ удаления истории №2: Добавление в файл “.bash_logout” команды на очистку, но не работает.

12345678910111213141516171819202122232425ekzorchik@W10X64:/mnt/c/Users/olloa$ echo ‘history -c’ >> ~/.bash_logout ekzorchik@W10X64:/mnt/c/Users/olloa$ exit logout C:\Users\olloa>bash ekzorchik@W10X64:/mnt/c/Users/olloa$ wc -l ~/.bash_history 3 /home/ekzorchik/.bash_history ekzorchik@W10X64:/mnt/c/Users/olloa$ history     1  wc -l ~/.bash_history     2  rm ~/.bash_history     3  exit     4  wc -l ~/.bash_history     5  history ekzorchik@W10X64:/mnt/c/Users/olloa$

Способ удаления истории №3: Запрещаем ведение логов, размер 0, не логировать работу с командами.

12345ekzorchik@W10X64:/mnt/c/Users/olloa$ sed -i ‘s/HISTFILESIZE=2000/HISTFILESIZE=0/’ ~/.bashrc ekzorchik@W10X64:/mnt/c/Users/olloa$ sed -i ‘s/HISTSIZE=1000/HISTSIZE=0/’ ~/.bashrc ekzorchik@W10X64:/mnt/c/Users/olloa$ echo ‘HISTIGNOR=”ls ssh cat chown chmod”‘ >> ~/.bashrc

если затерли случайным образом пользовательский bashrc, то чтобы его восстановить до дефолтного:

1ekzorchik@W10X64:/mnt/c/Users/olloa$ cp /etc/skel/.bashrc ~/.bashrc

Вот теперь работа в консоли bash внутри операционной системы Windows 10 Pro будет происходить без какого-либо логирования действий консоли, будь то удаленных подключений к хостам, взаимодействие с локальной системой, да и всего-то что Вы делается запускаю консоль командной строки Ubuntu 18.04 (именно он у меня установлена на рабочем месте).

Способ удаления истории №4: Раз мы воспользовались функционалом Windows 10 Pro по настройке взаимодействия с Linux внутри Windows, то значит внутри Windows где-то лежит вся структура:

C:\Users\olloa\AppData\Local\Packages, раз у меня установлена Ubuntu 18.04, то мне нужен каталог «CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc», перехожу в него и профиль моей учетной записи в Ubuntu:

C:\Users\olloa\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ekzorchik

И тут структура пользовательского профиля со всеми папками и файлами:

Win + R -> cmd.exe

12345678910111213141516171819202122232425262728293031323334353637383940414243C:\Users\olloa>cd /d “C:\Users\olloa\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ekzorchik” C:\Users\olloa\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ekzorchik>dir  Том в устройстве C не имеет метки.  Серийный номер тома: BE03-A06B  Содержимое папки C:\Users\olloa\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ekzorchik 23.08.2019  09:54    <DIR>          . 23.08.2019  09:54    <DIR>          .. 23.08.2019  09:54             3 800 .bashrc 23.08.2019  09:54                 0 .bash_history 23.08.2019  09:43               220 .bash_logout 09.08.2019  13:52    <DIR>          .cache 15.08.2019  16:05                53 .gitconfig 16.07.2019  09:42    <DIR>          .ipython 09.08.2019  14:10    <DIR>          .local 21.06.2019  15:52               807 .profile 26.07.2019  13:08               699 .sqlite_history 24.06.2019  08:27    <DIR>          .ssh 21.06.2019  15:52                 0 .sudo_as_admin_successful 19.07.2019  14:05             1 185 .viminfo                8 файлов          6 764 байт                6 папок  45 943 304 192 байт свободно C:\Users\olloa\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\ekzorchik>

Кто мешаем мне просто планировщиком заданий Windows удалять историю, опять же это костыль – задание не отработает, если мне сменят пароль на доменную/локальную учетную запись.

Вывод: Если печетесь об конфиденциальности – не вести логирование вообще.

На этом у меня всё, с уважением Олло Александр aka ekzorchik.

Настройка клиента QIP на работу с Openfire 4.5.1

Что дальше! Ну развернул я сервис Openfire 4.5.1 на Ubuntu 18.04 Server, а как к нему подключить клиентов, в роли клиентов могут выступать такие приложения, как Spark, Qip2012. У меня на работе используется QIP, но вот как он установлен (и настроен в Windows 10 & Windows 8.1) я если честно не знаю, да и до того момент как решил все перевести на Ubuntu 18.04 + разобрать все что сделано было для меня загадкой, но я ее решил.

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

Шаг №1: Клиент QIP 2012 будет взаимодействовать с сервисом openfire посредством протокола jabber. Скачиваю с сайта qip.ru клиент qip2012.exe, устанавливаю его

(снимаю галочки с лишнего говна)

  • Загрузить и установить Яндекс.Браузер
  • Загрузить и установить расширение Яндекса для браузеров
  • Загрузить и установить настройки быстрого доступа к поиску и сервисам Яндекса
  • Загрузить и установить Менеджер браузеров

и нажимаю «Далее«, папку установки оставляю дефолтной: «C:\Program Files (x86)\QIP 2012» и нажимаю «Далее«, обязательно снимаю галочку:

  • Скачать и установить QIP Shot: снимаю галочку

и нажимаю «Далее«, заключительный этап:

  • Запустить QIP 2012: не отмечаю
  • Установить QIP Jabber клиентом по умолчанию: отмечаю
  • Не создавать папку с ярлыками в меню "Пуск": не отмечаю
  • Создать значок на Рабочем столе: отмечаю
  • Создать значок в Панели быстрого запуска: не отмечаю

и нажимаю «Завершить»

Шаг №2: Дабы установленный клиент QIP использовать в работе с собственным Jabber сервисом, у меня это ведь OpenFire 4.5.1 нужно изменить свойства ярлыка на рабочем столе путем добавления в поле «Объект» ключа «/isolated» получается вот так:

Свойства: QIP2012

Вкладка «Ярлык»

  • Объект: “C:\Program Files (x86)\QIP 2012\qip.exe” /isolated
Настраиваем работу клиента QIP на работу с Openfire 4.5.1

И нажимаю «Применить» — «ОК», затем через двойной клик мышью по ярлыку с рабочего стола запускается программа в режиме создания профиля:

Указываю

  • Логин, e-mail или номер мобильного: qip
  • Пароль: qip
  • Запомнить пароль: отмечаю галочкой

И нажимаю «Создать»

Создаем профиль единый на всех ПК

Тем самым создается дефолтный профиль

Дефолтный профиль создан можно переходить к настройке

Шаг №3: Для работы нужно произвести некоторые настройки.

Перехожу в настройки (Нажимаю на иконку шестеренки) Настройки –

Элемент настройки «Общие»

  • Ежедневно проверять наличие новой версии QIP: снимаю галочку
  • Показывать новости проекта и уведомления об акциях: снимаю галочку
  • Авторизовывать на сервисах в браузере: снимаю галочку

Элемент настройки «Список контактов»

  • Отображать виджеты: снимаем галочку
  • Включить расширенный вид: отмечаю галочкой
  • Показывать аватары: отмечаю галочкой

Элемент настройки «Сообщения»

  • Отображать виджеты: снимаем галочку

Элемент настройки «Модули» снимаем все галочки:

  • QIP Валюта 1.1
  • Win7 – помощник 1.1
  • Виджет погоды 1.0
  • Открытки 1.1

Элемент настройки «Учетные записи» — «Добавить учетную запись» — XMPP (Jabber)

(Учетная запись)

  • Учетная запись: A1@polygon.com
  • Пароль: Aa1234567
  • Сохранить пароль: отмечаю галочкой

И нажимаю «Применить» — “ОК"

Проверяю, что клиент действительно подключился

Изменяю статус подключения на "В сети"

Раз отображает выставленный статус «В сети» и нет ошибок, то вроде как аккаунт зарегистрировался. Смотрю, что говорит оснастка Openfire 4.5.1 на этот счет:

http://IP&DNS:9090 (http://10.90.90.10:9090) - user&pass - Войти - Сеансы и вижу подключенного:

Подключенный сеанс отображается в консоли администрирования Openfire 4.5.1

Шаг №4: Ставлю еще один клиент, к примеру на домен контроллер и также как в «Шаг №3» произвожу его настройку, а регистрируюсь, как Login: A2@polygon.com. В «Сеансы» на Консоли администрирования вижу уже двоих:

Теперь два подключения к Openfire 4.5.1 выполнены и отображаются

Пока на этом всё, я показал, как настроить клиент QIP на работу через протокол Jabber с сервисом Openfire 4.5.1 где он развернут на Ubuntu 18.04 Server amd64. С уважением, автор блога Олло Александр aka ekzorchik.

Включаем Remote Dekstop Services Manager на Server 2012 R2

Опять заметка про терминальные сервера! Вот когда ранее использовались только Windows Server 2008 R2 SP1 (Std & Ent), то при настроенной роли терминального сервера, для подключения к сессии пользователя на нем использовалась оснастка «Диспетчер служб удаленных рабочий столов»/ «Remote Desktop Service Manager». А вот на Server 2012 R2 разработчики посчитали не нужным и исключили ее.

Предварительные данные:

  • Действия осуществляются с учетной записью, обладающей правами администратора.
  • ОС: Server 2008 R2 Std SP1 развернута с помощью файла ответов, а сама роль TS (Terminal Server) по заметке
  • ОС: Server 2012 R2 Std развернута с помощью файла ответов, а сама роль TS (Terminal Server) по заметке

Что же делать? В моем случае т.к. у меня кластер терминальных серверов (либо NLB, либо haproxy), состоящий из:

srv-ts1.polygon.localWindows Server 2012 R2 StdVersion 6.3.9600
srv-ts2.polygon.localWindows Server 2012 R2 StdVersion 6.3.9600
srv-ts4.polygon.localWindows Server 2008 R2 StdVersion 6.1.7601
srv-ts9.polygon.localWindows Server 2008 R2 StdVersion 6.1.7601
srv-ts10.polygon.localWindows Server 2008 R2 StdVersion 6.1.7601
srv-ts11.polygon.localWindows Server 2008 R2 StdVersion 6.1.7601
srv-ts12.polycong.localWindows Server 2008 R2 StdVersion 6.1.7601

Есть вариант подключения с TS на котором операционная система Windows Server 2008 R2 Std SP1 TS, запускаем Пуск – Все программы – Администрирование – Службы удаленных рабочих столов – Диспетчер служб удаленных рабочих столов, видим все RDP соединения с этим терминальным сервером, но если инициализировать подключение: через правый клик мышью на «Диспетчер служб удаленных рабочих столов» - «Подключение к компьютеру» и указать «Другой компьютер», а именно TS с осью Windows Server 2012 R2 Std и соединение будет успешно отработано. Мы также увидим RDP-сессии, т.е. функционал вроде как есть в Server 2012 R2 TS (Role: Terminal Server), но своих оснасток нет.

На заметку:

  • Win + R -> tsadmin.msc (Диспетчер служб удаленных рабочих столов/Remote Desktop Services Manage)
  • Win + R -> tsconfig.msc (Конфигурация узла сеансов удаленных рабочих столов/Remote Desktop Session Host Configuration)

А что если я со временем работая в этой конторе все же переведу все TS на Server 2012 R2 Std, то как быть? Поиск информации на просторах интернета привел меня к недокументированной возможности, которую я хочу проверить сперва в тестовой среде и если все заработает, то будет еще один плюс в переводе на все обновленное, т.к. продукт Windows Server 2008 R2 SP1 Standard по расширенной поддержке заканчивается 14.01.2020. Ну это если лицензия, а если нет, то какая-разница. Тестовый сброс (Grace Period) в 120 дней использования терминальным сервером я уже разобрал, как для:

Как сбросить grace period TS Windows Server 2008 R2

Как сбросить grace period TS Windows Server 2012 R2

Как сбросить grace period TS Windows Server 2016

Следовательно я подготовлен.

Чтобы такие оснастки были в Windows Server 2012 R2:

Шаг №1: Из под Server 2008 R2 Std SP1 (English) -> на Server 2012 R2 Std (English) копирую следующие файлы и экспортирую определенные ветки реестра

1234567891011121314151617181920212223242526272829C:\Users\ekzorchik>xcopy /Y %systemroot%\system32\tsadmin.dll \\srv-ts1.polygon.local\c$\Windows\system32\ C:\Users\ekzorchik>xcopy /Y %systemroot%\system32\tsconfig.dll \\srv-ts1.polygon.local\c$\Windows\system32\ C:\Users\ekzorchik>xcopy /Y %systemroot%\system32\wts.dll \\srv-ts1.polygon.local\c$\Windows\system32\ C:\Users\ekzorchik>xcopy /Y %systemroot%\system32\tsconfig.msc \\srv-ts1.polygon.local\c$\Windows\system32\ C:\Users\ekzorchik>xcopy /Y %systemroot%\system32\tsadmin.msc \\srv-ts1.polygon.local\c$\Windows\system32\ C:\Users\ekzorchik>xcopy /Y %systemroot%\system32\en\tsconfig.resources.dll \\srv-ts1.polygon.local\c$\Windows\system32\en\ C:\Users\ekzorchik>xcopy /Y %systemroot%\system32\en\tsadmin.resources.dll \\srv-ts1.polygon.local\c$\Windows\system32\en\ C:\Users\ekzorchik>mkdir c:\1 C:\Users\ekzorchik>reg export HKLM\SOFTWARE\Microsoft\MMC\SnapIns\FX:{80aaa290-abd9-9239-7a2d-cf4f67e42128} c:\1\fx80.reg /y C:\Users\ekzorchik>reg export HKLM\SOFTWARE\Microsoft\MMC\SnapIns\FX:{3FCE72B6-A31B-43ac-ADDA-120E1E56EB0F} c:\1\fx3f.reg /y C:\Users\ekzorchik>mkdir \\srv-ts1.polygon.local\c$\1 C:\Users\ekzorchik>xcopy /Y c:\1\*.reg \\srv-ts1.polygon.local\c$\1 C:\1\fx3f.reg C:\1\fx80.reg 2 File(s) copied

Видел, кстати, на различных блогах, что авторы или копипастеры вкладывают в архив уже готовые библиотеки и экспортированные файлы реестра, как по мне – так не стоит делать кто их скачивает, мало ли что там внутри. Впрочем, мне Russian редакция и не особо нужна, т.к. все сервисы в инфраструктуре должны быть на English. А те, что есть будут переведены.

На заметку: Во вложении свои  файлы скопированные из системы установленного образа выше.

Шаг №2: Захожу по RDP на Windows Server 2012 R2 Std (Role: Terminal Server поднята) куда копировал reg—файлы и импортирую ключи реестра в систему:

Win + X – Command Prompt (Admin) –

1234567C:\Windows\system32>reg import c:\1\fx3f.reg The operation completed successfully. C:\Windows\system32>reg import c:\1\fx80.reg The operation completed successfully.

Шаг №3: Проверяю, я все еще на TS с осью Server 2012 R2 Std, работает ли запуск оснасток: -> tsadmin.msc & tsconfig.msc. Открываю Win + R и поочередно запускаю и они успешно запускаются и выполняют весь функционал, которым обладали в Windows Server 2008 R2 Std SP1.

Работает. Теперь я могу смело переводить терминальные сервера к одному единому знаменателю в лице операционной системы Windows Server 2012 R2 Std и оснастки управления у меня такие же, как и в Windows Server 2008 R2 Std SP1. На этом я считаю заметка полностью завершенной, с уважением Олло Александр aka ekzorchik.

Скачать файл встроенными средствами Windows

Сегодня я рассмотрю способы, посредством которых из-под Windows 10 Pro x64 Russian (Version: 10.0.14939) можно находясь в консоли командной строки загружать файлы из интернета, не применяя сторонних средств. Также все ниже указанное применимо и к другим Windows система: Windows 7,Server 2012 R2,Server 2016. Просто порой нужно иметь на вооружение навыки. А вообще, когда я разбирался очередную задумку, появилась еще одна в виде полностью консольного разворачивания задачи дабы потом сформировать скрипт, увеличивающий мою продуктивность.

Способ №1: Насколько я помню, когда изучал команды (все exe-файлы и что они делают) еще в Windows XP, то наткнулся на утилиту загрузки именуемую, как bitsadmin. Данная утилита по файлу справки поддерживает загрузку файлов при использовании: http & https, а также обращение к файлу вида file://

Синтаксис использования:

Bitsadmin /transfer <job_name> <type> /priority <low,normal,high,foreground> <remote_url> <local_url>

Что означают ключи в синтаксисе:

  • /transfer -> передача или отправка, т.е. можно скачать файлы или передать.
  • <job_name> -> произвольное именование вашего задания на скачивание файла
  • <type> -> может быть, как /DOWNLOAD & /UPLOAD. По умолчанию /DOWNLOAD, но я предпочитаю явно указывать что делаю.
  • /priority -> Приоритет у задачи, можно в нашем случае ставить любой.
  • <remote_url> -> удаленный путь до файла в интернете или локальной стеи
  • <local_url -> месторасположение на системе куда положить файл.

Пример:

123456789101112131415C:\Windows\system32>if not exist c:\test mkdir c:\test C:\Windows\system32>bitsadmin /transfer subinacl /download /priority normal https://download.microsoft.com/download/1/7/d/17d82b72-bc6a-4dc8-bfaa-98b37b22b367/subinacl.msi c:\test\subinacl.msi DISPLAY: ‘subinacl’ TYPE: DOWNLOAD STATE: TRANSFERRED PRIORITY: NORMAL FILES: 1 / 1 BYTES: 379392 / 379392 (100%) Transfer complete. C:\Windows\system32> C:\Windows\system32>dir c:\test\ | findstr /I “subinacl” 13.10.2018  06:45           379 392 subinacl.msi

Файл успешно скачан в указанную директорию test. Хочу заменить, что утилита не зависит от службы “Фоновая интеллектуальная служба передачи (BITS)”.

1C:\Windows\system32>rmdir /s /q “c:\test”

Способ №2: Получить файл применяя утилиту certutil

123456789101112131415C:\Windows\system32>if not exist c:\test mkdir c:\test C:\Windows\system32>certutil -urlcache -split -f “https://download.microsoft.com/download/1/7/d/17d82b72-bc6a-4dc8-bfaa-98b37b22b367/subinacl.msi” c:\test\subinacl.msi ****  Подключен  ****   000000  …   05ca00 CertUtil: -URLCache — команда успешно выполнена. C:\Windows\system32>dir c:\test\ | findstr /I “subinacl” 29.08.2019  11:08           379 392 subinacl.msi

-urlcache -> Показать или удалить URL-адреса в кэше

Способ №3: Получить файл применяя среду powershell:

123456789C:\Windows\system32>if not exist c:\test mkdir c:\test C:\Windows\system32>powershell -command get-host | findstr /I “Version” Version          : 5.1.14393.2189 C:\Windows\system32>powershell -command get-alias | findstr /I “curl” Alias           curl -> Invoke-WebRequest

Данный коммандлет Invoke-WebRequest поддерживается с PowerShell 3.0 и позволяет отправлять HTTP,HTTPS,FTP, FILE запросы на Web-страницы или Web-сервисы.

Загружаю файлы справки по использованию:

C:\Windows\system32>powershell -command update-help

Получаю

C:\Windows\system32>powershell -command get-help curl

Пример:

12345C:\Windows\system32>powershell -command curl -Method Default -uri https://download.microsoft.com/download/1/7/d/17d82b72-bc6a-4dc8-bfaa-98b37b22b367/subinacl.msi -outfile c:\test\subinacl.msi C:\Windows\system32>dir c:\test | findstr /I “subinacl” 29.08.2019  11:46           379 392 subinacl.msi

Как видите, встроенные средства – это Ваш навык по выходу из ситуации, когда других инструментов нет. Каждый системный администратор должен владеть тем, что есть под рукой, не прибегая к сторонним и не засоряя систему. Мне пока данных способов хватает, если я узнаю дополнительные, то дополню заметку. А пока у меня всё, с уважением автор блога Олло Александр aka ekzorchik.