Category: it

Category was added automatically. Read all entries about "it".

Отдыхаю

Немного о себе и о журнале.

Обо мне

29eaf0d30da5cca21847dc0b465d6b05[1]

Меня зовут Михаил. Живу в Питере, работаю обычным сисадмином. Кроме работы, увлекаюсь всем подряд, от походов, до написания мелких рассказиков. Журнал, хоть и называется "Заметки админа", здесь можно найти всё, и юмор, и мои рассказики, и техническую информацию по работе. Если что кому интересно, задавайте вопросы тут, если смогу, отвечу.
И о правилах журнала.
В журнале присутствует ненормативная лексика, я не сдерживаюсь, да и других не сдерживаю, так, что, если вам это не по душе, то ... ну сами понимаете.
Общаться я предпочитаю на "ты", всякие "выканья" меня вводят в ступор.
Если этими краткими словами я не отвратил тебя от прочтения этого журнала, милости просим.
О политике френдов
Да, во френдомарафонах не участвую, френжу только тех, чей журнал мне понравится по содержанию и по духу. Если кому нужны именно взаимные френды - это не ко мне. Если хочешь обратить мое внимание на свой журнал, оставь ссылочку, я посмотрю, но гарантии, что зафренжу, нет.

Приятного чтения.
promo hroft_clone3 september 3, 2012 20:41 16
Buy for 10 tokens
Частенько меня спрашивают: "Как ты так быстро всё ищешь в интернете?" Не понимаю, почему кто-то считает, что я быстро ищу. Это же элементарно. Посмотрим как это будет. Давайте попробуем найти с помощью разных поисковых систем одно и то же. Например описание тизерной рекламной компаннии Camel.…
Смайл

Проверяем работу службы Windows с помощю Zabbix

Задача - контролировать работу 1С сервера. В случае нештатной работы службы 1С скрвера, выдать тревогу через Zabbix, учитывая, что надо контролировать большое количество серверов.

Не буду описывать Zabbix, надеюсь спецы знают. Для других поясно. Это сервис контроля за состоянием разнообразных параметров серверов, сетевого оборудования, обычных компьютеров. Система бесплатная и используется во многих организациях. В случае обнаружения определенных условий, она умеет отправить сообщение администратору с описанием проблемы. Те, кому не нужно, под спойлер.

[Создание шаблона контроля работы службы Windows, на примере 1С сервера.]Создание шаблона контроля работы службы Windows, на примере 1С сервера.

Создаем в заббиксе новый шаблон VM 1C.
Выставляем частоту опроса 60s и срок хранения 7d/
Создаём элемент данных 1C state
Вводим ключ service.info[1C:Enterprise 8.3 Server Agent (x86-64),state]
1C:Enterprise 8.3 Server Agent (x86-64) - название windows службы сервера 1С.
Сохраняем ключ.

