Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Битва Героев: RPG - увлекательная игра в жанре РПГ.

Битва Героев: RPG

Приключения, Фэнтези

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
1
user11139897
5 часов назад

Новый аккаунт хвох под блокировкой⁠⁠

Всем здравствуйте, впервой пишу на этом сайте, у меня есть вопрос, кто нибудь знает как сделать новый акк в хвох чтобы он не слетел через пару часов, поскольку уже достаточно давно сам хвох начал все аккаунты блокировать на территории рф, у меня есть основа которая живет уже 3-4 года, и с ней ваще все хорошо, а вот как хочу сделать твинк для форзы и Майнкрафта, уже через время прилетает блокировка. Кто знает что можно сделать?

[моё] Xbox Minecraft Forza Horizon Аккаунт Блокировка Microsoft Текст
8
Mr.Rad
Mr.Rad
17 часов назад

Время вкусить яблоко⁠⁠

1/15

Apple "Awe Dropping" Event: Главные анонсы! 9 сентября 2025 года Apple провела ежегодную презентацию в Apple Park, где представили линейку iPhone 17, новые Apple Watch, AirPods и обновления ПО. Фокус на тонком дизайне, ИИ (Apple Intelligence) .

📱 iPhone 17 (базовая модель)

  • Дизайн и дисплей: Больший 6.3-дюймовый OLED-экран с тонкими рамками, частотой обновления 120 Гц (ProMotion), пиковой яркостью 3000 нит и always-on режимом. Новый Ceramic Shield 2 — в 3 раза устойчивее к царапинам. Корпус из 30% переработанных материалов, цвета: синий, оранжевый и другие.

  • Процессор и производительность: Чип A19 (3 нм), 6-ядерный CPU + 5-ядерный GPU, улучшенный Neural Engine для ИИ-задач. До 40% быстрее iPhone 16.

  • Камеры: 48 МП основная (Dual Fusion) + 48 МП ультраширокоугольная, 24 МП фронтальная с Center Stage (расширенный угол обзора, умное кадрирование). 2x оптический зум на телеобъективе, стабилизация видео, ProRes RAW.

  • Батарея и зарядка: Более 3600 мАч, целый день работы (до 8 часов видео дольше, чем в iPhone 16), быстрая зарядка (50% за 20 мин).

  • Другие фичи: Action Button, Camera Control, iOS 26 с Liquid Glass UI, поддержка Apple Intelligence (переводы в реальном времени, улучшенный Siri). Цена от $799.

    📱 iPhone 17 Air (новинка — ультратонкий!)

    • Дизайн: Толщина всего 5.5 мм, алюминиевый корпус с половиной стекла сзади, горизонтальная камера. Самый тонкий iPhone ever!

    • Фичи: Аналогичные базовому iPhone 17, но с акцентом на портативность. Камера 48 МП, A19 чип, новые аксессуары (MagSafe-батарея, чехлы).

      📱 iPhone 17 Pro / Pro Max

      • Дизайн: Возврат к алюминию (вместо титана), антибликовое покрытие, цвета: Cosmic Orange, Deep Blue, Silver. Задняя панель — Ceramic Shield вместо стекла.

      • Процессор: A19 Pro (6-ядерный CPU/GPU), больший кэш, до 40% быстрее предшественника.

      • Камеры: Все 48 МП (Fusion Telephoto с 8x зумом), 18 МП фронтальная с шире FOV. Лучше в низком освещении (+56% сенсор). Видео: Genlock для про-workflow.

      • Батарея: Рекорд — 39 часов видео.

        ⌚ Apple Watch Series 11 / Ultra 3 / SE 3

    • Ultra 3 — спутниковая связь, увеличенный экран, 5G

    • Series 11 — новый чип S11, улучшенная автономность

    • SE 3 — доступная модель с новыми функциями

🎧 AirPods Pro 3

  • Улучшенное шумоподавление

  • Отслеживание пульса и температуры

  • Live Translation прямо в наушниках

🌐 iOS 26 и Liquid Glass

  • Новый визуальный стиль: прозрачность, глубина, анимации

  • Обновлённые приложения: Телефон, Сообщения, Фото

  • Поддержка Visual Intelligence и Live Translation

Показать полностью 15
Смартфон Компьютерное железо iPhone Apple iOS Android Технологии AirPods Презентация Стив Джобс Windows Microsoft
13
7
DmitriitheFals
1 день назад
Лига Сисадминов
Серия Кудахтеры: powershell

Вспоминаем Powershell в нескольких частях. Часть 4. Параллельное исполнение: Powershell jobs⁠⁠

Для ЛЛ: серия пометок по костылям

Конечная цель серии постов: написать свой очень маленький и очень кривой WSUS, поскольку развития WSUS больше не предвидится, но я про это писал
Часть 1. База из баз. Теория
Часть 1.1 Зачем ставить обновления на Linux и Windows и куда угодно, если в отделе работают проверенные электроником сотрудники, и все работает?
Часть 1.2 Чем плох WSUS, SCOM, прочее ПО, и факты в Ansible?
Часть 1.3 Почему Powershell, а не Python?
Часть 1.4 Прочие базовые вещи
Часть 1.5 Классы и объекты, для тех, кто пропускал школу
Часть 1.6 К теме обновлений в Windows
Часть 1.7 Как это все хранить и обрабатывать?
Часть 1.8 Давайте начинать. Мой первый класс
Часть 1.9 Немного магии, не очевидной с первого раза
Часть 1.10 Мой первый массив
Часть 1.11 Суй массив в файл. И забирай из файла
Часть 1.12 Теперь все вместе

Часть 2. Windows update
Часть 2.1 Служба обновлений и ее журнал
Часть 2.2 Настраиваем удаленный доступ
Часть 2.3 Ловим исключения
Часть 2.4 Проблема слишком больших прав
Часть 2.5 Разрешение удаленного подключения
Часть 2.6 Параллельная обработка задач, -parallel,  powershell jobs, Runspaces
Часть 2.7 И, наконец, получим первый список
Часть 2.8 Итого

Часть 3. Обрабатываем, что получилось
Часть 3.1 Немного про общую логику
Часть 3.2 В предыдущих сериях
Часть 3.3 Обновление списка обновлений
Часть 3.4 Обрабатываем оба списка сразу – список обновлений и список с сервера
Часть 3.5 Осталось только выгрузить в Excel
Часть 3.6 Отладка и наладка
Часть 3.7 Альтернативы?


