четверг, 22 апреля 2021 г.

формируем список баз по группам пользователей в AD на терминальном сервере

 

Управление общим списком баз 1С на терминальном сервере


1) Создаем список баз.

2) Копируем созданный список баз в общую директорию (доступную для всех пользователей)
(список баз находится в директории %AppData%\1C\1CEStart с именем ibases.V8I).




3)Переходим в файл  C:\ProgramData\1C\1CEStart\1cestart.cfg

        CommonInfoBases=c:\Utils\logon\ibases.v8i

        CommonInfoBases=C:\Utils\1c_base\buh\ibases.v8i

        CommonInfoBases=C:\Utils\1c_base\opt\ibases.v8i

В C:\Utils\logon доступна вообще всем пользователям терминального сервера. в ней расположен список баз доступный каждому
В C:\Utils\1c_base\buh\ настроены права на группу доступа только бухгалтерия
В C:\Utils\1c_base\opt\ настроены права на группу доступа только склады

файлы можно расположить в сети придя файлы к виду:
CommonInfoBases=\\ХХХХХ\share$\base1.v8i
CommonInfoBases=\\ХХХХХ\share$\base2.v8i
.....

При запуске 1с в список информационных баз у пользователя добавятся только те, на которые у него есть права на чтение. Минимум скриптов, права можно менять без перелогона...в общем удобно


4) Чтобы список баз отображался в виде дерева (иерархией)
настройка хранится ТОЛЬКО в профиле пользователя в файле:
%UserProfile%\AppData\Roaming\1C\1cv8\1cv8strt.pfl

Параметр:
{"B",0},"AutoSortIBs",       без дерева
{"B",1},"AutoSortIBs",       с деревом

чтобы у всех пользователей установить список баз деревом идем в gpedit.msc
Конфигурация пользователя->Конфигурация Windows->Сценарии входа->Вход в систему

и добавляем там bat файл с содержимым:
@echo off
mkdir %UserProfile%\AppData\Roaming\1C\1cv8
copy C:\Utils\1cv8strt.pfl %UserProfile%\AppData\Roaming\1C\1cv8\1cv8strt.pfl



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

Если же требуется лишь заменить строчку с настройкой дерева в указанном файле, то указать путь к bat-файлу:
@echo off
setlocal enabledelayedexpansion
Set infile=%UserProfile%\AppData\Roaming\1C\1cv8\1cv8strt.pfl
Set find={"B",0},"AutoSortIBs",
Set replace={"B",1},"AutoSortIBs",
@echo off
setlocal enabledelayedexpansion
set COUNT=0
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
Echo !TMPR!>>TMP.TXT
)
del %infile%
move TMP.TXT %infile%

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

воскресенье, 18 апреля 2021 г.

Чеклист "Сервер MSSQL+1C"

 

1. Брендмауер
Для 1с
Список портов по умолчанию:
  • 1541 – порт менеджера кластера;
  • 1540 – порт агента сервера;
  • 1560-1591 – порты для рабочих процессов;
  1. Заходим в оснастку настройки Firewall. Проще всего через “Выполнить” (Win+R) -> “Дополнительные параметры”.
  2. Создаем правило для входящих подключений.
  3. “Правило для какого типа вы хотите создать?” –  отмечаем “Для порта”
  4. “Укажите протокол, к которому будет применяться это правило” – отмечаем “Протокол TCP”
  5. “Укажите порты, к которым будет применяться это правило.” – если у нас порта стандартные, то: “1540, 1541, 1560-1591”
  6. “Укажите действие, которое должно выполняться, когда подключение удовлетворяет указанным условиям” – выбираем “Разрешить подключение”
  7. “Для каких профилей применяется правило?” – можно отметить все
  8. Затем вводим название и описание нашего правило и жмем “Готово”.
  9. На этом все. Если нет необходимости подключаться через консоль администрирования сервера  с локальных компьютеров, то порт 1540 пропускаем.

Для MSSQL:
TCP и порта 1433
UDP и порта 1434  - Managment Studio

для SMB шар
TCP и порт 445 

2. TempDB

Перенос файлов системной базы  
ALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev , FILENAME = 'T:\tempdb.mdf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = templog , FILENAME = 'T:\templog.ldf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = temp2 , FILENAME = 'T:\tempdb_mssql_2.ndf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = temp3 , FILENAME = 'T:\tempdb_mssql_3.ndf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = temp4 , FILENAME = 'T:\tempdb_mssql_4.ndf' )

Меняем дефолтный размер файла на 1000 и ограничиваем каждый файл 19000

SQL
Скопировать код
-- Предготовка базы данных к подключению
CREATE DATABASE [YourDB]
ON (FILENAME = 'FullPath\YourDB.mdf'),  -- Основной файл
    (FILENAME = 'FullPath\YourDB_log.ldf')  -- Файл журнала транзакций
FOR ATTACH; -- Присоединение файлов
GO


3. TempDB
USE [tempdb];
GO
DBCC SHRINKFILE (LogicalName, EMPTYFILE);
GO
ALTER DATABASE tempdb
REMOVE FILE LogincalName;
GO

среда, 14 апреля 2021 г.

Конвертация скрипта Powershell(*.ps1) в .exe

источник:  https://github.com/MScholtes/PS2EXE


Installation

PS C:\> Install-Module ps2exe

Usage

  Invoke-ps2exe .\source.ps1 .\target.exe

or

  ps2exe .\source.ps1 .\target.exe
мой пример: Invoke-ps2exe C:\123\block_off.ps1 C:\123\block_off_kip.exe
назначение: для попытки обойти блокировку выполнения скриптов powershell через GPO

вторник, 13 апреля 2021 г.

Log Shipping

1. Начнем настройку Log Shiping (Доставка журналов транзакции)

 настраиваем базу источник (по ней ПКМ -> свойства -> Доставка журналов транзакции )









в итоге в Агенте создается задание на бекапирование и передачу в сетевую папку логов транзакций

2)на сервере приемнике создается задание восстанавливающее базу из бекапов

2. Отключение доставки логов
1) на сервере источнике отключаем галочку доставки логов
2) на сервере приемнике на базе master выполняем скрипт

RESTORE LOG [zup_smaileg] WITH RECOVERY
RESTORE DATABASE zup_smaileg WITH RECOVERY, CONTINUE_AFTER_ERROR

База данных выйдет из горячего резервирования и перейдет из режима чтения в рабочее сотояние
3) переключаем пользователей на резервную базу

4. Переключение на базу источник
Проще всего снять полный бекап и восстановить его на базе источнике
5. Включение Log shiping обратно в рабочее состояние
Настраивается полностью с 0




Как установить и настроить PHP на Windows Server

  В данной статье мы научимся устанавливать PHP на Windows Server. Существует несколько способов установки PHP, включая PHP Manager for IIS ...