Теперь триггер.
Создаём триггер 1C state Alarm
Вводим выражение last(/VM 1C/service.info[1C:Enterprise 8.3 Server Agent (x86-64),state],#1)<>0
Состояние службы равному нулю - всё в порядке, остальное - нас не устраивает. Значит будем реагировать на ненулевое значение.
Если нужно реагировать на другие состояния, вот остальные значения.

0 - запущен
1 - пауза
2 - ожидание старта
3 - ожидание паузы
4 - ожидание продолжения
5 - ожидание остановки
6 - остановлен
7 - неизвестно
255 - такой службы не существует
Выставляем важность события. Я выставляю в критическое, это вызовет сообщение админу.
Сохраняем триггер.
Всё, теперь можно быть уверенным, если служба встанет, я узнаю это сразу.

Можно отслеживать и по запущенному процессу, например avp.exe - это Касперский. У него в имени службы указана версия, приходится проверять запущен ли процесс.
proc_info[avp.exe,wkset,sum] - сумма размера памяти всех процессов Касперского


Рыба

Скачать с Microsoft Store без самого Store

Иногда надо что-то скачать с Microsoft Store пакет, а ты на сервере. А там нет Store.
Идем на https://store.rg-adguard.net/ Берем ссылку и используем ее в этой услуге.
Получаем кучу ссылок, выбираем нужную.

Ссылки идут на "appxbundle" и "BlockMap" пакеты в windows 10 проблем не должно быть.

Например

Microsoft.MSPaint_2019.408.1721.0_neutral_~_8wekyb3d8bbwe.appxbundle

Но можно установить тот-же whatsapp и иначе.
Запускаем Powershell с правами админа.
Устанавливаем репозиторий Chocolatey
Find-PackageProvider -Name nuget | Install-Package -Force
Find-PackageProvider -Name Chocolatey | Install-Package -Force
Переходим по адресу https://chocolatey.org/packages и находим нужный пакет.
Копируем ссылку на установку choco install whatsapptray и запускаем в PowerShell.

Так же можно установить и другие пакеты
Рыба

Восстановление стандартных доменных политик

Обнаружил я тут, что в одном домене слетели пара доменных стандартных политик: "Default Domain Policy" и "Default Domain Controllers Policy".

При наведении на эту политику курсора, говорит, что нет такой папки.

[Техническое описание внутри]
Выясняю какие SID у этих политик.


Иду в папку C:\Windows\SYSVOL\domain\Policies, на контроллере домена, там хранятся папки с политиками. Папка политики называется именно так, как мы выяснили чуть выше.



C:\Windows\SYSVOL\domain\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}- Default Domain Policy

C:\Windows\SYSVOL\domain\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}- Default Domain Controllers Policy



Что там наворочено только M$у известно.

Поискал в бэкапах - в сохранившихся копиях нет папокю



Зашел на контроллер домена другого домена.

Там эти папки обнаружились.

Переписал эти папки на наш контроллер домена.

Выделил битую политику. "Права не совпадают, я правлю. ОК"

Ну ОК, так ОК

Осталось восстановить связь политик. Восстановил. Всё работает.

Домен восстановлен, идем за пивом.

Рыба

No-code или WISIWYG?

На тытрубе уже достала реклама скилбокса и no-code.

Блин, кто назвал старую технологию WYSIWYG как no-code?
Это еще в конце 90-х было создано, правда, уметь програмить надо было в этой технологии всегда, как без этого описать действия при нажатии на элемент управления форм?
Короче, очередной обман, берут бабло с лохов за обучение древней технологии.

[Немного моих размышлений о технологии.]Суть метода в том, что с помощью визуальных редакторов создать сайт или приложение, создать все формы, расставить все элементы управления, задать дерево переходов с формы на форму.
Лоя сайта это хорошо, если не надо запрашивать данных, сразу можно получить готовый сайт, не зная ничего о кодировании. Но, как только появляется обмен данными с пользователем или ли какие запросы в базы данных, или какая-то обработка данных, вот тут очень нужно уметь программировать и знать теорию, да и практику нужно иметь, знать современные библиотеки программирования (.NET или какие еще), знать языки программирования, языки запросов к базам данных.

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

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

Приятный ресурс для админов и не только (Поднимем древность)

Думаю, многие знают этот сайт, но я его и тут прорекламирую.

[Список разделов прост и непривлекателен]Список разделов прост и непривлекателен
Разделы:
Main
Карманные компьютеры
  Файлы
Сотовые телефоны
  Файлы
Навигация, карты
Программы
ОС, мобильные ОС
  Windows
      WSH скрипты
  Linux
      Команды
  Android
Web
  SEO
  Templates
  CMS
      DLE
  Скрипты
  css
Хак, безопасность
Железо
Авто
Видео
Книги
  Программы для e-book
  Фантастика
Рецензии
Бумажные штуки
Фотоальбом
Юмор
Рецепты




И везде есть что-то полезное.

Есть скрипты для операционок, есть статьи с решением некоторых проблем. В общем много чего есть.
Итак:


Отдельное спасибо скажу автору этого сайта вот за эту статейку


При входе в Windows 7 доменным пользователем создается временный профиль


Я был близок к решению, но прошло уже три часа, пора было заканчивать танцы с бубном и решеть - то ли перестановка системы, то ли поиски в интернете.
Решил поискать ... ссылка на эту статью была первой :)