Часть 4. Параллельное исполнение: Powershell jobs
Часть 4.1 Почему Powershell jobs
Часть 4.2 Руководство
Часть 4.3 Переходим к примерам Powershell jobs
Часть 4.4 Переходим к практике Powershell jobs

Часть 4. Параллельное исполнение: Powershell jobs

Часть 4.1 Почему Powershell jobs

У Powershell есть несколько вариантов параллельного исполнения кода.
Первый и наиболее известный, это Foreach-Parallel
Второй - Start-Job и Start-ThreadJob

В чем минус Job ? Это параллельное исполнение скрипта, из результатов которого еще и надо задачу получить. Плюс, точнее минус, этому процессу сложно отдавать какой-то объект для исполнения, у него непривычная схема того, что ему можно отдать на вход. То, что в руководстве описано как «Example 10: Use the ArgumentList parameter to specify an array»

В чем плюс? Сохраняется читаемость, в моем случае. Я ж не настоящий программист.

Часть 4.2 Руководство
В руководстве написано крайне .. плохо -
Start-Job -ScriptBlock
и дальше пишите себе что хотите.
но ScriptBlock это крайне, крайне неудобно, если не читать описание:

$a = { Get-Service BITS }
Invoke-Command -ScriptBlock $a

То есть, скриптблок можно описать почти как функцию

Like functions, script blocks can include the dynamicparam, begin, process, and end keywords

только есть нюансы.

Часть 4.3 Переходим к примерам Powershell jobs

Пример


$PfadZurSpeicherdatenbank = $PSScriptRoot
$Skriptversion = "12"
$Block1 =
{Get-ChildItem}

Start-Job -ScriptBlock $Block1 -Name JobExample01
Start-Job -ScriptBlock $Block1 -Name JobExample01 # это повтор строки и так надо для примера
Get-Job
Get-Job -Name JobExample01
Receive-Job -Name JobExample01

Обратите внимание на параметры  State и HasMoreData
Get-Job | Select Id, Name, PSJobTypeName, State, HasMoreData 
Get-Job | Select Id, Name, PSJobTypeName, State, HasMoreData | format-table

Сделайте
$Data2 = Receive-Job -Name JobExample01
$Data2

Обратите внимание.
Я запросил итоги задачи «-Name JobExample01». Таких задач в списке должно быть две,
и в переменную попали оба вывода, от двух задач с разными ID и одинаковыми именами. ID уникален, имя – нет, зато имя можно генерировать.

Теперь сделайте все что выше в виде одного скрипта, и удивитесь – в вывод $Data2 не попало ничего. Хотя задачи в списке есть. Но вывод из задачи со статусом Completed и HasMoreData = False вы уже получили, а вывод из задачи, которая еще выполняется (Running), хотя данные из нее еще не получали, но HasMoreData  =True.

Удалим все задачи.

Get-Job | Remove-Job

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

$a ={ param($p1, $p2)
"p1: $p1"
"p2: $p2"}

&$a -p2 "First" -p1 "Second"

И примеры не из руководства: пример 1

$Job02 = {
param ($Out500001)
write-host "JB1" $Out500001}

Start-Job -ScriptBlock $Job02 -ArgumentList "ABC123"
Start-Sleep 5; Get-Job ;
Get-Job | Receive-Job
Get-Job | Remove-Job

И примеры не из руководства: пример 2

$Job03 = {
param ($Out500001)
foreach ($Job03data in $Out500001){
write-host "JB3" $Job03data}}

$Job03Array = (1,2,22)
Start-Job -ScriptBlock $Job03 -ArgumentList $Job03Array
Start-Sleep 5;
Get-Job | Receive-Job

И примеры не из руководства: пример 3

$Job04 = {
param ($Out500001)
foreach ($Job03data in $Out500001){
write-host "JB4" $Job03data}}

$Job03Array = (1,2,22)
Start-Job -ScriptBlock $Job04 -ArgumentList  (,$Job03Array)
Start-Sleep 5;
Get-Job | Receive-Job

И примеры не из руководства: пример 4

$Job05 = {
param ($Input01, $Input02)
write-host "JB5-1 " $Input01
write-host "JB5-2 " $Input02}

Start-Job -ScriptBlock $Job05 -ArgumentList ("A123", "B456")
Start-Sleep 5;
Get-Job | Receive-Job

Тут стоило описать, как использовать именованные переменные \ параметры, но я не стал. Вроде можно. Но мне не очень нужно.
Выводы из увиденного в примерах предлагается сделать самостоятельно

Часть 4.4 Переходим к практике Powershell jobs

И теперь делаем все сразу!

$PfadZurSpeicherdatenbank = $PSScriptRoot
$Skriptversion = "12"
$MeineErsteSicherungsdatei = $PfadZurSpeicherdatenbank + "\" + "nur-eine-datei-part12.xml"
$Fehlermeldung01 =  "Achtung, da ist etwas schiefgelaufen"

if (Test-Path $MeineErsteSicherungsdatei){$NewKeinArray = Import-Clixml -Path $MeineErsteSicherungsdatei}
else {Write-Host $Fehlermeldung01}

$MeineErsteLogin = $PfadZurSpeicherdatenbank + "\" + "dieparole.txt"
$DasPasswordFileExist  = Test-Path -Path $MeineErsteLogin
if ($DasPasswordFileExist -eq $false) {$DieParole = Get-Credential
Export-Clixml -Path $MeineErsteLogin -InputObject $DieParole}
else {$DieParole = Import-Clixml $MeineErsteLogin}

$MeineServerliste = @("192.168.122.250","192.168.122.251")
# $DataRemote1 = Get-HotFix -ComputerName $MeineServerliste[0] -Credential $DieParole

$Rn = Get-Random -Minimum 1 -Maximum 200
$NameRn = "JobExample12" + $Rn
$Block2 = {
param ($ServerAsParam, $CredentialsAsParam)
$DataInBlockRemote1 = Get-HotFix -ComputerName $ServerAsParam -Credential $CredentialsAsParam
Return $DataInBlockRemote1}

Start-Job -ScriptBlock $Block2 -ArgumentList ($MeineServerliste[0], $DieParole)  -Name $NameRn
Start-Sleep 5;
$DataInBlock = Get-Job -Name $NameRn| Receive-Job

Заключение

