Сообщество - Лига Сисадминов

Лига Сисадминов

2 349 постов 18 850 подписчиков

Популярные теги в сообществе:

9
Вопрос из ленты «Эксперты»

Погорел порт LAN на сетевом хранилище

В наличии сетевое хранилище D-Link DNS-323, старый добрый NAS.

Так случилось, что подгорел на нем сетевой порт LAN. Коротким патч-кордом к роутеру цепляется на 100Мбит, длинным не хочет цепляться никак, иногда на несколько секунд появляется 100Мбитный линк и отваливается. Раньше на длинном кабеле нормально держал гигабит.

На нем есть порт USB, который на сайте производителя описан как "USB Порт встроенного принт-сервера, для подключения принтера".

Можно ли в этот USB воткнуть внешнюю сетевую карту? Ну то есть понятно, что воткнуть можно, но будет ли она работать, при условии что найдутся соответствующие драйвера для этого старого линукса?

11

Microsoft окончательно прощается с PowerShell 2.0 в Windows

Корпорация Microsoft объявила о полном удалении устаревшего компонента Windows PowerShell 2.0 из операционных систем Windows 11 и Windows Server 2025, начиная с августа 2025 года. Этот шаг является частью глобальной стратегии по повышению безопасности, упрощению экосистемы PowerShell и избавлению от устаревшего кода.

Windows PowerShell 2.0, впервые представленный в Windows 7, был официально признан устаревшим еще в 2017 году, однако оставался доступным в качестве дополнительного компонента для обеспечения обратной совместимости. Теперь Microsoft делает решительный шаг, полностью исключая его из будущих релизов.

Хронология изменений

Процесс удаления будет проходить поэтапно:

  • Июль 2025 года: PowerShell 2.0 уже удален из предварительных сборок Windows Insider.

  • Август 2025 года: Компонент будет удален из Windows 11, версия 24H2.

  • Сентябрь 2025 года: PowerShell 2.0 будет исключен из Windows Server 2025.

Все последующие выпуски этих операционных систем будут поставляться без PowerShell 2.0.

Почему PowerShell 2.0 уходит в прошлое?

Основная причина удаления — соображения безопасности. В PowerShell 2.0 отсутствуют ключевые функции защиты, появившиеся в более поздних версиях, такие как:

  • Интеграция с интерфейсом для проверки на вредоносное ПО (AMSI).

  • Расширенное логирование блоков скриптов.

  • Режим ограниченного языка (Constrained Language Mode).

Эти упущения делали PowerShell 2.0 привлекательной целью для злоумышленников, которые могли использовать его для обхода современных систем защиты. Кроме того, удаление устаревшего компонента позволит Microsoft сократить сложность кодовой базы и упростить поддержку экосистемы PowerShell.

Что это значит для пользователей и администраторов?

Для большинства пользователей это изменение пройдет незамеченным, поскольку современные версии PowerShell, такие как PowerShell 5.1 и PowerShell 7.x, остаются доступными и полностью поддерживаются. Однако организациям и разработчикам, использующим устаревшие скрипты или программное обеспечение, которые явно зависят от PowerShell 2.0, необходимо принять меры.

Рекомендации по переходу

Microsoft настоятельно рекомендует:

  • Мигрировать скрипты и инструменты на более новые версии PowerShell. PowerShell 5.1 обеспечивает высокую обратную совместимость практически со всеми командами и модулями. PowerShell 7.x предлагает кроссплатформенность и множество современных функций.

  • Обновить или заменить устаревшее программное обеспечение. Если старое приложение или установщик требуют PowerShell 2.0, необходимо найти более новую версию продукта. Это касается и некоторых серверных продуктов Microsoft (Exchange, SharePoint, SQL), для которых существуют обновленные версии, работающие с современным PowerShell.

Затронутые версии Windows

Удаление PowerShell 2.0 коснется следующих версий операционных систем:

  • Windows 11 (Home, Pro, Enterprise, Education, SE, Multi-Session, IoT Enterprise) версия 24H2.

  • Windows Server 2025.

