г. Санкт-Петербург
Войти
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Заказать звонок
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности
Логин
Пароль
Зарегистрироваться
После регистрации на сайте вам будет доступно отслеживание состояния заказов, личный кабинет и другие новые возможности


1
2
3
4
5
6
7
8
9
10
14
Пример кода для автоматического заполнения картинок в Каталоге
 
[COLOR=#0f1115][FONT=quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif][SIZE=20px]4. Права на файл
[/SIZE]
[/FONT]
[/COLOR]
[COLOR=#0f1115][FONT=quote-cjk-patch, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif][SIZE=16px]

Убедитесь, что скрипт доступен для выполнения (chmod +x для cli-версии). При запуске через веб (не рекомендуется, но можно) - защитите файл от прямого доступа проверкой на [FONT=Menlo, Monaco, Consolas, "Cascadia Mono", "Ubuntu Mono", "DejaVu Sans Mono", "Liberation Mono", "JetBrains Mono", "Fira Code", Cousine, "Roboto Mono", "Courier New", Courier, sans-serif, system-ui][SIZE=0.875em]php_sapi_name() == 'cli'[/SIZE][/FONT].

[/SIZE][/FONT][/COLOR]
Пример кода для автоматического заполнения картинок в Каталоге
 
[B]Настройка и запуск[/B]
1. Измените ID инфоблока

В коде найдите const IBLOCK_ID = 17; и замените 17 на реальный ID вашего каталога.

2. Режим DRY_RUN (опционально)

Перед первым запуском установите const DRY_RUN = true;

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

3. Настройка cron (примеры)
Через командную строку (php-cli):bash

(каталоги нужно указать ваши)

# Запускать каждый час
0 * * * * /usr/bin/php -f /home/bitrix/www/bitrix/php_interface/cron/section_picture_filler.php >> /home/bitrix/www/upload/cron_section_images.log 2>&1

# Или через wget (если нет доступа к cli)
0 * * * * wget -q -O /dev/null "[URL=https://ваш-сайт.ру/bitrix/php_interface/cron/section_picture_filler.php"]https://ваш-сайт.ру/bitrix/php_interface/cron/section_picture_filler.php&quot[/URL];
4. Права на файл

Убедитесь, что скрипт доступен для выполнения (chmod +x для cli-версии). При запуске через веб (не рекомендуется, но можно) - защитите файл от прямого доступа проверкой на php_sapi_name() == 'cli'.

[CODE]/**
* Скрипт для автоматического заполнения картинок разделов каталога
* Запуск по cron: каждые N минут/часов
*/

$_SERVER['DOCUMENT_ROOT'] = dirname(__DIR__, 3); // поднимаемся на уровень выше /bitrix
define('NO_KEEP_STATISTIC', true);
define('NOT_CHECK_PERMISSIONS', true);
define('NO_AGENT_CHECK', true);
define('BX_BUFFER_USED', false);
define('BX_NO_ACCELERATOR_RESET', true);

require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';

use Bitrix\Main\Loader;
use Bitrix\Iblock\SectionTable;
use Bitrix\Iblock\ElementTable;

class SectionPictureFillerCron
{
/**
* ID инфоблока (каталога) — обязательно замените на свой
*/
const IBLOCK_ID = 17;

/**
* Режим "только сухие проверки" (dry-run)
* true - только вывод, что будет сделано, без обновлений БД
*/
const DRY_RUN = false;

/**
* Лимит на количество разделов за один запуск.
* 0 = без лимита.
*/
const LIMIT = 0;

/**
* Точка входа
*/
public static function run()
{
if (!Loader::includeModule('iblock')) {
self::log("Ошибка: модуль iblock не загружен");
return;
}

$startTime = microtime(true);
self::log("=== Запуск заполнения картинок разделов ===");
self::log("Инфоблок ID: " . self::IBLOCK_ID . (self::DRY_RUN ? " (DRY-RUN режим)" : ""));

$sections = self::getSectionsWithoutPicture();
$total = count($sections);
self::log("Найдено разделов без картинки: $total");

if (self::LIMIT > 0 && $total > self::LIMIT) {
$sections = array_slice($sections, 0, self::LIMIT);
self::log("Обработано будет только " . self::LIMIT . " разделов за этот запуск");
}

$updated = 0;
$skipped = 0;
$errors = 0;

foreach ($sections as $section) {
$sectionId = $section['ID'];
$iblockId = $section['IBLOCK_ID'];

$productPictureId = self::getFirstProductPictureId($sectionId, $iblockId);

if (!$productPictureId) {
self::log("Раздел [ID: $sectionId] — нет товаров с картинками");
$skipped++;
continue;
}

if (self::DRY_RUN) {
self::log("[DRY-RUN] Разделу [ID: $sectionId] будет назначена картинка ID: $productPictureId");
$updated++;
continue;
}

$fileArray = \CFile::MakeFileArray($productPictureId);
if (!$fileArray) {
self::log("Ошибка: не удалось создать массив файла для картинки ID $productPictureId (раздел $sectionId)");
$errors++;
continue;
}

$sectionUpdater = new \CIBlockSection();
if ($sectionUpdater->Update($sectionId, ['PICTURE' => $fileArray])) {
self::log("✓ Разделу [ID: $sectionId] назначена картинка ID: $productPictureId");
$updated++;
} else {
self::log("✗ Ошибка обновления раздела $sectionId: " . $sectionUpdater->LAST_ERROR);
$errors++;
}
}

$time = round(microtime(true) - $startTime, 2);
self::log("=== Готово. Обновлено: $updated, пропущено: $skipped, ошибок: $errors. Время: {$time} с ===");
}

/**
* Возвращает ID разделов, у которых нет установленной картинки (PICTURE)
*/
private static function getSectionsWithoutPicture()
{
$params = [
'select' => ['ID', 'IBLOCK_ID'],
'filter' => [
'=IBLOCK_ID' => self::IBLOCK_ID,
'=PICTURE' => false,
],
'order' => ['LEFT_MARGIN' => 'ASC'],
];
$result = SectionTable::getList($params);
$sections = [];
while ($row = $result->fetch()) {
$sections[] = $row;
}
return $sections;
}

/**
* Ищет ID картинки (PREVIEW_PICTURE или DETAIL_PICTURE) первого активного товара в разделе и его подразделах
*/
private static function getFirstProductPictureId($sectionId, $iblockId)
{
$result = ElementTable::getList([
'select' => ['ID', 'PREVIEW_PICTURE', 'DETAIL_PICTURE'],
'filter' => [
'=IBLOCK_ID' => $iblockId,
'=ACTIVE' => 'Y',
'=SECTION_ID' => $sectionId,
'INCLUDE_SUBSECTIONS' => 'Y',
],
'order' => ['SORT' => 'ASC', 'ID' => 'ASC'],
'limit' => 100,
]);

while ($element = $result->fetch()) {
$pictureId = (int)($element['PREVIEW_PICTURE'] ?: $element['DETAIL_PICTURE']);
if ($pictureId > 0) {
return $pictureId;
}
}
return null;
}

/**
* Логирование в файл
*/
private static function log($message)
{
$logEntry = date('Y-m-d H:i:s') . ' ' . $message . PHP_EOL;
$logFile = $_SERVER['DOCUMENT_ROOT'] . '/upload/section_picture_filler.log';
file_put_contents($logFile, $logEntry, FILE_APPEND | LOCK_EX);
}
}

// Запуск
SectionPictureFillerCron::run();

require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php';[/CODE]
Поставки SKAT от Бастион, цены реальные на конец 2025г, Свободный запрос по ценам на конец 2025г
 
[TABLE][TR][TH]№[/TH][TH]Наименование[/TH][TH]Кол-во[/TH][TH]Ед. изм.[/TH][TH]Цена[/TH][TH]Цена со скидкой[/TH][TH]Скидка[/TH][TH]Сумма[/TH][TH]Дата обеспечения[/TH][TH]Комментарий[/TH][/TR][TR][TD]1[/TD][TD]2159, SNMP-модуль DL 801 SKAT UPS-1000 RACK/10000 RACK Мониторинг и упр-е по Ethernet[/TD][TD]3[/TD][TD]шт[/TD][TD]27 210.00[/TD][TD]21 768.00[/TD][TD]16 326.00[/TD][TD]65 304.00[/TD][TD]31.12.2025[/TD][TD]декабрь[/TD][/TR][TR][TD]2[/TD][TD]8764, SKAT-UPS 1500-RACK-ON-3X9 P3 - ИБП 1500 Вт, On-Line, синус, встр. АКБ 36В (3x9Ач), 2хSchuko[/TD][TD]1[/TD][TD]шт[/TD][TD]84 520.00[/TD][TD]67 616.00[/TD][TD]16 904.00[/TD][TD]67 616.00[/TD][TD]28.11.2025[/TD][TD]ноябрь[/TD][/TR][TR][TD]3[/TD][TD]8753, SKAT BC 36/18S3 RACK блок батарейный[/TD][TD]3[/TD][TD]шт[/TD][TD]52 560.00[/TD][TD]42 048.00[/TD][TD]31 536.00[/TD][TD]126 144.00[/TD][TD]22.10.2025[/TD][TD]в наличии[/TD][/TR][TR][TD]4[/TD][TD]8769, SKAT-UPS 2000-RACK-ON-4X9-E P3 - ИБП 2000 Вт, On-Line, синус, встр. АКБ 48В (4x9Ач), 8хC13[/TD][TD]2[/TD][TD]шт[/TD][TD]102 290.00[/TD][TD]81 832.00[/TD][TD]40 916.00[/TD][TD]163 664.00[/TD][TD]10.12.2025[/TD][TD]ноябрь-начало декабря[/TD][/TR][TR][TD]5[/TD][TD]8785, SKAT BC 48/18S3 RACK P3 - блок батарейный 2U, 48В, 18Ач, ЗУ, для ИБП со встр. АКБ[/TD][TD]6[/TD][TD]шт[/TD][TD]76 890.00[/TD][TD]61 512.00[/TD][TD]92 268.00[/TD][TD]369 072.00[/TD][TD]31.12.2025[/TD][TD]декабрь[/TD][/TR][/TABLE]
Поиск и установка обновлений с помощью powershell, Get-WUList поиск и установка через повершелл
 
Чтобы автоматически скачать и установить все доступные обновления для вашей версии Windows с серверов Windows Update (вместо локального WSUS), выполните

Get-WindowsUpdate -KBArticleID KB2267602, KB4533002 -Install

Ключ AcceptAll включает одобрение установки для всех пакетов, а AutoReboot разрешает автоматическую перезагрузку Windows после завершения установки обновлений.

Также можно использовать следующе параметры:

[LIST]
[*]IgnoreReboot – запретить автоматическую перезагрузку;
[*]ScheduleReboot – задать точное время перезагрузки компьютера.
[/LIST]

Можете сохранить историю установки обновлений в лог файл (можно использовать вместо WindowsUpdate.log).

Install-WindowsUpdate -AcceptAll -Install -AutoReboot | Out-File "c:\$(get-date -f yyyy-MM-dd)-WindowsUpdate.log" -force

Можно установить только конкретные обновления по номерам KB:

Get-WindowsUpdate -KBArticleID KB2267602, KB4533002 -Install

[IMG WIDTH=616 HEIGHT=210]https://winitpro.ru/wp-content/uploads/2018/10/install-windowsupdate-ustanovka-obnovlenij-windows.png[/IMG]

Если вы хотите пропустить некоторые обновления при установке, выполните:

Install-WindowsUpdate -NotCategory "Drivers" -NotTitle OneDrive -NotKBArticleID KB4011670 -AcceptAll -IgnoreReboot

Проверить, нужна ли перезагрузка компьютеру после установки обновления (атрибуты RebootRequired и RebootScheduled):

Get-WURebootStatus

[B]Просмотр истории установленных обновлений в Windows[/B]

С помощью команды Get-WUHistory вы можете получить список обновлений, установленных на компьютере ранее автоматически

Поиск и установка обновлений с помощью powershell, Get-WUList поиск и установка через повершелл
 

Установите модуль на свой компьютер из галереи скриптов PSGallery:

Проверка что модуль есть в системе

Find-Module –Name *PSWindowsUpdate*| Select Name, Version, Repository

Install-Module -Name PSWindowsUpdate

Get-WUList
[IMG WIDTH=584 HEIGHT=115]https://winitpro.ru/wp-content/uploads/2016/02/powershell-spisok-dostupnih-obnovleniy.jpg[/IMG]

Скачайте нужный вам модуль на ваш компьютер в указанный каталог:

Save-Module –Name PSWindowsUpdate –Path C:\ps\

Чтобы проверить, откуда получает ли Windows обновлений с серверов Windows Update в Интернете или локального WSUS, выполните команду:

Get-WUServiceManager

[IMG WIDTH=642 HEIGHT=100]https://winitpro.ru/wp-content/uploads/2018/10/get-wuservicemanager-istochnikia-obnovlenij.png[/IMG]

В этом примере вы видите, компьютер настроен на получение обновлений с локального сервера WSUS (Windows Server Update Service = True). В этом случае вы должны увидеть список обновлений, одобренных для вашего компьютера на WSUS.

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

[LIST]
[*]Категории (-NotCategory);
[*]Названию (-NotTitle);
[*]Номеру обновления (-NotKBArticleID).
[/LIST]

Например, чтобы исключить из списка обновления драйверов, OneDrive, и одну конкретную KB:

Get-WUlist -NotCategory "Drivers" -NotTitle OneDrive -NotKBArticleID KB4533002

Скачать все доступные обновления на компьютер (обновления загружаются в локальный кэш обновлений в каталоге C:\Windows\SoftwareDistribution\Download ).

Get-WindowsUpdate -Download -AcceptAll

Windows загрузит все доступные патчи сервера обновлений (MSU и CAB файлы) в локальный каталог обновлений, но не запустит их автоматическую установку.

[B]Установка обновлений Windows с помощью команды Install-WindowsUpdate[/B]

Чтобы автоматически скачать и установить все доступные обновления для вашей версии Windows с серверов Windows Update (вместо локального WSUS), выполните:

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Cброс настроек Windows Update с помощью PowerShell, Для сброса настроек агента и службы Windows Update использование PowerShell и модуль PSWindowsUpdate
 
Cброс настроек Windows Update с помощью PowerShell

Для сброса настроек агента и службы Windows Update можно использовать PowerShell модуль PSWindowsUpdate.

Установите модуль на свой компьютер из галереи скриптов PSGallery:

Install-Module -Name PSWindowsUpdate

Разрешите запуск PowerShell скриптов в текущей сессии:

Set-ExecutionPolicy –ExecutionPolicy RemoteSigned -force -Scope Process

Затем нужно импортировать модуль в сессию:
Import-Module PSWindowsUpdate

Для сброса компонентов Windows Update, выполните команду:

Reset-WUComponents –verbose

[IMG WIDTH=839 HEIGHT=361]https://winitpro.ru/wp-content/uploads/2016/02/sbros-sluzhby-obnovleniy-Reset-WUComponents-powershell.jpg[/IMG]

Команда Reset-WUComponents отключает службы, используемые Центром обновлений Windows, перерегистрирует dll, очищает каталог C:\Windows\SoftwareDistribution и пересоздает базу данных Windows Update (выполняет все те же операции, что описанный чуть BAT скрипт).

[CODE]VERBOSE: Background Intelligent Transfer Service (BITS)
VERBOSE: Windows Update (wuauserv)
VERBOSE: Application Identity (appidsvc)
VERBOSE: Cryptographic Services (cryptsvc)
Step 2: Delete the qmgr*.dat files
Step 3: Backup software distribution folders
VERBOSE: Renaming Software Distribution folder to C:\Windows\SoftwareDistribution.bak
VERBOSE: Renaming CatRoot folder to C:\Windows\System32\Catroot2.bak
Step 4: Remove old Windows Update logs
VERBOSE: Deleting the C:\Windows\WindowsUpdate.log files.
Step 5: Reset Windows Update services
VERBOSE: Reset BITS service
VERBOSE: Reset Windows Update service
Step 6: Reregister dll's
VERBOSE: regsvr32.exe / s atl.dll
VERBOSE: regsvr32.exe / s urlmon.dll
VERBOSE: regsvr32.exe / s mshtml.dll
VERBOSE: regsvr32.exe / s shdocvw.dll
VERBOSE: regsvr32.exe / s browseui.dll
VERBOSE: regsvr32.exe / s jscript.dll
VERBOSE: regsvr32.exe / s vbscript.dll
VERBOSE: regsvr32.exe / s scrrun.dll
VERBOSE: regsvr32.exe / s msxml.dll
VERBOSE: regsvr32.exe / s msxml3.dll
VERBOSE: regsvr32.exe / s msxml6.dll
VERBOSE: regsvr32.exe / s actxprxy.dll
VERBOSE: regsvr32.exe / s softpub.dll
VERBOSE: regsvr32.exe / s wintrust.dll
VERBOSE: regsvr32.exe / s dssenh.dll
VERBOSE: regsvr32.exe / s rsaenh.dll
VERBOSE: regsvr32.exe / s gpkcsp.dll
VERBOSE: regsvr32.exe / s sccbase.dll
VERBOSE: regsvr32.exe / s slbcsp.dll
VERBOSE: regsvr32.exe / s cryptdlg.dll
VERBOSE: regsvr32.exe / s oleaut32.dll
VERBOSE: regsvr32.exe / s ole32.dll
VERBOSE: regsvr32.exe / s shell32.dll
VERBOSE: regsvr32.exe / s initpki.dll
VERBOSE: regsvr32.exe / s wuapi.dll
VERBOSE: regsvr32.exe / s wuaueng.dll
VERBOSE: regsvr32.exe / s wuaueng1.dll
VERBOSE: regsvr32.exe / s wucltui.dll
VERBOSE: regsvr32.exe / s wups.dll
VERBOSE: regsvr32.exe / s wups2.dll
VERBOSE: regsvr32.exe / s wuweb.dll
VERBOSE: regsvr32.exe / s qmgr.dll
VERBOSE: regsvr32.exe / s qmgrprxy.dll
VERBOSE: regsvr32.exe / s wucltux.dll
VERBOSE: regsvr32.exe / s muweb.dll
VERBOSE: regsvr32.exe / s wuwebv.dll
Step 7: Reset WinSock
VERBOSE: netsh winsock reset
Step 8: Reset Proxy
VERBOSE: netsh winhttp reset proxy
Step 9: Start Windows Update services
VERBOSE: Cryptographic Services (cryptsvc)
VERBOSE: Application Identity (appidsvc)
VERBOSE: Windows Update (wuauserv)
VERBOSE: Background Intelligent Transfer Service (BITS)
Step 10: Start Windows Update services
VERBOSE: wuauclt /resetauthorization /detectnow[/CODE]
Проблема Windows 24h2 после обновления артефакты или искажение при подключении к windows 7 / 2008r2, Возникает проблема с подключением к старым версиям remote desktop Windows 2008r2 terminal server и аналогичным на ядре win7
 
После обновления Windows 11 до версии 24H2 подключения через удалённый рабочий стол к компьютерам с Windows 7 или Windows Server 2008R2 начинают отображать графическое содержимое криво появляются артефакты.

Возврат к предыдущей версии Windows 11 (23H2) устраняет проблему но не всегда это возможно

Проблема актуальна для 2008R2 где аналогичная проблема. (часть текста будет не читаема, особенно если поводить приложение мышью текстуры сьезжают)

С более новыми ос > 2008r2 (2012,2016 и т.д проблема не обнаружена

Решение: первично нужно сделать папку c:\old в неё переместим (новые) старые файлы от Windows 24h2

Если у вас осталась папка c:\windows.old то все нужные файлы есть там (если у вас нет смотрите ниже приложенные архивы от версии windows 11 23h2

Скрипт №1 (архивация) - всё останется в папке c:\old

Обратите внимание что оба скрипта копируют обе языковые версии mui для ru-RU и en-US (какая у вас надо смотреть)
[CODE]mkdir c:\old
copy C:\Windows\System32\mstsc.exe C:\old\mstsc.exe
copy C:\Windows\System32\mstscax.dll C:\old\mstscax.dll

copy C:\Windows\System32\ru-RU\mstsc.exe.mui C:\old\mstsc.exe.mui
copy C:\Windows\System32\ru-RU\mstscax.dll.mui c:\old\mstscax.dll.mui

copy C:\Windows\System32\en-US\mstsc.exe.mui C:\old\en-US\mstsc_en.exe.mui
copy C:\Windows\System32\en-US\mstscax.dll.mui c:\old\en-US\mstscax_en.dll.mui[/CODE][CODE]copy C:\Windows\SystemResources\mstsc.exe.mun c:\old\mstsc.exe.mun
copy C:\Windows\SystemResources\mstscax.dll.mun c:\old\mstscax.dll.mun


[/CODE]
Теперь копируем эти данные из старой версии windows.old: (Обычно они в подпапке windows - у вас может быть всё иначе
[COLOR=#333333][FONT=var(--ui-font-family-system-mono, consolas, monospace)][SIZE=12px]
[/SIZE][/FONT][/COLOR]
Скрипт №2 (заменяем версии файлов из копии windows.old) [COLOR=#333333][FONT=var(--ui-font-family-system-mono, consolas, monospace)][SIZE=12px]
[/SIZE][/FONT][/COLOR][CODE]copy C:\Windows.old\windows\System32\mstsc.exe C:\Windows\System32\mstsc.exe
copy C:\Windows.old\windows\System32\mstscax.dll C:\Windows\System32\mstscax.dll

copy C:\Windows.old\windows\System32\ru-RU\mstsc.exe.mui C:\Windows\System32\ru-RU\mstsc.exe.mui
copy C:\Windows.old\windows\System32\ru-RU\mstscax.dll.mui C:\Windows\System32\ru-RU\mstscax.dll.mui

copy C:\Windows.old\windows\System32\en-US\mstsc.exe.mui C:\Windows\System32\en-US\mstsc.exe.mui
copy C:\Windows.old\windows\System32\en-US\mstscax.dll.mui C:\Windows\System32\en-US\mstscax.dll.mui


copy C:\Windows.old\windows\SystemResources\mstsc.exe.mun C:\Windows\SystemResources\mstsc.exe.mun
copy C:\Windows.old\windows\SystemResources\mstscax.dll.mun C:\Windows\SystemResources\mstscax.dll.mun[/CODE]
Регистрируем:

regsvr32 C:\Windows\System32\mstscax.dll
В процессе может не хватить разрешений на доступ к нужным файлам

можно использовать команды
takeown /f имяфайла
и
icacls имя файла /grant %username%:F

Ниже пример скрипта который выполняет архивацию и замену, для замены нужно положить в каталог c:\windows\%~dp0\ полный перечень файл в подпапках


Windows.old :

C:\Windows\System32\mstsc.exe
C:\Windows\System32\mstscax.dll
C:\Windows\System32\en-US\mstsc.exe.mui
C:\Windows\System32\en-US\mstscax.dll.mui

C:\Windows\System32\ru-RU\mstsc.exe.mui
C:\Windows\System32\ru-RU\mstscax.dll.mui

C:\Windows\SystemResources\mstsc.exe.mun
C:\Windows\SystemResources\mstscax.dll.mun

[CODE]@ECHO OFF
@TITLE RDP_Downgrade for W11 24H2
PUSHD C:\Windows\System32
taskkill /im mstsc.exe /f /t
takeown /f mstsc.exe
takeown /f mstscax.dll
takeown /f ru-RU\mstsc.exe.mui
takeown /f ru-RU\mstscax.dll.mui
takeown /f ..\SystemResources\mstsc.exe.mun
takeown /f ..\SystemResources\mstscax.dll.mun
icacls mstsc.exe /grant %username%:F
icacls mstscax.dll /grant %username%:F
icacls ru-RU\mstsc.exe.mui /grant %username%:F
icacls ru-RU\mstscax.dll.mui /grant %username%:F
icacls ..\SystemResources\mstsc.exe.mun /grant %username%:F
icacls ..\SystemResources\mstscax.dll.mun /grant %username%:F
if not exist ..\Setup\RDP_24H2 (
mkdir ..\Setup\RDP_24H2
xcopy /-i /h /f /r /d /y mstsc.exe ..\Setup\RDP_24H2\mstsc.exe
xcopy /-i /h /f /r /d /y mstscax.dll ..\Setup\RDP_24H2\mstscax.dll
xcopy /-i /h /f /r /d /y ru-RU\mstsc.exe.mui ..\Setup\RDP_24H2\ru-RU\mstsc.exe.mui
xcopy /-i /h /f /r /d /y ru-RU\mstscax.dll.mui ..\Setup\RDP_24H2\ru-RU\mstscax.dll.mui
xcopy /-i /h /f /r /d /y ..\SystemResources\mstsc.exe.mun ..\Setup\RDP_24H2\SystemResources\mstsc.exe.mun
xcopy /-i /h /f /r /d /y ..\SystemResources\mstscax.dll.mun ..\Setup\RDP_24H2\SystemResources\mstscax.dll.mun)
POPD
xcopy /-i /h /f /r /y %~dp0\mstsc.exe_old C:\Windows\System32\mstsc.exe
xcopy /-i /h /f /r /y %~dp0\mstscax.dll_old C:\Windows\System32\mstscax.dll
xcopy /-i /h /f /r /y %~dp0\ru_mstsc.exe.mui_old C:\Windows\ru-RU\mstsc.exe.mui
xcopy /-i /h /f /r /y %~dp0\ru_mstscax.dll.mui_old C:\Windows\ru-RU\mstscax.dll.mui
xcopy /-i /h /f /r /y %~dp0\sr_mstsc.exe.mun_old C:\Windows\SystemResources\mstsc.exe.mun
xcopy /-i /h /f /r /y %~dp0\sr_mstscax.dll.mun_old C:\Windows\SystemResources\mstscax.dll.mun
regsvr32 /s C:\Windows\System32\mstscax.dll
pause[/CODE]
Роутеры модемы и переходники VERTELL
 
VERTELL модемы: Полное описание запрашивайте в л.с

VT-X3E Встраиваемый роутер VT-X3E EC25-EU Код товара: 1032 Цена: 5950,00 ₽ - работает до 100метров по витой паре!

VT-X3U Встраиваемый модем VT-X3U EC-25EU Код товара: 1031 Цена: 4200 ₽ - до 15 метров по USB через VT-UP

SA 88774 Модем Fibocom L850-GL модем с агрегацией и антенной в сборе Код товара: 88774 - Цена: 6 201,60 ₽ - Удобный комплект с АНТЕННОЙ чтобы подключить по ЮСБ кабелю.
(Переходник Vertell VT-USB3-M2 в комплекте)

SA 2008 Модем Cat.9 базе Fibocom L850-GL с VT-AD3-M2 и VT-UP Код товара: 2008 Цена: 3650,00 ₽ - модем + радиатор + VT-UP -работает до 15 метров по USB!!!

Fibocom L850-G Модем Fibocom L850-GL Код товара: 3025 Цена: 2400 ₽ - просто плата модема, без адаптера.

VT-AD4-M.2 Адаптер VT-AD4-M.2 с VT-UP v.2 + SIM Код товара: 2010 Цена: 1350,00 ₽
(адаптер +переходник RJ45-USB -
SA 3100 Удлинитель VT-SIM-EXT с разъёмом под nano-SIM карту Код товара: 3100 Цена: 850₽
EC-25EU Модем VT-X1 EC-25EU Код товара: 1030 Цена: 4560,60 ₽

VT-BOX1 Герметичный бокс VT-BOX1 Код товара: 1019 - Цена: 650 ₽
VT-BOX2 Герметичный бокс VT-BOX2 Код товара: 10190 Цена: 650 ₽
SA1014 Патч-корд UTP 15 м Код товара: 1014 Цена: 948,60 ₽
Petra-9 Антенна PETRA-9 MIMO 2x2 BOXКод товара: 1021 Цена: 1 936,00₽ Цена: 3400 ₽ - антенна с пигтейлами uf подходит под все решения VERTELL.
Роутеры модемы и переходники VERTELL
 
Модем M.2 VT-STATION-M.2 Cat. 9Код товара: 3021 [URL=https://youtu.be/kpQhAPathuA]https://youtu.be/kpQhAPathuA[/URL]
Как записать ЭЦП на рутокен., Rutoken light как записать Сертификат ЭЦП ген директора
 
Как записать ЭЦП на рутокен.
Зайти в меню «Пуск» > «Панель управления» > «КриптоПро CSP».
В открывшемся приложении «Крипто Про CSP» нужно выбрать вкладку «Сервис», а на ней нажать кнопку «Скопировать».
После этого будет открыто окно «Копирование контейнера закрытого ключа». Необходимо в нем нажать «Обзор», выбрать в списке ключ, который необходимо скопировать и нажать «ОК», после чего «Далее».
Если копирование производится с другого Рутокена, то будет запрошен пин-код. Заводской код для такого случая — 12345678.
Дальше нужно придумать имя для нового контейнера. Здесь можно использовать пробелы и русские буквы. После чего нужно щелкнуть по кнопке «Готово».
Затем откроется новое окно «Вставьте и выберите носитель для хранения ключа». Если запись производится на Рутокен, то нужно здесь найти «Active Co. RuToken …». В конце будет стоять цифра, определяющая порядковый номер носителя. Если используется несколько Рутокенов, то необходимо иметь данный факт в виду. Затем нужно нажать ОК.
На следующем шаге будет предложено установить пароль на новый ключ. Если это не предполагается делать, то можно оставить поля пустыми, после чего нужно нажать ОК.
1
2
3
4
5
6
7
8
9
10
14