На этом как бы все. Все необходимые элементы для своего личного костыля, если он вам действительно нужен, у вас есть.

Литература
Как использовать циклы While и Foreach в Powershell Foreach на примерах
Running ForEach in parallel on Windows Powershell 5 (and older)
about_Foreach
about_Foreach-Parallel
Optimize performance using parallel execution
Работа с фоновыми процессами через Jobs в Powershell
Named Arguments for PowerShell Functions: Best Practices
PowerShell background jobs unlock scripting performance
about_Script_Blocks
PowerShell Tip –> Passing array as an argument to a Job/ ScriptBlock
Возврат значения из powershell invoke-command агенту SQL-Server

Показать полностью
[моё] Windows Microsoft Wsus Powershell IT Текст Длиннопост
0
Guidance1001
Guidance1001
2 дня назад

Топ-5 браузеров 2025 года: лучший рабочий инструмент, удобный и надёжный⁠⁠

Топ-5 браузеров 2025 года: лучший рабочий инструмент, удобный и надёжный Приложение, Windows, Android, Linux, Браузер, Microsoft, Программа, Длиннопост

Представьте: вы открываете браузер, и он просто работает. Без лишних лагов, с удобными настройками, которые не заставляют копаться в меню часами. А помните, как раньше мы мучились с медленными загрузками страниц?

Топ-5 браузеров 2025 года:

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

  • Яндекс Браузер на Android — мобильный лидер с экономией трафика.

  • Chrome — быстрый и надёжный от Google.

  • Firefox — чемпион приватности с открытым кодом.

  • Opera — инновационный.

А вы знали, что хороший браузер может сэкономить до 30% батареи на ноутбуке? Или что расширения – это как суперспособности, которые вы устанавливаете одним кликом? Мы поговорим о том, как очистить кэш, установить плагины и даже скачать браузер бесплатно. Главное – баланс между скоростью, безопасностью и удобством. Давайте нырнём в топ!

Что делает браузер топовым в 2025?

Прежде чем перейти к списку, вот ключевые критерии, по которым я оцениваю. Скорость: никто не любит ждать, пока страница загрузится. Безопасность: защита от фишинга, блокировка трекеров и вирусов – must-have. Удобство: интуитивный интерфейс, поддержка расширений и синхронизация между устройствами. Приватность: чтобы ваши данные не утекали налево. И, конечно, совместимость с сайтами – от ВК до официальных порталов. В 2025 году браузеры ещё и интегрируют ИИ: подсказывают, как отключить рекламу или включить тёмный режим. Но не все одинаково хороши в этом. Плюс, я учитываю отзывы: что говорят пользователи о стабильности, обновлениях и поддержке.

Интересный факт: по данным тестов, браузеры на базе Chromium (как большинство в этом топе) лидируют по скорости, но иногда жрут много RAM. А теперь – к делу.

1. Яндекс Браузер: универсальный помощник для повседневки

Знаете, иногда браузер – это как надёжный друг, который всегда под рукой. Яндекс Браузер именно такой. Он быстрый, с кучей фишек для русскоязычных пользователей: встроенный переводчик, который справляется даже с хитрыми текстами, и умный поиск, который угадывает, что вы имели в виду. В 2025 году он обновился: теперь лучше работает с расширениями, и история поиска синхронизируется мгновенно. Плагинов полно – от блокировщиков рекламы до менеджеров паролей. А как очистить кэш? Два клика в настройках, и готово.

Плюсы:

  • Быстрая загрузка страниц, даже на слабом ПК.

  • Синхронный перевод видео.

  • Встроенная защита от фишинга и вирусов – удаляет подозрительные файлы на лету.

  • Удобные расширения: скачать бесплатно можно прямо из магазина, без лишних хлопот.

  • Синхронизация с Яндекс-сервисами: почта, карты, музыка – всё под рукой.

Минусы:

  • Иногда жрёт батарею на ноутбуках, если не включить эконом-режим.

  • Меньше фокуса на глобальной приватности по сравнению с конкурентами.

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

✅ Официальный сайт: Яндекс Браузер ⭐️ Средняя оценка: 4.5/5 (на основе отзывов на Trustpilot и Play Store – пользователи хвалят скорость и интеграцию).

2. Яндекс Браузер на Android: мобильный король для на ходу

А теперь представьте то же самое, но в кармане. Яндекс Браузер на Android – это как мобильный офис: открывает сайты молниеносно, даже на слабом интернете, благодаря турбо-режиму. В 2025 году добавили голосовой поиск и автозаполнение форм – удобно для входа в приложения. Расширения скачать можно, но не все – фокус на мобильных. Как включить тёмный режим? В настройках, одним тапом. А история? Синхронизируется с десктопной версией – открыл на телефоне, продолжил на ПК.

Плюсы:

  • Экономит трафик: сжимает данные, идеально для мобильного интернета.

  • Бесплатные расширения: от блокировщиков рекламы до менеджеров файлов.

  • Защита: блокирует вредные сайты и уведомляет об обновлениях.

  • Интеграция с Яндекс: карты, погода, музыка – всё в одном.

Минусы:

  • На старых устройствах может подтормаживать с кучей вкладок.

  • Меньше кастомизации по сравнению с десктопом.

Почему так? Мобильная версия фокусируется на скорости, но Android-ограничения сказываются. Решение: очистить кэш регулярно и использовать по умолчанию для повседневки.

✅ Официальный сайт: Яндекс Браузер на Android ⭐️ Средняя оценка: 4.6/5 (похвалы за удобство и экономию трафика в отзывах на Uptodown).

3. Chrome: классика от Google, которая не подводит

Chrome – это как старый добрый хром: блестит, работает, но иногда требует полировки. В 2025 году он всё ещё лидер по скорости и совместимости. Открывает любой сайт, поддерживает тонну расширений – от плагинов для ютуба до менеджеров паролей. Как отключить рекламу? Установите расширение, и готово. Синхронизация с Google-аккаунтом – огонь: пароли, история, закладки – всё на всех устройствах.

Плюсы:

  • Супербыстрый: загружает страницы за секунды, даже с видео.

  • Магазин расширений: скачать бесплатно тысячи – для всего, от ВК до удалённого доступа.

  • Безопасность: автоматические обновления и защита от фишинга.

  • Интеграция: с Google Docs, Drive – идеально для работы.