Более ранние версии Windows 11, такие как 23H2, по-видимому, сохранят PowerShell 2.0 в качестве опционального компонента.

Этот шаг Microsoft знаменует собой конец целой эпохи в администрировании Windows, подчеркивая приверженность компании к более безопасной и современной вычислительной среде.

Релизы PS 7


Мой цикл статей о технологии PowerShell:
Философия PowerShell.

Показать полностью
0

Термоинтерфейс на Gigabyte RTX 3060 WINDFORCE OC 12 Gb

Всем привет! Надеюсь размещаю пост в нужном сообществе) Нужны размеры термопрокладок на видеокарту из заголовка. Буду признателен за подсказку.

17

Философия PowerShell. Часть 4. Интерактивная работа: Out-ConsoleGridView

  • В первой части мы определили два ключевых понятия powershell: конвейер и объект.

  • Во второй части я рассказал как объекты взаимодействуют через переменные и конвейер.

  • В третьей части познакомились с файловой системой и провайдерами.

  • Сегодня рассмотрим интерактивную работу с данными в консоли.

Дисклеймер. На пикабу нет редактора кода, поэтому картинки и кривое форматирование. В конце поста я размещу ссылки на статью и исходники в github. Приятного чтения.

Out-ConsoleGridView. GUI в консоли PowerShell.

❗ Важно: Все описываемые ниже инструменты требуют PowerShell 7.2 или новее.

Out-ConsoleGridView — это интерактивная таблица, прямо в консоли PowerShell, позволяющая:

  • просматривать данные в виде таблицы;

  • фильтровать и сортировать колонки;

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

  • и многое другое.

Out-ConsoleGridView является частью модуля Microsoft.PowerShell.ConsoleGuiTools. Для его использования сначала нужно установить этот модуль.

Для установки модуля выполните следующую команду в PowerShell:

Install-Module Microsoft.PowerShell.ConsoleGuiTools -Scope CurrentUser

Install-Module загружает и устанавливает указанный модуль из репозитория в систему. Аналоги: pip install в Python и npm install в Node.js.

📎 Ключевые параметры Install-Module


Ключевые параметры Install-Module

Ключевые параметры Install-Module

После установки вы можете передавать любой вывод в Out-ConsoleGridView для интерактивной работы.

# Классческий пример: вывод списка процессов в интерактивную таблицу:
> Get-Process | Out-ConsoleGridView

Интерфейс:

  • Фильтрация: Просто начните вводить текст, и список будет отфильтрован на лету.

  • Навигация: Используйте клавиши-стрелки для перемещения по списку.

  • Выбор: Нажмите Space для выбора/снятия выделения с одного элемента.

  • Множественный выбор: Ctrl+A для выбора всех элементов, Ctrl+D для снятия всего выделения.

  • Подтверждение: Нажмите Enter, чтобы вернуть выбранные объекты.

  • Отмена: Нажмите ESC, чтобы закрыть окно без возврата данных.

Что умеет Out-ConsoleGridView:

  • Отображать табличные данные прямо в консоли в виде интерактивной таблицы с навигацией по строкам и столбцам.

  • Сортировать столбцы по нажатию клавиш.

  • Фильтровать данные с помощью поиска.

  • Выбирать одну или несколько строк с возвратом результата.

  • Работать в чистой консоли без GUI-окон.

  • Поддерживать большое количество строк с прокруткой.

  • Поддерживать различные типы данных (строки, числа, даты и пр.).


Примеры использования Out-ConsoleGridView

Базовое использование — показать таблицу с возможностью интерактивного выбора. (checkbox)

Select process(es)

Select process(es)

Выводится список процессов в интерактивной консольной таблице. Можно фильтровать по имени, сортировать столбцы и выбирать процессы. Выбранные процессы возвращаются в переменную $selected.


Выбор одной строки с обязательным возвратом результата. (radio)

$choice = Get-Service | Select-Object -First 20 | Out-ConsoleGridView -Title "Select a service" -OutputMode Single Write-Host "You selected service: $($choice.Name)"