Рыба

Проблемы миграции виртуальных машин (HYPER-V) с 20019 на 2022 сервер

Добры день, коллеги

Начали мы обкатывать 2022 сервер. Первым делом, естественно, на стенде.

Установили на 2022 роль Hyper-V
Первым делом мачали мигрировать простенькую виртуалку.

[Описание проблемы и ее решение]Сперва попробовали работающую виртуалку - ошибка


[Текст ошибки]Невозможно переместить виртуальную машину на конечный компьютер.

Оборудование на конечном компьютере не соответствует требованиям этой виртуальной машины.

Сбой операции миграции виртуальной машины в исходном расположении миграции.



Выключили - то же самое.

Начали копать в гугло-яндексе, да и здесь. Решения нет.

Начал внимательно копать события на 2022 сервере. Нашлось вот такое

[Текст ошибки]Имя журнала: Microsoft-Windows-Hyper-V-VMS/Admin
Источник: Hyper-V-VMS
Код:33012
Уровень: Ошибка
Пользователь: СИСТЕМА
Код операции: Сведения

В описании проблемы:
Не удалось найти коммутатор Ethernet XXXXX


Остановили виртуалку, отключили сетевую карту.

Миграция пошла.

Переименовали виртуальный комутатор и на 2019 сервере, и на 2022 сервере, поставили одинаковые имена.

Биного, миграция пошла и на работающей виртуалке

Удачи, вам, коллеги в ловле багов великих и малых в системах M$


PS.
Попробовал написать эту статейку на MSDN - послали на хер просто и незамысловато"

The request is blocked.
01KCHYgAAAACaDOdJY+XbTrw4TWut82LJSEVMMDFFREdFMjAwOQA0ZjkwZmU2OS02MjdhLTQwZTEtYjA3My1lNGVhZDVkOGU2NTg=


Привет M$, чтоб вас...
Рыба

Ошибка 0x0000011b при установке сетевого принтера

Иногда, при попытке установить драйвера принтера с сервера печати возникает ошибка 0x0000011b. В зтом виновато обновление от 6 июля 2021 года KB5005565 Ошибка возникает, если сервер и клиент разных версий.

Решение На сервре печати в реестре правим

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
Создаем параметр DWORD (32bit) RpcAuthnLevelPrivacyEnabled со значением 0
Перезагружаем сервер

На клиенте запускаем от администратора

reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 1 /f
Перезагружаем

После этого, проблема решается.

PS

По крайней мере, получалось уже.
Рыба

Выгрузка контейнеров КриптоПро из реестра

Иногда приходится доставать данные из реестра убитого сервера и переносить их в реестр нового. Притом сделать это надо для какого-то пользователя. Сперва достаем из резервной копии файлы реестра. Основной реестр хранится в папке C:\Windows\System32\config, а персональные настройки в профиле пользователя в файле NTUSER.DAT

Основные файлы реестра -

BCD-Template
COMPONENTS
DEFAULT
SAM
SECURITY
SOFTWARE
SYSTEM

[Для тех, кто не испугался, сюда]
Выбираем нужный, в редакторе реестра выделяем нужный куст и выполняем “Файл – Загрузить куст…”. Находим необходимый файл реестра старого сервера и подключаем его к своему. Будет задан вопрос с каким именем подключить куст реестра - здесь можно ввести что угодно. Куст подключился как поддерево выбранного нами куска и с тем именем, которое мы ему выдали. Дальше можно выбирать любые данные из старого реестра и экспортировать их. Но тут может возникнуть ситуация, что до некоторых ветвей реестра невозможно добраться, даже администраторы. Придется запускать реестр от имени "СИСТЕМА" Для этого, скачиваем с Microsoft пакет sysinternals. Нам нужен пакет PsTools. Будем использовать утилиту psexec.exe.


PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

PsExec executes a program on a remote system, where remotely executed console
applications execute interactively.

Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-][-a n,n,...] cmd [arguments]
.................
-s Run the remote process in the System account.
.................