Минусы:

  • Жрёт RAM: с кучей вкладок может замедлить ПК.

  • Приватность: собирает данные, если не настроить.

Почему так? Google фокусируется на экосистеме, но это цена за удобство. Решение: использовать инкогнито или установить расширения для приватности.

✅ Официальный сайт: Chrome ⭐️ Средняя оценка: 4.8/5 (лидер по отзывам на PCMag и TechRadar за скорость).

4. Firefox: приватный воин с открытым кодом

Firefox – это браузер для тех, кто ценит свободу. В 2025 году он усилил фокус на приватности: блокирует трекеры по умолчанию, не продаёт данные. Расширения? Полно, скачать бесплатно и установить – от торрентов до редакторов PDF. Как открыть приватное окно? Легко, и история не сохраняется. Синхронизация через аккаунт – надёжная.

Плюсы:

  • Приватность: не следит, блокирует рекламу и трекеры.

  • Кастомизация: темы, плагины – сделайте под себя.

  • Скорость: оптимизирован, не жрёт ресурсы.

  • Открытый код: сообщество проверяет на баги.

Минусы:

  • Меньше интеграций с сервисами, как у Google.

  • Иногда сайты отображаются неидеально.

Почему так? Фокус на этике, а не на коммерции. Решение: установить расширения для совместимости.

✅ Официальный сайт: Firefox ⭐️ Средняя оценка: 4.7/5 (высокие баллы за приватность на G2 и TechRadar).

5. Opera: инновационный браузер

Opera – это как швейцарский нож: всё в одном. В 2025 году он добавил ИИ-подсказки. Расширения? Скачать через магазин, включая для торрентов. Как включить тёмный режим? Автоматически. Синхронизация – через аккаунт.

Плюсы:

  • Блокировщик рекламы: страницы грузятся быстрее.

  • Социальные интеграции: чаты в боковой панели.

  • Экономия батареи: для ноутбуков – золото.

Минусы:

  • Меньше популярности, сайты иногда не оптимизированы.

Почему так? Фокус на инновациях, но аудитория меньше. Решение: использовать как второй браузер для приватности.

✅ Официальный сайт: Opera ⭐️ Средняя оценка: 4.5/5 (похвалы за удобство на Capterra).

Итог: какой выбрать?

В 2025 году браузеры – это не просто окна в интернет, а инструменты для жизни. Если вы за скорость и интеграцию – берите Chrome. Приватность? Firefox. Мобильность? Яндекс на Android. Универсальность? Яндекс Браузер или Opera. По правде, попробуйте пару – скачать бесплатно и установить займёт минуты. А теперь – вопросы, которые вы могли задать.

Часто задаваемые вопросы

  1. Как скачать браузер бесплатно? Зайдите на официальный сайт и кликните "скачать" – всё просто, без регистрации.

  2. Как установить расширение? В магазине браузера ищите по ключу, кликните "установить" – оно добавится автоматически.

  3. Как очистить кэш? В настройках найдите "очистить данные" – выберите кэш и подтвердите.

  4. Как отключить рекламу? Установите расширение вроде AdBlock или используйте встроенный блокировщик.

  5. Где история? В меню, под "история" – там всё, что вы открывали.

  6. Как включить IPN в Opera? В настройках, раздел "приватность" – активируйте и выберите регион.

  7. Браузер по умолчанию – как установить? В системных настройках ОС укажите нужный.

  8. Как обновить браузер? Обычно автоматически, но проверьте в "о программе".

  9. Расширения для ютуба? Скачайте в магазине – для скачивания видео или блокировок рекламы.

  10. Как удалить браузер? Через панель управления, но сначала экспортируйте закладки.

Показать полностью 1
Приложение Windows Android Linux Браузер Microsoft Программа Длиннопост
1
3
wowa.strah
2 дня назад

Обрыв кабеля⁠⁠

Обрыв подводных кабелей в Красном море

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

Авария Диверсия Кабель Microsoft Текст
10
16
DmitriitheFals
4 дня назад
Лига Сисадминов
Серия Кудахтеры: powershell

Вспоминаем Powershell в нескольких частях. Часть 3. Обрабатываем, что получилось⁠⁠

Для ЛЛ: серия пометок по костылям

Вместо предисловия.
Недавно от бабки в поликлинике узнала, что творог опасен. «У знакомой внук дураком сделался через него. Его творогом кормили, от кальция родничок рано зарос, а мозг продолжал расти, и теперь он в ынторнэтах сидит, кнопки нажимает».
Тут много таких, творогом покалеченных

Конечная цель серии постов: написать свой очень маленький и очень кривой WSUS, поскольку развития WSUS больше не предвидится, но я про это писал
Часть 1. База из баз. Теория
Часть 1.1 Зачем ставить обновления на Linux и Windows и куда угодно, если в отделе работают проверенные электроником сотрудники, и все работает?
Часть 1.2 Чем плох WSUS, SCOM, прочее ПО, и факты в Ansible?
Часть 1.3 Почему Powershell, а не Python?
Часть 1.4 Прочие базовые вещи
Часть 1.5 Классы и объекты, для тех, кто пропускал школу
Часть 1.6 К теме обновлений в Windows
Часть 1.7 Как это все хранить и обрабатывать?
Часть 1.8 Давайте начинать. Мой первый класс
Часть 1.9 Немного магии, не очевидной с первого раза
Часть 1.10 Мой первый массив
Часть 1.11 Суй массив в файл. И забирай из файла
Часть 1.12 Теперь все вместе

Часть 2. Windows update
Часть 2.1 Служба обновлений и ее журнал
Часть 2.2 Настраиваем удаленный доступ
Часть 2.3 Ловим исключения
Часть 2.4 Проблема слишком больших прав
Часть 2.5 Разрешение удаленного подключения
Часть 2.6 Параллельная обработка задач, -parallel,  powershell jobs, Runspaces
Часть 2.7 И, наконец, получим первый список
Часть 2.8 Итого

Часть 3. Обрабатываем, что получилось
Часть 3.1 Немного про общую логику
Часть 3.2 В предыдущих сериях
Часть 3.3 Обновление списка обновлений
Часть 3.4 Обрабатываем оба списка сразу – список обновлений и список с сервера
Часть 3.5 Осталось только выгрузить в Excel
Часть 3.6 Отладка и наладка
Часть 3.7 Альтернативы?

Часть 3. Обрабатываем, что получилось