Пользователь выбирает одну строку. -OutputMode Single запрещает выбирать несколько.


Интерактивное управление процессами:

Вы можете выбрать несколько процессов для остановки. Параметр -OutputMode Multiple указывает, что мы хотим вернуть все выбранные элементы.

Интерактивное управление процессами

Интерактивное управление процессами

Выбор файлов для архивации:

Выбор файлов для архивации

Выбор файлов для архивации

Выбор одного элемента для детального анализа:

Паттерн "Drill-Down" — от общего списка к деталям с Out-ConsoleGridView

Часто при работе с системными объектами мы сталкиваемся с дилеммой:

  1. Если запросить все свойства для всех объектов (Get-NetAdapter | Format-List *), вывод будет огромным и нечитаемым.

  2. Если показать краткую таблицу, мы потеряем важные детали.

  3. Иногда попытка получить все данные сразу может привести к ошибке, если один из объектов содержит некорректные значения.

Решение этой проблемы — паттерн "Drill-Down" (детализация). Его суть проста:

  • Шаг 1 (Обзор): Показать чистый, краткий и безопасный список элементов для выбора.

  • Шаг 2 (Детализация): После того как пользователь выбрал один конкретный элемент, показать ему всю доступную информацию именно по этому элементу.

Практический пример: Создание обозревателя сетевых адаптеров

Задача: Сначала показать краткий список сетевых адаптеров. После выбора одного из них, открыть второе окно со всеми его свойствами.

Готовый код:

Создание обозревателя сетевых адаптеров

Создание обозревателя сетевых адаптеров


Информация о системе.

код скрипта для получения информации о системе: Get-SystemMonitor.ps1

Создание командлета 'Get-SystemMonitor'

Шаг 1: Настройка переменной PATH

  1. Создайте постоянную папку для ваших инструментов, если еще не сделали этого. Например: C:\PowerShell\Scripts

  2. Поместите ваш файл Get-SystemMonitor.ps1 в эту папку.

  3. Добавьте эту папку в системную переменную PATH,

Шаг 2: Настройка псевдонима (alias) в профиле PowerShell

  1. Откройте ваш файл профиля PowerShell:

    notepad $PROFILE

  2. Добавьте в него следующую строку:

    Set-Alias -Name sysmon -Value "Get-SystemMonitor.ps1"
    где sysmon - псевдоним командлета Get-SystemMonitor

    Если вы когда-нибудь переместите папку C:\PowerShell\Scripts, вам нужно будет обновить только переменную PATH, а ваш файл профиля останется без изменений.

Перезапустите PowerShell

Закройте все открытые окна PowerShell и откройте новое. Это необходимо, чтобы система применила изменения как в переменной PATH, так и в вашем профиле.

Код скрипта для установки C:\PowerShell\Scripts в PATH: Add-Path.ps1

Запуск:
Get-SystemMonitor
или конкретный ресурс:
Get-SystemMonitor -Resource users
Реализованы cpu, memory, system, network, users, peripherals

🤝 Поздравляю. Вы создали первый командлет.

Пост на github

Полезно? Подпишись.
Понравилось — ставь «+»
Задавайте вопросы в комментариях 👇👇👇
Удачи! 🚀

Серия постов о PowerShell

UPD:

Практические примеры использования:
Серия «Философия PowerShell». Практические примеры использования Out-ConsoleGridView

Серия «Философия PowerShell». Полное руководство по ExifTool и PowerShell (Out-ConsoleGridView)

А давайте встроим ии в powershell

Показать полностью 5 7
19