Если кратко, то мы можем запустить процесс от имени пользователя СИСТЕМА. Команда выглядит следующим образом (запускается с повышением прав) psexec -i -s regedit

Теперь мы можем добраться до любого ключа реестра и экспортировать их.

Посмотреть SID пользователя можно на домен контроллере. В PowerShell отдается команда get-aduser USERNAME | ft SamAccountName, SID

Для экспорта ключей Крипто Про, из старой установки Windows достаем файл C:\Windows\System32\config\SOFTWARE. Если мы подключили куст реестра из старого реестра под именем company, то ключи Крипто Про со старой системы будут по адресу \HKEY_LOCAL_MACHINE\company\WOW6432Node\Crypto Pro\Settings\Users\. После экспрта нужного контейнера в REG-файл, выгружаем подключенный куст. В полученном файле, меняем company на SYSTEM/ Добавление контейнера ключей производится от имени пользователя.

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

PS. Если ключи переносятся другому пользователю, то меняется и SID пользователя. Если идет перенос контейнера ключей не из свалившейся системы, а от одного пользователя другому, куст реестра подключать не надо, редактор реестра запускать от имени Системы. Ключи по адресу \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\. Меняется только SID

Контейнеры выгружать для каждого пользователя индивидуально! Импортировать от имени пользователея
Рыба

PowerShell. Замена строки во множестве файлов в каталоге и подкаталогах

PowerShell. Замена строки во множестве файлов в каталоге и подкаталогах


gci D:\UserData\ibases.v8i -recurse | ForEach {
(Get-Content -Encoding utf8 $_ | ForEach {$_ -replace 'DBS', 'SQL'}) | Set-Content -Encoding utf8 $_
}


Все вхождения строки DBS во всех файлах ibases.v8i в каталоге D:\UserData и всех подкаталогах заменятся на SQL
Рыба

Создаем периодическую структуру в файловой системе с тонкой раздачей прав доступа

Создаем периодическую структуру в файловой системе с тонкой раздачей прав доступа

Создаем общий ресурс Public. В одном из каталогов громадная структура однотипных папок с одинаковой внутренней структурой. На каждую подпапку в этой структуре надо установить индивидуальные права доступа. На каждую папку назначаются через группы доступа - "ТолькоЧтение", "ЧтениеЗапись" и "ЗапретДоступа". В результате, например, для раздачи на восемь подпапок одного элемента этой структуры нужно создать 25 групп доступа и выставить права на все папки. Если таких папок штук 30 ...

[Далее код на PowerShell]

У нас есть в задании создание большого количества папок с одной и той же структурой подпапок.
На каждую подпапку надо наложить права доступа Deny Read Write



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





#
# Создание подпапки и установка прав на нее
# Имена групп доступа создаются по принципу <имя родительского каталога>+" "+<Имя каталога>+" R|W|D" 
#

function Set-F {
 Param (  [PARAMETER(Mandatory=$True)][String]$Root_,  #  Имя родительского каталога
          [PARAMETER(Mandatory=$True)][String]$Fold    #  Имя доччернего каталога
        )
   mkdir $fold                                         #  Создаем каталог (если каталог существует, на экран выскочит сообщение об этом, но работе скрипта не помешает
   $__f = $fold
   $__f1 = "NetbiosDomainName\"+$Root_+" "+$fold+" D"  #  Собираем полное имя группы доступа

   $acl = Get-ACL "$__f"                               #  Считываем ACL таблицу
   $Rule=new-object System.Security.AccessControl.FileSystemAccessRule "$__f1","FullControl","ContainerInherit", "None","Deny"
                                                       #  Заполняем структуру таблицы ACL правами доступа для выбранной папки
   $acl.AddAccessRule($Rule)                           #  Добавляем нужные права на папку
   Set-Acl  "$__f" -AclObject $acl                     #  Применяем изменения
Write-output $__f1                                     #  Выводим имя обработанной папки


                                                       #  Повторяем для других групп доступа  
   $acl = Get-ACL "$__f"
   $__f1 = $userdomain+"MK\"+$Root_+" "+$fold+" R"
   $Rule1=new-object System.Security.AccessControl.FileSystemAccessRule "$__f1","Read","ContainerInherit", "None","Allow"
   $acl.AddAccessRule($Rule1)
   Set-Acl  "$__f" -AclObject $acl
Write-output $__f1
   
   $acl = Get-ACL "$__f"
   $__f1 = $userdomain+"MK\"+$Root_+" "+$fold+" W"
   $Rule2=new-object System.Security.AccessControl.FileSystemAccessRule "$__f1","Read,Write,Modify,ReadData,CreateFiles,Delete,ExecuteFile,DeleteSubdirectoriesAndFiles","ContainerInherit", "None","Allow"
   $acl.AddAccessRule($Rule2)
   Set-Acl  "$__f" -AclObject $acl
Write-output $__f1

}
#
#  Создание элемента периодической структуры
#



