Меня зовут Михаил. Живу в Питере, работаю обычным сисадмином. Кроме работы, увлекаюсь всем подряд, от походов, до написания мелких рассказиков. Журнал, хоть и называется "Заметки админа", здесь можно найти всё, и юмор, и мои рассказики, и техническую информацию по работе. Если что кому интересно, задавайте вопросы тут, если смогу, отвечу. И о правилах журнала. В журнале присутствует ненормативная лексика, я не сдерживаюсь, да и других не сдерживаю, так, что, если вам это не по душе, то ... ну сами понимаете. Общаться я предпочитаю на "ты", всякие "выканья" меня вводят в ступор. Если этими краткими словами я не отвратил тебя от прочтения этого журнала, милости просим. О политике френдов Да, во френдомарафонах не участвую, френжу только тех, чей журнал мне понравится по содержанию и по духу. Если кому нужны именно взаимные френды - это не ко мне. Если хочешь обратить мое внимание на свой журнал, оставь ссылочку, я посмотрю, но гарантии, что зафренжу, нет.
Частенько меня спрашивают: "Как ты так быстро всё ищешь в интернете?" Не понимаю, почему кто-то считает, что я быстро ищу. Это же элементарно. Посмотрим как это будет. Давайте попробуем найти с помощью разных поисковых систем одно и то же. Например описание тизерной рекламной компаннии Camel.…
Задача - контролировать работу 1С сервера. В случае нештатной работы службы 1С скрвера, выдать тревогу через Zabbix, учитывая, что надо контролировать большое количество серверов.
Не буду описывать Zabbix, надеюсь спецы знают. Для других поясно. Это сервис контроля за состоянием разнообразных параметров серверов, сетевого оборудования, обычных компьютеров. Система бесплатная и используется во многих организациях. В случае обнаружения определенных условий, она умеет отправить сообщение администратору с описанием проблемы. Те, кому не нужно, под спойлер.
Создаем в заббиксе новый шаблон 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. Идем на https://store.rg-adguard.net/ Берем ссылку и используем ее в этой услуге. Получаем кучу ссылок, выбираем нужную.
Ссылки идут на "appxbundle" и "BlockMap" пакеты в windows 10 проблем не должно быть.
Но можно установить тот-же 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.
Иду в папку C:\Windows\SYSVOL\domain\Policies, на контроллере домена, там хранятся папки с политиками. Папка политики называется именно так, как мы выяснили чуть выше.
На тытрубе уже достала реклама скилбокса и no-code.
Блин, кто назвал старую технологию WYSIWYG как no-code? Это еще в конце 90-х было создано, правда, уметь програмить надо было в этой технологии всегда, как без этого описать действия при нажатии на элемент управления форм? Короче, очередной обман, берут бабло с лохов за обучение древней технологии.
[Немного моих размышлений о технологии.]Суть метода в том, что с помощью визуальных редакторов создать сайт или приложение, создать все формы, расставить все элементы управления, задать дерево переходов с формы на форму. Лоя сайта это хорошо, если не надо запрашивать данных, сразу можно получить готовый сайт, не зная ничего о кодировании. Но, как только появляется обмен данными с пользователем или ли какие запросы в базы данных, или какая-то обработка данных, вот тут очень нужно уметь программировать и знать теорию, да и практику нужно иметь, знать современные библиотеки программирования (.NET или какие еще), знать языки программирования, языки запросов к базам данных.
И все это нужно для создания достаточно несложных интерактивных сайтов или любой программы на классическом языке.
По идее, почти все современные оболочки разработки работают с применением этой технологии, зачем тратить время программиста на отдельное редактирование форм и кода, когда можно объединить? Сначала создается макет приложения, а потом, после утверждения, наполняется кодом.
Разделы:
Main
Карманные компьютеры
Файлы
Сотовые телефоны
Файлы
Навигация, карты
Программы
ОС, мобильные ОС
Windows
WSH скрипты
Linux
Команды
Android
Web
SEO
Templates
CMS
DLE
Скрипты
css
Хак, безопасность
Железо
Авто
Видео
Книги
Программы для e-book
Фантастика
Рецензии
Бумажные штуки
Фотоальбом
Юмор
Рецепты
И везде есть что-то полезное.
Есть скрипты для операционок, есть статьи с решением некоторых проблем. В общем много чего есть. Итак:
Отдельное спасибо скажу автору этого сайта вот за эту статейку
Я был близок к решению, но прошло уже три часа, пора было заканчивать танцы с бубном и решеть - то ли перестановка системы, то ли поиски в интернете. Решил поискать ... ссылка на эту статью была первой :)
[Текст ошибки]Невозможно переместить виртуальную машину на конечный компьютер.
Оборудование на конечном компьютере не соответствует требованиям этой виртуальной машины.
Сбой операции миграции виртуальной машины в исходном расположении миграции.
Выключили - то же самое.
Начали копать в гугло-яндексе, да и здесь. Решения нет.
Начал внимательно копать события на 2022 сервере. Нашлось вот такое [Текст ошибки]Имя журнала: Microsoft-Windows-Hyper-V-VMS/Admin Источник: Hyper-V-VMS Код:33012 Уровень: Ошибка Пользователь: СИСТЕМА Код операции: Сведения
В описании проблемы: Не удалось найти коммутатор Ethernet XXXXX
Остановили виртуалку, отключили сетевую карту.
Миграция пошла.
Переименовали виртуальный комутатор и на 2019 сервере, и на 2022 сервере, поставили одинаковые имена.
Биного, миграция пошла и на работающей виртуалке
Удачи, вам, коллеги в ловле багов великих и малых в системах M$
PS. Попробовал написать эту статейку на MSDN - послали на хер просто и незамысловато"
The request is blocked. 01KCHYgAAAACaDOdJY+XbTrw4TWut82LJSEVMMDFFREdFMjAwOQA0ZjkwZmU2OS02MjdhLTQwZTEtYjA3My1lNGVhZDVkOGU2NTg=
Иногда, при попытке установить драйвера принтера с сервера печати возникает ошибка 0x0000011b. В зтом виновато обновление от 6 июля 2021 года KB5005565 Ошибка возникает, если сервер и клиент разных версий.
Иногда приходится доставать данные из реестра убитого сервера и переносить их в реестр нового. Притом сделать это надо для какого-то пользователя. Сперва достаем из резервной копии файлы реестра. Основной реестр хранится в папке C:\Windows\System32\config, а персональные настройки в профиле пользователя в файле NTUSER.DAT
Основные файлы реестра -
BCD-Template COMPONENTS DEFAULT SAM SECURITY SOFTWARE SYSTEM
[Для тех, кто не испугался, сюда] Выбираем нужный, в редакторе реестра выделяем нужный куст и выполняем “Файл – Загрузить куст…”. Находим необходимый файл реестра старого сервера и подключаем его к своему. Будет задан вопрос с каким именем подключить куст реестра - здесь можно ввести что угодно. Куст подключился как поддерево выбранного нами куска и с тем именем, которое мы ему выдали. Дальше можно выбирать любые данные из старого реестра и экспортировать их. Но тут может возникнуть ситуация, что до некоторых ветвей реестра невозможно добраться, даже администраторы. Придется запускать реестр от имени "СИСТЕМА" Для этого, скачиваем с Microsoft пакет sysinternals. Нам нужен пакет PsTools. Будем использовать утилиту psexec.exe.
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
Контейнеры выгружать для каждого пользователя индивидуально! Импортировать от имени пользователея
Создаем периодическую структуру в файловой системе с тонкой раздачей прав доступа
Создаем общий ресурс Public. В одном из каталогов громадная структура однотипных папок с одинаковой внутренней структурой. На каждую подпапку в этой структуре надо установить индивидуальные права доступа. На каждую папку назначаются через группы доступа - "ТолькоЧтение", "ЧтениеЗапись" и "ЗапретДоступа". В результате, например, для раздачи на восемь подпапок одного элемента этой структуры нужно создать 25 групп доступа и выставить права на все папки. Если таких папок штук 30 ...
У нас есть в задании создание большого количества папок с одной и той же структурой подпапок. На каждую подпапку надо наложить права доступа 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"
Скрипт исполняется из каталога, внутри которого надо построить структуру
Заменяем файл %USERPROFILE%\AppData\Roaming\Microsoft\Skype for Desktop\Skype-Setup.exe пустым файлом. Устанавливаем на него права запрета запрет на все операции кроме смены разрешений. Эти права устанавливаем на всех пользователей, перечисленных в списке прав досупа.
Досталась мне тут в работу группа серверов IBM X3550 Прошивки старые, 13 года. Надо обновлять. Лезу, как умная Маша на IBM Ищу прошивки. Находится IBM Bootable Media Creator (BoMC) УРААА... нет ХРЕН!!!! из под 2019 сервера не устанавливает, из 2012 не устанавливает, из под 2008, вообще не находит железа IBM Притом говорит, что нет необходимости обновлять что-либо. Ладно, мы не гордые. Нахожу следующую ... Эта большая, под 300 мегов зипа ..... Раскрываю, внутри полный апач и скрипты апдейта, плюс кусок сервака IBM ААААААААААААА Результат тот же И вот "Lenovo XClarity Essentials Bootable Media Creator (For Windows)"
ОНО. Тулза создает образ диска или сразу пишет загрузочную флешку, интегрирует туда пакеты обновления и всё. Загружаюсь с этого диска, и чудо! всё прошивается