Переход на Proxmox (Proxmox GmbH, Vienna, Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть пятая из многих

Для лиги лени: общеизвестное, душное, НЕ ПРОКАТИЛО.

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS
Часть 4. Наконец переходим к Proxmox
Часть 5, не запланированная. Обновляем Proxmox с 8.4 до 9.0. Неудачно.

Еще раз поздравляю всех с выходом Proxmox 9.0. Даже статья вышла – ждите сервис пака Upgrade from 8 to 9, читайте Known Issues & Breaking Changes и Known Upgrade Issues.

Скажу сразу.
Я доигрался, пришлось переставлять систему.
5.2 Гб до неправильного обновления и всяких непотребных игр превратились в 8.1 Гб.
Дельта обновления еще 5.3 Гб.
На выходе:
pve-manager/9.0.3/025864202ebb6109 (running kernel: 6.14.8-2-pve)

Что в наличии?

Было: pveversion: pve-manager/8.4.0/ec58e45e1bcdf2ac (running kernel: 6.8.12-9-pve)
стало: pve-manager/8.4.9/649acf70aab54798 (running kernel: 6.8.12-9-pve)
и, после удачного обновления, pve-manager/9.0.3/025864202ebb6109 (running kernel: 6.14.8-2-pve)

Он сказал поехали (и запил водой)
Выполняем по инструкции: pve8to9. Кстати, в pve-manager/8.4.0/ этого скрипта не было.
Получаем:
= SUMMARY =
TOTAL:  42
PASSED:  33
SKIPPED:  6
WARNINGS: 3
FAILURES: 0

Что там?
WARN: updates for the following packages are available: pve-cluster

Что я могу сказать, кроме того что удивительное рядом?
apt update
apt list --upgradable –a
pve-cluster/stable 8.1.2 amd64 [upgradable from: 8.1.0]
pve-cluster/stable,now 8.1.0 amd64 [installed,upgradable to: 8.1.2]

Что происходит, и почему вчера не обновился pve cluster, при отсутствии кластера?

Примечание. После того, как я уронил систему, переставил с ноля, и обновился еще раз, проблема ушла, обновился и стал предлагать обновиться:
pve-cluster/stable 9.0.6 amd64 [upgradable from: 8.1.2]

Следующее предупреждение: WARN: systemd-boot meta-package installed but the system does not seem to use it for booting. This can cause problems on upgrades of other boot-related packages . Consider removing 'systemd-boot'
Сомнительно, но окей.

Третье предупреждение: WARN: The matching CPU microcode package 'amd64-microcode' could not be found! Consider installing it to receive the latest security and bug fixes for your CPU.

и не предупреждение, а напоминание:
SKIP: NOTE: Expensive checks, like CT cgroupv2 compat, not performed  without '-- full' parameter

А ?? Почему свежий инсталлятор PVE сам не поставил amd64-microcode, если считает их необходимым?

Понятно, что статья:
New AMD Zen 6 Linux Patches Posted - Confirming Up To 16 Memory Channels со ссылкой на вчерашний патч вышла не просто так, но все же.
Примечание. Это не связанные вещи. Обновление вышло для ядра для 2.5 новых фич.

Что там дальше по инструкции?
меняем репозитории  локально
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
и, поскольку у меня сделан Nexus для проксирования репозиториев, не забываем добавить там новые данные
В инструкции, конечно, про это ни слова.

Дальше все по инструкции - apt update, получаем (со второй попытки) 581 packages can be upgraded.
apt list --upgradable | grep 8.4
получаем (со второй попытки(
proxmox-ve/stable 9.0.0 all [upgradable from: 8.4.0]
pve-manager/stable 9.0.3 all [upgradable from: 8.4.9]
qemu-server/stable 9.0.16 amd64 [upgradable from: 8.4.1]

Вот что странно. Я Ceph не использую, не люблю, и репозиторий с ним отключил.
но не тут то было – и в инструкции написано, что
Note: At this point a hyper-converged Ceph cluster installed directly in Proxmox VE must run Ceph 19.2 Squid, otherwise you need to upgrade Ceph first before upgrading to Proxmox VE 9 on Debian 13 Trixie!

Но в выборке apt list --upgradable | grep ceph есть
ceph-common/stable 19.2.3-pve1 amd64 [upgradable from: 17.2.8-pve2]
ceph-fuse/stable 19.2.3-pve1 amd64 [upgradable from: 17.2.8-pve2]
Пропустим и идем дальше:
apt dist-upgrade
The following NEW packages will be installed:
proxmox-kernel-6.14
proxmox-kernel-6.14.8-2-pve-signed
After this operation, 637 MB of additional disk space will be used.

За пять минут первая попытка обновления свалилось в ошибки:
Job for pvedaemon.service failed.
See "systemctl status pvedaemon.service" and "journalctl -xeu pvedaemon.service" for details.

Job for pvestatd.service failed.
See "systemctl status pvestatd.service" and "journalctl -xeu pvestatd.service" for details.

Job for pveproxy.service failed.
See "systemctl status pveproxy.service" and "journalctl -xeu pveproxy.service" for details.

Job for pvescheduler.service failed.
See "systemctl status pvescheduler.service" and "journalctl -xeu pvescheduler.service" for details.

Пустая, неделю назад установленная, ничем не нагруженная нода не может обновиться на ровном месте.
НУ ОТЛИЧНО.
В журналах:
proxmox pvedaemon[]: Compilation failed in require at /usr/share/perl5/PVE/API2/Cluster.pm line 14.

Сказать, что я ничего не понял в первые пару минут, это ничего не сказать.

Ребутнулся, и удивился еще больше.
Было pve-manager/8.4.9/() (running kernel: 6.8.12-9-pve)
Стало pve-manager/8.4.9/() (running kernel: 6.14.8-2-pve)

Ядро обновилось. PVE нет.
pve8to9 выдало ошибки:
Attempt to reload PVE/HA/Config.pm aborted.
Compilation failed in require at /usr/share/perl5/PVE/HA/Env/PVE2.pm line 20.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/HA/Env/PVE2.pm line 20.
Compilation failed in require at /usr/share/perl5/PVE/API2/LXC/Status.pm line 24.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/API2/LXC/Status.pm line 29.
Compilation failed in require at /usr/share/perl5/PVE/API2/LXC.pm line 28.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/API2/LXC.pm line 28.
Compilation failed in require at /usr/share/perl5/PVE/CLI/pve8to9.pm line 10.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/CLI/pve8to9.pm line 10.
Compilation failed in require at /usr/bin/pve8to9 line 6.
BEGIN failed--compilation aborted at /usr/bin/pve8to9 line 6.

В моем случае проще все переставить и повторить процедуру, чем разбираться, что пошло не так.

Почему так?

Может потому, что я прописал только:
deb http://my.local.proxy:8081/repository/Debian3/ trixie pve-no-subscription

Но не прописал Nexus прокси для:
trixie main contrib
trixie-updates main contrib
trixie-security main contrib

Следите за тем, что у вас в проксях и в /etc/apt/sources.list
Вопрос «зачем так сделано» остается открыт. Странный подход, что обновления не идут из одного источника, и есть риск получить проблем с зависимостями, когда Debian обновится, а Proxmox еще нет.

Итого

Доигрался я на скрипке. Необходимо переставить 8.4 еще раз, проверить настройки в /etc/apt/sources.list , перепроверить Nexus, и сделать обновление еще раз.

Потому что по умолчанию в /etc/apt/sources.list стоит то, что выбрано при установке. Я выбрал US – получил
deb http://ftp.us.debian.org/debian bookworm main contrib
deb http://ftp.us.debian.org/debian bookworm-updates main contrib
# security updates
deb http://security.debian.org bookworm-security main contrib

Вторая попытка обновления прошла удачно.
Очень неприятно то, что в процедуре обновления есть несколько пунктов для выполнения вручную.
Это чтение какой-то длинной страницы, выбор языка два раза, и напоследок вопросы «мы тут сервисы обновляем, вам их сразу перезагрузить или не сразу».

Само обновление после этих вопросов занимает где-то полчаса, и в середине процесса, где то на 98%, спрашивает еще пару вопросов про настройки, новые вы хотите или старые.

Что дальше писать, я еще не решил.
Или про Proxmox VE API , или воспользоваться полезным советом из комментариев и обновить Ansible нормально.

@editors, как сюда тег Proxmox добавить? не идет у меня этот каменный цветок.

Показать полностью
Отличная работа, все прочитано!