Часть 3.1 Немного про общую логику
Есть школьная логика, когда люди считают, что «нам нужен список всех обновлений, чтобы понять, какое обновление установлено! 111
Есть логика «ближе к Agile», когда нам не важно, какое обновление установлено, а важно, установлено ли последнее обновление, максимум предпоследнее.
В чем разница? В случае «школьной логики» последние лет 50 наверное, может больше, я в школе был травмирован абсолютно угашенной на голову преподавательницей химии, которой надо было не решение, правильное или неправильное, а соблюдение ее личной методологии решения. Абсолютно дурная бабка была.

Логика в моем случае в том, чтобы сначала получить MVP, minimum viable product, получить данные «как есть», и уже потом развивать код, добавляя в выгрузку, или в справку нужные мне данные.
Проблемы написать парсер Windows update нет никакой, может уже даже кем-то написан. Но мне не нужен полный список для решения моей частной задачи.
Задача в первом приближении написана не оптимально с точки зрения кода, объемов данных итд. Но опять же, мне не нужно решать глобальную задачу и делать комбайн с вертикальным взлетом, мне траву во дворе скосить, и скосить «сейчас».

Про это будет еще много отсылок в тексте.

Использование функций.
Использование функций дело, безусловно, полезное и правильное, с точки зрения читаемости кода. Проблема с Powershell в том, что в нем обработка ошибок в функции весьма странная и неудобная с непривычки. Поэтому функции я, конечно, использую, но в этом примере их будет меньше, чем стоило бы.
Например, получение списка обновлений NewKeinArray можно было спокойно вынести в функцию с параметром, или без.

Чистка кода от старого и закомментированного кода.
Для читаемости кода, конечно, было бы неплохо вычищать старый код.
Для прослеживания логики роста кода, чтобы спустя месяц было понятно, что было сделано и почему так было сделано, закомментированный код можно оставлять. Оба варианта сгодятся. Поскольку это учебная статья, то закомментированный код будет оставлен, для примеров и чтобы на него ссылаться.

Часть 3.2 В предыдущих сериях

В первой серии мы получили:
1) Файл nur-eine-datei.xml  c массивом( System.Array) из класса MeineErsteKlasse и генератор (mainefirstclass4pikabu .ps1) для создания этого файла.
Почему эта функция вынесена? Потому что генерация – это очень простой механизм, и его имеет смысл сделать отдельно. Можно ли сделать эту задачу как функцию в основном скрипте? Можно, но зачем? Это простая генерация файла со списком. Ниже попробую пояснить, почему именно так удобно именно мне.
2) Файл dieparole.txt с логином и паролем для удаленного сервера. Так делать не надо, хранение логинов и паролей в тексте – плохая практика. Нормальные люди разворачивают Vault.
3) Некорректно настроенный, так делать не надо, но для демонстрации сойдет, сервер с Windows. WinRM надо грамотно настраивать для безопасной работы!
4) Выгруженный список обновлений с этого сервера.
5) И код из части 2.

Что сделано не очень удобно, и, может, не очень правильно? Файл nur-eine-datei.xml  и оба скрипта должны лежать в одной папке, и называться одинаково в обоих исполняемых файлах. Можно было сделать запуск с параметром «путь к файлу», но, на мой взгляд, это только усложнит использование.

Первым делом переформируем список серверов для проверки.
В примере (2) есть строка

$MeineServerliste = @("192.168.211.150","192.168.211.151")

Первый сервер из нее доступен, второй – не существует.
В примере (2) есть еще одна ошибка, но я ее исправлю потом.
В достаточно большой инфраструктуре мы, зачастую, не знаем – доступен ли сервер, не доступен, но нам нужна общая картина – всего, из них доступно, из них не доступно.
Можно оптимизировать задачу как «сделать только список что доступно и что на них», можно оптимизировать задачу «все числится, из них не доступно». Это влияет на исполняемую логику в коде. Мне удобнее видеть ситуацию в виде общей таблицы.

Часть 3.3 Обновление списка обновлений
Перепишем первый скрипт, формирующий список обновлений, в следующем виде:

Class Updates{
[string]$OS
[string]$UpdateType
[string]$KB
[string]$KBDate
[string]$Other}

<#Для какого продукта он предназначен: Microsoft Server Operating System
Для какой версии продукта он предназначен: 24H2 (это Windows server 2025)
Номер: KB article numbers: 5063878
Дата выхода: 8/12/2025 #>
$Skriptversion = "12 from 05.09.2025"

$Ar2 = @()
$UPD =[Updates]::new()
$UPD.OS = "Server 2025 24H2" ; $UPD.UpdateType = "OS" ; $UPD.KB = "KB5063878"  ; $UPD.KBDate = "12.08.2025" ; $Ar2 += $UPD ;
# $MeinErstklassigesBeispiel | Format-Table –AutoSize
$PfadZurSpeicherdatenbank = $PSScriptRoot
$MeineErsteSicherungsdatei = $PfadZurSpeicherdatenbank + "\" + "nur-eine-datei-part12.xml"
Export-Clixml -Path $MeineErsteSicherungsdatei -InputObject $Ar2

# notepad $MeineErsteSicherungsdatei
# $NewKeinArray = Import-Clixml -Path $MeineErsteSicherungsdatei
# $NewKeinArray

Зачем? Во первых, нам не нужны проверки «через блокнот», сделанные для демонстрации «что там внутри». Во вторых, чтобы строка
$UPD.OS = "Server 2025 24H2" ; $UPD.UpdateType = "OS"
помещалась на экран.

Зачем так ?

Допустим, вы по каким-то причинам не перешли с сервера 2012R2 на сервер 2025, и вам нужно следить не только за тем, чтобы было или не было обновление на сервере 2025, но и за 2012.
При этом, поскольку подписки на расширенные обновления для 2012R2 у вас нет, то последнее обновление у вас будет от  10 октября 2023 года.
2023-10 Security Monthly Quality Rollup for Windows Server 2012 R2 for x64-based Systems (KB5031419)
Хотя, если бы вам на самом деле была нужна безопасность, то вы бы оформили подписку на обновления, и получали
2023-11 Security Monthly Quality Rollup for Windows Server 2012 R2 for x64-based Systems (KB5032249)
2023-12 Security Monthly Quality Rollup for Windows Server 2012 R2 for x64-based Systems (KB5033420)