Function Set-All {
  Param ( [PARAMETER(Mandatory=$True)][String]$RootF )     #  Для какого элемента структуры создаем подкаталоги и раздаем права

    mkdir $RootF                                           #  Создаем этот каталог 
    cd $RootF                                              #  Делаем его текущим
write-output $RootF                                        #  Выводим информацию о том, с каким каталогом работаем
    $_f1 = "folder 1"                                      #  Описываем структуру подкаталогов
    $_f2 = "folder 2"
    $_f3 = "folder 3"                     
    $_f4 = "folder 4"                     
    $_f5 = "folder 5"                 
    $_f6 = "folder 6"                  
    $_f7 = "folder 7"                 
    $_f8 = "folder 8"

  Set-F -Root_ "$RootF" -Fold "$_f1"                       #  Создаем каталог и устанавливаем права
  Set-F -Root_ "$RootF" -Fold "$_f2"
  Set-F -Root_ "$RootF" -Fold "$_f3"
  Set-F -Root_ "$RootF" -Fold "$_f4"
  Set-F -Root_ "$RootF" -Fold "$_f5"
  Set-F -Root_ "$RootF" -Fold "$_f6"
  Set-F -Root_ "$RootF" -Fold "$_f7"
  Set-F -Root_ "$RootF" -Fold "$_f8"
     cd ..                                                 #  Возвращаемся в родительский каталог



}

$folder = "Элемент структуры 1"
Set-All -RootF "$folder"
$folder = "Элемент структуры 2"
Set-All -RootF "$folder"
#   Сколько нужно одинаковых структур
$folder = "Элемент структуры N"
Set-All -RootF "$folder"




Скрипт исполняется из каталога, внутри которого надо построить структуру

Рыба

Javascript error occurred in the main process skype как исправить

Заменяем файл %USERPROFILE%\AppData\Roaming\Microsoft\Skype for Desktop\Skype-Setup.exe пустым файлом. Устанавливаем на него права запрета запрет на все операции кроме смены разрешений. Эти права устанавливаем на всех пользователей, перечисленных в списке прав досупа.

Ставим старую версию SKYPE (https://skypeapp.ru/stary-e-versii-skype/)

Теперь скайп не сможет автообновиться.
Рыба

Обновление BIOS серверов IBM X Series

Досталась мне тут в работу группа серверов IBM X3550
Прошивки старые, 13 года. Надо обновлять.
Лезу, как умная Маша на IBM
Ищу прошивки.
Находится IBM Bootable Media Creator (BoMC)
УРААА... нет ХРЕН!!!!
из под 2019 сервера не устанавливает, из 2012 не устанавливает, из под 2008, вообще не находит железа IBM
Притом говорит, что нет необходимости обновлять что-либо.
Ладно, мы не гордые.
Нахожу следующую ...
Эта большая, под 300 мегов зипа .....
Раскрываю, внутри полный апач и скрипты апдейта, плюс кусок сервака IBM
ААААААААААААА
Результат тот же
И вот "Lenovo XClarity Essentials Bootable Media Creator (For Windows)"

ОНО.
Тулза создает образ диска или сразу пишет загрузочную флешку, интегрирует туда пакеты обновления и всё.
Загружаюсь с этого диска, и чудо! всё прошивается