И так далее, вплоть до
2025-08 Security Monthly Quality Rollup for Windows Server 2012 R2 for x64-based Systems (KB5063950)
2025-08 Security Monthly Quality Rollup for Windows Server 2012 for x64-based Systems (KB5063906)

В таком случае достаточно дописать одну строку в код:
$UPD.OS = "Server 2012 R200" ; $UPD.UpdateType = "OS" ; $UPD.KB = "KB5031419"  ; $UPD.KBDate = "10.2023" ; $Ar2 += $UPD ;

Читаемость сохраняется, думать не надо.

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

Часть 3.4 Обрабатываем оба списка сразу – список обновлений и список с сервера

В переменной $DataRemote1 есть массив обновлений, а в $MeineServerliste[0] – имя сервера. Окей, и что с этим делать? Очевидно, создать новый класс, но сначала сделать то, чего делать нельзя.

Вспоминаем Powershell в нескольких частях. Часть 3. Обрабатываем, что получилось IT, Windows, Программирование, Powershell, Wsus, Microsoft, Длиннопост

Мне, не знаю как вам, не нужно обрабатывать весь список обновлений. Обновления в Windows последних (2016, 19, 22, 25) бывают:
Обновление стека обслуживания, например servicing stack update (KB5063666)
Кумулятивное плановое обновление, например 2025-08 Cumulative Update for Microsoft server operating system version 24H2 for x64-based Systems (KB5063878) (26100.4946)
Внеплановое обновление
Обновление dotnet, например
2025-07 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Microsoft server operating system version 24H2 for arm64 (KB5056579)
Какие-то еще внеплановые обновление, типа обновления Edge и чего то там еще. Всякая мелочь.
Так нужно ли обрабатывать все 10-20-50 обновлений в списке установленных? Конечно, нет.
Поэтому:


$DataRemote2 = $DataRemote1 | Sort-Object -Property InstalledOn -Descending | Select-Object -First 4

Вот теперь заводим новый класс!

Class CurrentState{
[string]$Name
[string]$IP
[string]$IsActive
[string]$CurrentUpdateKB
[string]$CurrentUpdateKBDate
[string]$Other
[string]$LastInstalledKBFotTroubleshooting}

Remove-Variable TotalList -ErrorAction SilentlyContinue
$TotalList = @()

foreach ($ThisUpdate in $DataRemote2) {
$ThisServer = [CurrentState]::new()
$LastInstalledKBFotTroubleshooting = ""
foreach ($ThisUpdate2 in $DataRemote2){
$LastInstalledKBFotTroubleshooting = $LastInstalledKBFotTroubleshooting + $ThisUpdate2.HotFixID +'.'}

$ThisServer.LastInstalledKBFotTroubleshooting = $LastInstalledKBFotTroubleshooting

foreach ($BaseOfUpdate in $NewKeinArray) { 
$ThisServer.IP = $MeineServerliste[0]
Write-Host "This |"  $ThisUpdate.HotFixID " Base " $BaseOfUpdate.KB
if ($ThisUpdate.HotFixID -eq $BaseOfUpdate.KB) {
$ThisServer.CurrentUpdateKB = $ThisUpdate.HotFixID
$ThisServer.CurrentUpdateKBDate = $BaseOfUpdate.KBDate
$TotalList += $ThisServer
#break
}}

Remove-Variable LastInstalledKBFotTroubleshooting
Remove-Variable ThisServer  }

Часть 3.5 Осталось только выгрузить в Excel

В Powershell «из коробки» нет выгрузки в Excel. Есть txt, csv, xml. Внешний модуль для Excel, конечно, есть, но использовать его просто не хочется.
Однако, если вы сделаете

$CSVfile1 = $PfadZurSpeicherdatenbank + "\" + "MyExport1.csv"
Export-Csv -InputObject $TotalList -Path $CSVfile1
notepad $CSVfile1

То получите совсем не то, чего хотели, а что-то про #TYPE System.Object[]
Это совсем, совсем не то, что вам надо. Для решения этой проблемы есть несколько вариантов, самый читаемый, на мой взгляд,

$CSVfile2 = $PfadZurSpeicherdatenbank + "\" + "MyExport2.csv"
$CSVfile3 = $PfadZurSpeicherdatenbank + "\" + "MyExport3.csv"
$TotalList | Select * | Export-Csv -Path $CSVfile2 -Delimiter ";"
$TotalList | Select Ip, LastInstalledKBFotTroubleshooting | Export-Csv -Path $CSVfile3 -Delimiter ";"
notepad $CSVfile2
notepad $CSVfile3

Часть 3.6 Отладка и наладка

Что же делать, как же быть, если у вас поле CurrentUpdateKB – пустое? Не оказалось у вас установленного последнего обновления?
На мой взгляд, решение очевидно, нужно идти и ставить свежее обновление.


Но, если у вас другое мнение, то
Поле LastInstalledKBFotTroubleshooting у вас есть, Microsoft Update catalog доступен, дальше надо пояснять?

Часть 3.7 Альтернативы?

Пока обсуждал черновик с коллегами, выяснил что можно было решить эту задачу, инвентаризации, и попроще. Или иначе.
Можно было сделать, через, например, групповую политику, разовую задачу по выгрузке того, что мне нужно, в общую папку, в сотню – две файлов с разными именами. Потом уже гораздо проще решить задачу выборки из файлов.
Можно было выдернуть через Get-SilData, тоже вариант.
Можно было запросить SQL базу на WSUS, если она хоть как-то жива.  Там очень простой запрос.

Показать полностью 1
[моё] IT Windows Программирование Powershell Wsus Microsoft Длиннопост
0
17
DmitriitheFals
5 дней назад
Лига Сисадминов
Серия Кудахтеры: powershell

Вспоминаем Powershell в нескольких частях. Часть 2. Windows update⁠⁠

Для ЛЛ: серия пометок по костылям

Конечная цель серии постов: написать свой очень маленький и очень кривой WSUS, поскольку развития WSUS больше не предвидится, но я про это писал
Часть 1. База из баз. Теория
Часть 1.1 Зачем ставить обновления на Linux и Windows и куда угодно, если в отделе работают проверенные электроником сотрудники, и все работает?
Часть 1.2 Чем плох WSUS, SCOM, прочее ПО, и факты в Ansible?
Часть 1.3 Почему Powershell, а не Python?
Часть 1.4 Прочие базовые вещи
Часть 1.5 Классы и объекты, для тех, кто пропускал школу
Часть 1.6 К теме обновлений в Windows
Часть 1.7 Как это все хранить и обрабатывать?
Часть 1.8 Давайте начинать. Мой первый класс
Часть 1.9 Немного магии, не очевидной с первого раза
Часть 1.10 Мой первый массив
Часть 1.11 Суй массив в файл. И забирай из файла
Часть 1.12 Теперь все вместе

Часть 2. Windows update
Часть 2.1 Служба обновлений и ее журнал

Часть 2. Windows update
Часть 2.1 Служба обновлений и ее журнал
Часть 2.2 Настраиваем удаленный доступ
Часть 2.3 Ловим исключения
Часть 2.4 Проблема слишком больших прав
Часть 2.5 Разрешение удаленного подключения
Часть 2.6 Параллельная обработка задач, -parallel,  powershell jobs, Runspaces
Часть 2.7 И, наконец, получим первый список
Часть 2.8 Итого

Почему код написан вручную, а не через любой из ИИ?
Я пробовал и продолжаю пробовать. ИИ хорошо пишет маленькие задачи, и крайне полезен для сценариев «напиши вот так» - чтобы понять, как это работает. Но ИИ пишет странный код в некоторых сценариях, и написать промт для правки занимает столько же по времени, как написать правку самому.
Копилот вообще очень хорош, но не для всех сценариев.

Форматирование кода
Код не отформатирован отступами, пробелами, и так далее, для экономии места. Так делать, конечно, не надо.

Часть 2.1 Служба обновлений и ее журнал

Для второй части разберемся, что такое в первом приближении служба обновления, и что с ней как.

Для этого мне понадобится виртуальная машина, в моем случае с Windows Server 2025 Evaluation. Поскольку это Evaluation, и я не использую сабж в коммерческих целях, то мне не надо объяснять, что в данном случае это Fair use, насколько это возможно. Хотя для учебных целей мне бы и следовало купить и учебную лицензию (взять в институте), и Licence Windows Server CAL - Student only к нему.
Хотя мог бы сказать, как импортозаместители – что-то NVidia Microsoft дорого, давайте дешевле.

За работу обновления отвечает сервис wuauserv, он же Windows Update.
Он хранит свои логи много где, в том числе:
Events – Windows – Application - 
Microsoft-Windows-WindowsUpdateClient/Operational

И в текстовом файле - %systemroot%\Logs\CBS, остальное убрали в ETL (Windows Update log files)
Но про это позже, в части три.

Для просмотра обновлений есть ущербный, но мне сойдет, командлет
Get-HotFix

Осталось все ничего.
В составе Windows есть сервис WinRM , живет на портах TCP/5985 = HTTP и  TCP/5986 = HTTPS

Проверим локально:
netstat -an | findstr "5985"

Или по новой школе

Get-NetTCPConnection | where {$_.LocalPort -eq 5985}

Но вы можете посмотреть и параметры
get-Item WSMan:\localhost\Service\EnableCompatibilityHttpListener
get-Item WSMan:\localhost\Service\EnableCompatibilityHttpsListener

По умолчанию – false.
WinRM имеет свои настройки безопасности, подключений, итд. Если у вас что-то не работает, в 99% случаев эти настройки меняли сервисы имитационной безопасности, и сделали что-то плохое. Поэтому нужно знать, что они сделали, и как это чинить. Сами они это починить не могут. Сервисы имитационной безопасности, вообще все, ничего другого не умеют.

Часть 2.2 Настраиваем удаленный доступ

К делу. Заведем новый файл, в нем заведем переменную «где храним скрипты» и переменную версии, просто так чтобы была (не просто так)

$PfadZurSpeicherdatenbank = $PSScriptRoot
$Skriptversion = "10"
$MeineErsteLogin = $PfadZurSpeicherdatenbank + "\" + "dieparole.txt" #*

* Разрешается заменить dieparole на derparol. Если вы эльф

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

$PfadZurSpeicherdatenbank = $PSScriptRoot
$Skriptversion = "10"
$MeineErsteLogin = $PfadZurSpeicherdatenbank + "\" + "dieparole.txt"
$DasPasswordFileExist  = Test-Path -Path $MeineErsteLogin
if ($DasPasswordFileExist -eq $false) {$DieParole = Get-Credential
Export-Clixml -Path $MeineErsteLogin -InputObject $DieParole}
notepad $MeineErsteLogin

Как легко заметить, имя пользователя хранится в открытом виде, пароль лежит в зашифрованном виде, но, еще раз, это не безопасно.

Заведем список серверов. В моем случае список сделан вручную, но вы легко можете сформировать список из AD (через Get-ADComputer  с фильтрами и без), или из любых других источников.
$MeineServerliste = @("192.168.10.155","192.168.10.156")

Для проверки доступности WinRM есть два командлета, или можно свой метод написать, если хочется. Командлеты: Test-NetConnection и Test-WSMan. Это не заменяющие, а дополняющие друг друга методы. Test-NetConnection ответит на вопрос «открыт ли TCP port и есть ли хотя бы пинг». Пинга может не быть, это нормально. Test-WSMan ответит на вопрос «ответил ли там кто-то»

Часть 2.3 Ловим исключения и ошибки

В powershell и любом коде иногда бывает событие «не смогла». Его надо обработать. Вариантов обработки много, это и классический  Try-Catch-Finally,  и варианты -ErrorAction and -ErrorVariable. Можно обрабатывать переменную $Error.
В чем проблема. Кроме часто встречаемого Silentlycontinue, нужно еще и ошибку как-то обработать.
Попробуем три варианта, с ошибками и без.

Remove-Variable Labubu1 -ErrorAction SilentlyContinue; Remove-Variable Labubu2 -ErrorAction SilentlyContinue
$GutenTag01 = Test-Netconnection -ComputerName $MeineServerliste[0] -Port 5985
$GutenTag02 = Test-WSMan -ComputerName $MeineServerliste[0]
$GutenTag03 = Test-WSMan -ComputerName $MeineServerliste[0] -Authentication Default  -Credential $DieParole
$GutenTag04 = Test-WSMan -ComputerName $MeineServerliste[0] -Authentication Default  -Credential $DieParole -ErrorVariable $Labubu1 -OutVariable $Labubu2

В моем случае сервер  $MeineServerliste[0] точно включен и доступен, но.
$GutenTag01 выдаст объект «проверено, доступно».
$GutenTag02 отдаст три какие-то строки.
$GutenTag03 и $GutenTag04 не отдадут ничего, хотя в выводе я получу ошибку

The WinRM client cannot  process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or  the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts.

Тот же текст, что падает в переменную $Labubu1. Можно обрабатывать и так.

Часть 2.4 Проблема слишком больших прав
На этапе выдачи прав, особенно в сложной среде, возникают проблемы. Наибольшая проблема – менеджмент и отдел имитационной безопасности, прочитавшие пособие по информационной безопасности. Выглядит это так, как будто вахтер баба Маша, женщина как вахтер уважаемая, пришла в оружейную комнату за пулеметом. Потому что почему бы и нет. В итоге пулемет будет валяться в углу, приходи кто хочет, бери что хочет.
Будьте крайне осторожны с делегированием и разрешениями на данном этапе.

Часть 2.5 Разрешение удаленного подключения
Вернемся к делу. Выполню на удаленном сервере Enable-PSRemoting и посмотрю, что изменится. А потом сделаю
Set-Item WSMan:\localhost\Client\TrustedHosts -Value 192.168.10.100
где 192.168.10.100 – IP моего ПК. Делать так в продуктивной среде, конечно, ни надо ни в коем случае.

Firewall тоже не забудьте настроить.

Часть 2.5 Выбор методики первичного сбора информации
Есть несколько вариантов первичного сбора информации.  Часть серверов может быть выключена. Часть не быть доступна с каким-то из логинов-паролей, или там не включен WinRM сервис. Или сервис включен, но не доступен, потому что так настроен Firewall.
Перед тем, как обрабатывать «весь список компьютеров», возможно, имеет смысл проверить «все ли включены и доступны», сократив список для обработки. Те, что не доступны, постепенно обработать вручную, или ввести для них дополнительные проверки.

Часть 2.6 Параллельная обработка задач, -parallel,  powershell jobs, Runspaces
Если у вас 1..10.. 100 серверов, то их можно обработать и последовательно. Пусть на каждый уйдет даже 5 минут, всего 500 минут, поставил на ночь сбор первичной статистики, утром собрал. Если же вам надо быстро, и, конечно, асинхронно, потому что таймаут на некоторые тесты по умолчанию полчаса, то у вас не так много выбора между powershell jobs и runspaces

Поскольку тема достаточно сложная, то она будет вынесена в часть 4, или в часть 5.

Часть 2.7 И, наконец, получим первый список

$DataRemote1 = Get-HotFix -ComputerName $MeineServerliste[0] -Credential $DieParole

В нем есть, все что нам надо для первичной обработки, в том числе список установленных обновлений в поле
$DataRemote1[0].HotFixID

Остается дописать три строки:

$Fehlermeldung01 =  "Achtung, da ist etwas schiefgelaufen"
if (Test-Path $MeineErsteSicherungsdatei){$NewKeinArray = Import-Clixml -Path $MeineErsteSicherungsdatei}
else {Write-Host $Fehlermeldung01}

Часть 2.8 Итого

$PfadZurSpeicherdatenbank = $PSScriptRoot
$Skriptversion = "10"/
$MeineErsteLogin = $PfadZurSpeicherdatenbank + "\" + "dieparole.txt"
$DasPasswordFileExist  = Test-Path -Path $MeineErsteLogin

if ($DasPasswordFileExist -eq $false) {
$DieParole = Get-Credential
Export-Clixml -Path $MeineErsteLogin -InputObject $DieParole}

else {$DieParole = Import-Clixml $MeineErsteLogin}
#notepad $MeineErsteLogin

$MeineServerliste = @("192.168.2.150","192.168.2.151")

Remove-Variable Labubu1 -ErrorAction SilentlyContinue; Remove-Variable Labubu2 -ErrorAction SilentlyContinue
$GutenTag01 = Test-Netconnection -ComputerName $MeineServerliste[0] -Port 5985
$GutenTag02 = Test-WSMan -ComputerName $MeineServerliste[0]
$GutenTag03 = Test-WSMan -ComputerName $MeineServerliste[0] -Authentication Default  -Credential $DieParole -ErrorAction SilentlyContinue
$GutenTag04 = Test-WSMan -ComputerName $MeineServerliste[0] -Authentication Default  -Credential $DieParole -ErrorVariable $Labubu1 -OutVariable $Labubu2 -ErrorAction SilentlyContinue

$DataRemote1 = Get-HotFix -ComputerName $MeineServerliste[0] -Credential $DieParole
$DataRemote1[0].HotFixID
$Fehlermeldung01 =  "Achtung, da ist etwas schiefgelaufen"

if (Test-Path $MeineErsteSicherungsdatei){$NewKeinArray = Import-Clixml -Path $MeineErsteSicherungsdatei}
else {Write-Host $Fehlermeldung01}

Литература
Windows Update log files
Инвентаризация ИТ-активов штатными средствами Windows с минимальными правами доступа
Test-NetConnection
Test-WSMan
Powershell: How to encrypt and store credentials securely for use with automation scripts.
Save Credentials to File in PowerShell
Devblog -ErrorAction and -ErrorVariable
Everything you wanted to know about exceptions
Учебный блок (бесплатный от MS) Troubleshoot scripts and handle errors in Windows PowerShell
Mastering Error Handling in PowerShell with Try-Catch-Finally
Devblog PowerTip: Use PowerShell to View Trusted Hosts
Настройка удаленного взаимодействия в PowerShell (часть 1)
Настройка удаленного взаимодействия в PowerShell (часть 2)
UpdateService
JEA Session Configurations
Service Accounts Step-by-Step Guide - Managed service accounts and virtual accounts
Virtual Accounts well-known SID

Показать полностью 1
[моё] Windows IT Powershell Microsoft Wsus Видео YouTube Короткие видео Длиннопост
0
3
AIvengo.news
AIvengo.news
6 дней назад
Искусственный интеллект

Сервис для переводов DeepL запустил своего ИИ-агента и бросил вызов OpenAI и Anthropic⁠⁠

DeepL неожиданно атакует империю Microsoft и OpenAI

--

Мой тг-канал: ИИ by AIvengo, пишу ежедневно про искусственный интеллект

Показать полностью
[моё] Искусственный интеллект Нейронные сети Openai Microsoft Видео
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии