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

Пикабомбер

Аркады, Пиксельная, 2D

Играть

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

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

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

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

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

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

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

Как оплатить Claude AI из России в 2025 если нет зарубежной банковской карты⁠⁠

2 месяца назад

В профессиональной среде Клод уже успел заработать репутацию мощного помощника для работы с кодом и текстами. Многие отмечают, что после его появления их эффективность выросла в разы. Особенно выделяется возможность обрабатывать до 200 000 токенов за один раз — это примерно 150 000 слов. Представьте: можно загрузить целый проект или, скажем, годовой отчет компании и получить подробный разбор в одном запросе. Плюс к этому — поддержка мультимодальности: работа с картинками, схемами и PDF прямо в чате.

Но есть и обратная сторона. Оплатить подписку на Claude напрямую из России не получится: карты Visa, Mastercard и «Мир» не принимаются. К тому же Anthropic официально не включает Россию в список стран, где сервис доступен, что создает дополнительный барьер.

Конечно, вы наверняка уже слышали об этих ограничениях. Возможно, у вас даже есть зарубежная карта или вы пробовали разные способы оплаты. Но эта статья рассчитана на тех, кто ищет рабочие и актуальные решения в 2025 году, чтобы пользоваться Claude AI без лишних проблем.

Почему пользователи выбирают Claude

Claude AI — это разработка компании Anthropic, созданной выходцами из OpenAI в 2021 году. Его главная особенность — технология Constitutional AI, которая делает модель более надежной и безопасной для рабочих процессов, где важна предсказуемость.

Среди ключевых преимуществ выделяется высокая эффективность в программировании: версия Opus 4 показывает лучшие результаты на тестах и способна работать с крупными кодовыми базами целиком. Еще один плюс — огромное контекстное окно, позволяющее анализировать документы объемом до 150 000 слов, что особенно полезно для технических и юридических материалов. Модель также поддерживает мультимодальность: обрабатывает тексты, изображения, схемы и PDF, а функция Artifacts дает возможность редактировать материалы прямо в чате. Дополняют картину интеграции с GitHub, Google Workspace и другими сервисами.

На практике Claude используют программисты для рефакторинга и тестирования кода, аналитики — для работы с большими данными и отчетами, юристы — для анализа контрактов, а маркетологи и копирайтеры — для генерации контента и конкурентного анализа.

Что дает платная подписка Claude AI

У сервиса есть бесплатный вариант, где пользователи получают доступ к модели среднего уровня. Она справляется с базовыми задачами: можно вести переписку, загружать картинки или документы для анализа, работать через браузер или приложение. Но есть ограничение — после десятка содержательных запросов система ставит паузу и предлагает подождать несколько часов. Для тех, кто использует нейросеть время от времени, этого хватает, но при регулярной работе лимиты быстро начинают мешать.

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

Кроме того, исчезают жесткие ограничения по количеству запросов — можно работать без вынужденных пауз. Для тех, кто сталкивается с дедлайнами, это критично: не нужно ждать, пока система «отдохнет».

Отдельно стоит отметить функции Projects и Artifacts. Первые позволяют сохранять прогресс между сессиями, а вторые — прямо в интерфейсе писать и редактировать код или документы. В итоге Claude перестает быть просто чат-ботом и превращается в полноценный рабочий инструмент.

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

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

Как оплатить подписку Claude AI в России

1. Оплата Claude AI на маркетплейсе ggsel

При ограничении прямых платежей можно воспользоваться проверенным маркетплейсом ggsel с защитой от мошенничества. Платформа обеспечивает безопасность сделок за счет рейтинговой системы продавцов, верификации аккаунтов и блокировки средств до подтверждения выполнения услуги. Это один из самых простых и доступных вариантов оплатить Claude AI.

  1. Перейдите на сайт ggsel. Откройте строку поиска и введите «Claude AI».

  2. Отфильтруйте предложения по рекомендациям или цене.

  3. Выберите понравившееся, изучив описание и отзывы.

  4. Оплатите удобным способом (российской банковской картой, СБП, через электронный кошелек или другим).

  5. После подтверждения оплаты подписка будет активирована.

2. Использование виртуальной карты

Сегодня достать иностранную виртуальную карту можно полностью онлайн, без визита в отделение и зачастую без необходимости иметь зарубежный паспорт, максимум что понадобится — загран. Большинство сервисов и банков оформляют такие карты через мобильное приложение или веб‑кабинет: вы проходите регистрацию, подтверждаете личность по документам, загружаете фото или сканы, а затем выбираете валюту и тариф.

После выпуска карта сразу появляется в вашем аккаунте в виде реквизитов — номера, срока действия и CVC‑кода. Ее можно использовать для оплаты подписки Claude AI. Пополнение обычно доступно через международные переводы, но условия зависят от конкретного банка или платежного сервиса.

3. Приобретение и использование предоплаченной (prepaid) карты

Этот способ во многом похож на предыдущий, только здесь для расчета используется другой вид банковских карт. Предоплаченная карта — это инструмент, на который заранее зачислена определенная сумма. Вы приобретаете ее нужного номинала, например, на ggsel, а затем используете для оплаты Claude AI и других покупок в интернете.

4. Оплата при помощи знакомых или родственников за границей

Довольно очевидный метод. Если у вас есть друзья или родственники, которые живут за границей, они могут здорово помочь с оплатой Claude AI. Такой способ не только избавит вас от лишней головной боли, но и убережет от сомнительных схем и риска потерять свои данные.

Ваши знакомые смогут без проблем провести оплату со своей иностранной карты — либо прямо на ваш аккаунт, либо оформив новый. Это значит, что вам не придется возиться с международными платежками. Все сводится к простому разговору и договоренности.

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

5. Оплата через P2P переводы

Для тех, кто привык иметь дело с цифровыми активами, P2P‑переводы остаются одним из немногих рабочих способов оплатить Claude AI. Механика простая: вы переводите нужную сумму со своего кошелька, а проверенный посредник оплачивает подписку от вашего имени. Такой вариант подойдет тем, кто уже разбирается в транзакциях и понимает, как устроены комиссии, скорость подтверждений и прочие нюансы. Обычно все проходит быстро — от пары минут до часа, но многое зависит от загруженности сети и выбранного сервиса.

Есть важный момент: отменить такой перевод невозможно. Поэтому перед тем как отправлять деньги, убедитесь, что посредник заслуживает доверия — изучите отзывы, уточните условия, посмотрите историю его работы. Не ведитесь на слишком «сладкие» предложения и никогда не передавайте посторонним доступ к своему кошельку. Любая ошибка в сумме или адресе может стоить вам средств. Этот способ требует внимательности, но дает шанс обойти ограничения там, где другие методы бессильны.

6. Оплата Claude AI со смартфона

Если кратко, то вам нужно сменить регион аккаунта Google Play или Apple ID, либо создать новую учетную запись в другой стране. Далее установить приложение Claude AI. Затем, за неимением иностранного способа оплаты придется приобрести и активировать подарочную карту Google Play или iTunes / App Store, соответствующую новому местоположению аккаунта, тем самым пополнив внутренний баланс. И оплатить подписку в приложении используя счет Google или Apple.

Подробные шаги и способы оплаты мы описывали в других статьях:

  • для Android;

  • для iOS.


Переходите на ggsel.net — торговую площадку, где вы найдете игры для ПК и консолей, DLC, сможете пополнить баланс популярных игровых и неигровых сервисов, купить и продать игровой аккаунт. И все это — по низким ценам!

Реклама ИП «Суханов Д.Ф.», ИНН: 290132412356

Показать полностью 9
Приложение Программа Инструкция Гайд Покупка Приобретение Активация Оформление Подписки Android iOS Windows Искусственный интеллект Нейронные сети Блоги компаний Длиннопост
1
TECHLiveHACK
TECHLiveHACK

Microsoft всё-таки разрешила устанавливать Windows 11 на неподдерживаемые ПК⁠⁠

3 месяца назад
Microsoft всё-таки разрешила устанавливать Windows 11 на неподдерживаемые ПК

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

Источник

Показать полностью
Программа Гайд Тестирование Технологии Microsoft Windows Windows 11 Компьютер Старый ПК Игровой ПК Слабый ПК Компьютерное железо Telegram (ссылка) Компьютерная помощь Сборка компьютера
3
11
hypo69
hypo69
Лига Сисадминов
Серия Философия PowerShell

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

3 месяца назад

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

Под аббревиатурой «ии» я подразумеваю модель машинного обучения. Я буду использовать gemini-2.5-pro/flash. У гугла есть интерфейс командной строки gemini-cli.

Что такое Gemini CLI?

Подробно о Gemini CLI я уже рассказывал в Gemini CLI: Знакомство и первые шаги. Но если вы ее пропустили, вот краткое введение.

Если коротко, Gemini CLI — это командная строка для взаимодействия с моделями ИИ от Google. Вы запускаете его в своем терминале, и он превращается в чат, который, в отличие от веб-версий, имеет доступ к вашей файловой системе.

Ключевые возможности:

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

  • Генерирует код: Вы можете попросить его написать PowerShell-скрипт для решения вашей задачи, и он это сделает.

  • Работает с файлами: Может читать файлы, создавать новые, вносить изменения в существующие.

  • Запускает команды: Может выполнять команды оболочки, такие как git или npm.

Для наших целей самое важное то, что Gemini CLI умеет работать в неинтерактивном режиме. То есть мы можем передать ему промпт как аргумент командной строки, и он просто вернет нам ответ, не запуская свой интерактивный чат. Именно эту возможность мы и будем использовать.

Установка и настройка

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

Шаг 1: Установка Node.js Gemini CLI — это приложение, написанное на Node.js (популярная среда для JavaScript). Поэтому сначала нам нужно установить саму Node.js.

  1. Перейдите на официальный сайт: https://nodejs.org/

  2. Скачайте и установите LTS версию. Это самый стабильный и рекомендуемый вариант. Просто следуйте инструкциям установщика.

  3. После установки откройте новое окно PowerShell и проверьте, что все работает:

    node -v npm -v

    Вы должны увидеть версии, например, v20.12.2 и 10.5.0.

Шаг 2: Установка самого Gemini CLI Теперь, когда у нас есть npm (менеджер пакетов для Node.js), установка Gemini CLI сводится к одной команде. Выполните ее в PowerShell:

npm install -g @google/gemini-cli

Флаг -g означает "глобальная установка", что сделает команду gemini доступной из любого места в вашей системе.

Шаг 3: Аутентификация В первый раз, когда вы запустите Gemini CLI, он попросит вас войти в свой аккаунт Google. Это нужно, чтобы он мог использовать вашу бесплатную квоту.

  1. Просто введите в PowerShell команду:

    gemini

  2. Он задаст вам вопрос о входе. Выберите "Sign in with Google".

  3. В вашем браузере откроется стандартное окно входа Google. Войдите в свой аккаунт и предоставьте необходимые разрешения.

  4. После этого в консоли вы увидите приветственное сообщение от Gemini. Поздравляю, вы готовы к работе! Можете ввести /quit, чтобы выйти из его чата.

Философия PowerShell: ужасный Invoke-Expression

Прежде чем мы соединим все вместе, познакомимся с одним из самых опасных командлетов в PowerShell — Invoke-Expression, или его коротким псевдонимом iex.

Invoke-Expression берет текстовую строку и выполняет ее так, как будто это была команда, напечатанная в консоли.

Пример:

$commandString = "Get-Process -Name 'chrome'" Invoke-Expression -InputObject $commandString

Эта команда сделает то же самое, что и простой вызов Get-Process -Name 'chrome'.

Почему он опасный? Потому что выполнение строки, которую вы не контролируете (например, полученной из интернета или от ИИ), — это огромная дыра в безопасности. Если ИИ по ошибке или со злым умыслом вернет команду Remove-Item -Path C:\ -Recurse -Force, iex без раздумий ее выполнит.

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

Соединяем всё вместе: командлет Invoke-Gemini

Напишем простую PowerShell-функцию, которая позволит нам отправлять промпты одной командой.

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

Давайте зададим ему вопрос на общую тему прямо из нашей PowerShell-консоли.

Invoke-Gemini -Prompt "Расскажи о пяти последних трендах в области машинного обучения"
Пробуем магию:

Перейти к видео

👏 Поздравляю! Вы только что успешно встроили ИИ в PowerShell.

В следующей статье я расскажу, как использовать Gemini CLI для запуска скриптов и автоматизации задач.

Ссылка на github

Серия «Философия PowerShell»
Серия «gemini-cli»

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

Показать полностью 1 1
[моё] Windows Автоматизация Системное администрирование Cli Gemini Powershell Гайд IT Видео Без звука Короткие видео Длиннопост
4
23
hypo69
hypo69
Лига Сисадминов
Серия Философия PowerShell

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

3 месяца назад

В предыдущей части мы познакомились с Out-ConsoleGridView — мощным инструментом для интерактивной работы с данными прямо в терминале. Если вы не знаете, что такое Out-ConsoleGridView, рекомендую начать отсюда 👉 Интерактивная работа: Out-ConsoleGridView

Я не буду повторять теорию, а сразу перейду к практике и покажу 10 сценариев, в которых этот командлет может сэкономить системному администратору или продвинутому пользователю массу времени.

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

Out-ConsoleGridView — это не просто "просмотрщик". Это интерактивный фильтр объектов в середине вашего конвейера.

Предварительные требования:

  • PowerShell 7.2 или новее.

  • Установленный модуль Microsoft.PowerShell.ConsoleGuiTools. Если вы его еще не установили:

    > Install-Module Microsoft.PowerShell.ConsoleGuiTools -Scope CurrentUser


Пример 1: Интерактивная остановка процессов


> # Выбираем процессы в интерактивном режиме
> $procsToStop = Get-Process | Sort-Object -Property CPU -Descending | Out-ConsoleGridView -OutputMode Multiple

> # Если что-то было выбрано, передаем объекты на остановку
> if ($procsToStop) {
$procsToStop | Stop-Process -WhatIf
}

Перейти к видео
  • Get-Process получает все запущенные процессы.

  • Sort-Object упорядочивает их по загрузке CPU, чтобы самые "прожорливые" были наверху.

  • Out-ConsoleGridView отображает таблицу. Вы можете ввести chrome или notepad, чтобы мгновенно отфильтровать список, и выбрать нужные процессы клавишей Space.

  • После нажатия Enter выбранные объекты процессов попадают в переменную $procsToStop и передаются в Stop-Process.


Пример 2: Управление службами Windows

Нужно быстро перезапустить несколько служб, связанных с одним приложением (например, SQL Server).

> $services = Get-Service | Out-ConsoleGridView -OutputMode Multiple -Title "Выберите службы для перезапуска" if ($services) { $services | Restart-Service -WhatIf }

Перейти к видео
  1. Вы получаете список всех служб.

  2. Внутри Out-ConsoleGridView вы вводите в фильтр sql и сразу видите все службы, относящиеся к SQL Server.

  3. Выбираете нужные и нажимаете Enter. Объекты выбранных служб передаются на перезапуск.

Пример 3: Очистка папки "Загрузки" от больших файлов

Со временем папка "Загрузки" забивается ненужными файлами. Найдем и удалим самые большие из них.

  1. Мы получаем все файлы, сортируем их по размеру и с помощью Select-Object создаем удобную колонку SizeMB.

  2. В Out-ConsoleGridView вы видите отсортированный список, где легко выбрать старые и большие .iso или .zip файлы.

  3. После выбора их полные пути передаются в Remove-Item.

Перейти к видео

Пример 4: Добавление пользователей в группу Active Directory

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

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


Пример 5: Узнать, какие программы используют интернет прямо сейчас

Одна из частых задач: "Какая программа тормозит интернет?" или "Кто и куда отправляет данные?". С помощью Out-ConsoleGridView можно получить наглядный ответ.

> # Получаем все активные TCP-подключения
> $connections = Get-NetTCPConnection -State Established | Select-Object RemoteAddress, RemotePort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName}}

> # Выводим в интерактивную таблицу для анализа
> $connections | Out-ConsoleGridView -Title "Активные интернет-подключения"

Перейти к видео
  1. Get-NetTCPConnection -State Established собирает все установленные сетевые подключения.

  2. С помощью Select-Object мы формируем удобный отчет: добавляем имя процесса (ProcessName) к его ID (OwningProcess), чтобы было понятно, какая программа установила соединение.

  3. Out-ConsoleGridView показывает вам живую картину сетевой активности.



Пример 6: Анализ установки ПО и обновлений

Мы будем искать события от источника "MsiInstaller". Он отвечает за установку, обновление и удаление большинства программ (в формате .msi), а также за многие компоненты обновлений Windows.

Внутри таблицы: Вы можете отфильтровать список по названию программы (например, Edge или Office), чтобы увидеть всю историю ее обновлений. Вы можете отсортировать по Id, чтобы найти неудачные установки (11708).

Внутри таблицы: Вы можете отфильтровать список по названию программы (например, Edge или Office), чтобы увидеть всю историю ее обновлений. Вы можете отсортировать по Id, чтобы найти неудачные установки (11708).

Перейти к видео

Внутри таблицы:

  • Вы можете отфильтровать список по названию программы (например, Edge или Office), чтобы увидеть всю историю ее обновлений.

  • Вы можете отсортировать по Id, чтобы найти неудачные установки (11708).


Пример 7: Интерактивное удаление программ

Перейти к видео

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


Пример 8: Связывание (Chaining) Out-ConsoleGridView

Это самый мощный прием. Выход одной интерактивной сессии становится входом для другой. Задача: Выбрать одну из ваших папок с проектами, а затем выбрать из нее определенные файлы для создания ZIP-архива.

  1. Первый Out-ConsoleGridView показывает вам список папок внутри ваших "Документов". Вы можете быстро найти нужную, введя часть ее имени, и выбрать одну папку.

  2. Если папка была выбрана, скрипт немедленно открывает второй Out-ConsoleGridView, который показывает уже файлы внутри этой папки.

  3. Вы выбираете один или несколько файлов клавишей Space и нажимаете Enter.

  4. Скрипт берет выбранные файлы и создает из них ZIP-архив на вашем рабочем столе.

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


Пример 9: Управление опциональными компонентами Windows

Перейти к видео

Вы можете легко найти и отключить ненужные компоненты, например Telnet-Client или Windows-Sandbox.

Пример 10: Управление виртуальными машинами Hyper-V

Быстро остановить несколько виртуальных машин для обслуживания хоста.

Статья на github

Clear-DownloadsFolder.ps1

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

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

Показать полностью 6 7
[моё] Powershell Microsoft Автоматизация Системное администрирование IT Windows Гайд Видео Без звука Короткие видео Длиннопост
0
2
TECHLiveHACK
TECHLiveHACK

Пошаговый гайд для ускорения вашего ПК — всего три шага и ваш компьютер забустится на 20-40%!⁠⁠

3 месяца назад

Энтузиасты успели заценить метод на S.T.A.L.K.E.R 2 и Cyberpunk 2077 — разница в производительности заметная, говорят тестировщики.

1. Открываем комп и переходим в раздел «Изоляция ядра» → находим и вырубаем параметр «Целостность памяти», который расходует до 30% производительности, но защищает ваше железо от вирусов.

На Windows 10 это делается так:

Параметры → Обновление и безопасность → Безопасность Windows → Безопасность устройства → Сведения об изоляции ядра → Отключите пункты «Целостность памяти»

На Windows 11:

Параметры → Конфиденциальность и защита → Безопасность Windows → Безопасность устройства → Сведения об изоляции ядра → Отключите пункты «Целостность памяти»

2. Далее переносим часть задач с CPU на GPU:

Пуск → Параметры → Система → Дисплей → Настройки графики → Даем разрешение и подрубаем галочку (см. 2 скрин)

3. Отключаем оверлей в Steam, который пожирает до 10% производительности:

Настройки → В игре → Снимаем галочку с оверлея

Готово, теперь играбельно.

Источник

Показать полностью 3
Программа Гайд Windows Telegram (ссылка) Приложение Технологии Оптимизация Работа Игры Ускорение FPS Тестирование Длиннопост
2
18
hypo69
hypo69
Лига Сисадминов
Серия Философия PowerShell

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

4 месяца назад
  • В первой части мы определили два ключевых понятия 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
[моё] Powershell Системное администрирование Автоматизация Инструкция IT Windows Админ Гайд Консоли Видео Без звука Короткие видео Длиннопост
0
17
DmitriitheFals
Лига Сисадминов
Серия Кудахтеры: Proxmox GmbH

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

4 месяца назад

Для лиги лени: общеизвестное и душное.

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS

Часть 4. Наконец переходим к Proxmox

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

Первый взгляд: чем отличается Proxmox от Broadcom ESXi и Microsoft Hyper-V?

Первый взгляд: требуемое место для установки.
Broadcom ESXi до недавнего времени отлично (с оговорками) работал с 32 Гб хоть USB флешки, хоть SD карточки, в псевдорейде, и без. При этом, хотя с версии 6.5 флешка умирала за 3-6 месяцев, спасибо криворуким разработчикам, но сам гипервизор, и виртуальные машины на нем, продолжали работать до планового выключения или миграции (обычно). Иногда с проблемами.
RAID для установки? Не нужен. Если умерла флешка, то берется новая, на нее за 10 минут ставиться ESXi той же версии. За еще 5 минут применяется или бекап конфигурации (родной, теплый, встроенный бекап, не забывайте делать), или profile с vCenter, или, если вы озаботились, то прогоняете хоть powershell (powercli) скрипт, хоть что угодно, и система снова в строю.
Можно и PXE boot делать, можно и FC \ iSCSI boot. Со всеми минусами сочетания FC и кривых рук. Известная история, как отформатировать раздел с виртуальными машинами, привлекая внимание санитаров.

С Microsoft Hyper-V другая история. Хотя там и был отдельный дистрибутив с Hyper-V only, но я не видел, чтобы его в таком виде как-то массово использовали. Так что готовьте 60-100 гигабайт на загрузку плюс данные плюс логи.
RAID для установки? Нуууу .. it depends on. Проблема выбора не очевидна, но.
Аппаратный рейд отнимает PCIe слот, снижает производительность NVME SSD дисков (ссылка 1, ссылка 2), и очень хочется заменить его на PCIe SAS или SATA переходник или как-то еще уйти от этого.
Внутри Microsoft Windows давно существует два подхода к RAID – это софтовый рейд от MS, и storage space \ storage space direct (этот требует лицензии DC).
Софтовый рейд работает, но для настройки зеркалирования «и загрузчика и раздела восстановления» нужно идти в diskpart и делать там всякое, причем diskpart еще и не автоматизируется (штатно, конечно можно написать свой обработчик). Сделать можно, и это работает, но в эксплуатации решение «вроде все ок, но как-то так себе». Разовая, но все равно ручная работа.
PXE и прочие варианты загрузки, конечно, тоже есть. Бекап – есть. Нужно ли при этом иметь RAID ? Не знаю. 20 лет назад, во времена 2003 \ 2008 Windows и дисков по 74 Гб, было проще сделать RAID. Сейчас мне проще настроить встроенный бекап, сделать один раз, и экспортировать задание со скриптом. Хотя это все равно колхозное решение.

Установленный для тестов и этой статьи в виртуальную машину Proxmox 8.4 занял 5 Гб, до установки обновлений, агентов, прочей обвязки.

RAID для установки? Нуууу .. it depends on. Проблема в чем. Встроенного бекапа конфигурации нет. Есть какие-то скрипты непонятной годности, их еще и читать надо. Конечно, есть LVM, но его настройка описана «как-то так». Можно заранее сделать mdadm boot on RAID1, но это все равно ручная работа и по перезагрузке, и по восстановлению. И BIOS надо настроить.

Эти все моменты «как бы есть, но как бы и не понятно», стали одним из поводов к написанию заметок, и поводом посидеть, подумать еще раз, погонять сценарии отказа в виртуальной среде. На физике было решено максимально просто: диски новые, сейчас делаем первую итерацию, для наших задач это не так важно, потом переделаем.
FEEL THE POWER OF AGILE! (нет)

(Переделывать, конечно, никто не собирался).

(Переделывать, конечно, никто не собирался).

Первый взгляд: Остаток используемого места.

Если у вас не отдельные диски «только под загрузку», и не планируется vSAN или Storage space direct, и нет системы хранения данных, то возникает вопрос «что делать с остальным местом на дисках».
Broadcom ESXi решает эту задачу в лоб – отделяет себе 138 Гб, а дальше делайте что хотите, только под vSAN такое не используйте.

Microsoft Hyper-V решает эту задачу не менее прямолинейно – делайте что хотите, но место под ОС будьте добры предоставить.

С PVE Proxmox Virtual Environment все .. не так очевидно.
Для тестов был сделан диск на 75 Гб, тонкий (динамический)

Если при установке сделать LVM, и потом посмотреть, что там вышло, то получим:
lsblk

NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda  8:0  0  70G  0 disk
├─sda2  8:2  0  512M  0 part /boot/efi
└─sda3  8:3  0 69.5G  0 part
├─pve-swap  252:0  0  8G  0 lvm  [SWAP]
├─pve-root  252:1  0 27.4G  0 lvm  /
├─pve-data_tmeta 252:2  0  1G  0 lvm
│ └─pve-data  252:4  0 23.5G  0 lvm
└─pve-data_tdata 252:3  0 23.5G  0 lvm
└─pve-data  252:4  0 23.5G  0 lvm

lvdisplay покажет:
--- Logical volume ---
LV Name  data
VG Name  pve
LV Size  <23.50 GiB

--- Logical volume ---
LV Path  /dev/pve/swap
LV Name  swap
VG Name  pve
LV Size  8.00 GiB

--- Logical volume ---
LV Path  /dev/pve/root
LV Name  root
VG Name  pve
LV Size  27.37 GiB

Понятно, что не понятно.

Если смотреть из GUI, то на LVM свободно 9 Гб, а на томе Data свободно все 23.
Как пишут, есть нюанс:
временные файлы при копировании создаются в корневом разделе в /var/tmp/
Но, у меня /dev/mapper/pve-root  создался размером 27G, занято всего 3.0G, так что переживу.

Давайте посмотрим, что с этим можно сделать, положу туда стопку ISO !
В GUI это все видно как:
/dev/mapper/pve-root  виден как Storage 'local' on node 'proxmox1'

И второй виден как Storage 'local-lvm' on node 'proxmox1'
при этом монтируется это все ничуть не очевидно, например
ISO images в GUI это /var/lib/vz/template/iso
CT templates в GUI это  /var/lib/vz/template/cache

CT templates позволяет закачивать только .tar.xz файлы, точнее закачивать то можно хоть ISO, но закачивать надо с именем .tar.xz , ну что за хрень.
Удалить файлы пачкой из GUI нельзя, создать папок под свои представления о прекрасном нельзя, что такое то. ГДЕ СВОБОДА?
В целом GUI не очень понятный, надо сидеть пытаться понять логику авторов.

Если я иду в node/disks, то вижу диски. Ок, понятно.
Если я иду в node/disk/lvm, то вижу, что создана LVM группа PVE, из трех томов, и свободно 9 Гб. Ну, окей.
Если я иду в node/disk/ lvm-thin, то вижу пустой pool, и .. и что мне с этим знанием делать?

Интересное наблюдение. Удаление файлов, хоть из GUI, хоть из CLI, не освобождает место на диске с точки зрения гипервизора. То есть изнутри VM место есть, но дальше, при попытке его сжать, он как был раздут до 29333222111, так и останется, вне зависимости от ключей для Optimize-VHD
Решение гуглится за минуту,
apt install zerofree
но «из коробки» ничего этого нет. Горько мне, горько.

Первичные исправления и обновления.

Для того, чтобы это австрийское изделие заработало в продуктиве, нужно:
Настроить на Nexus – proxy repo
Поменять VLAN и дефолтный IP. У меня оно взяло IP из первичных настроек DHCP, которого я не ожидал.
Настроить DNS
Настроить нужные pero на proxmox
Настроить NTP
И, наконец, обновиться.
Сменить настройку в CLI по умолчанию, куда прописался старый IP.
Сделать нормальную авторизацию, то есть дома – по сертификату с паролем, а в продуктиве, конечно, AD/Kerberos
Убрать надпись при входе

Вроде ничего не забыл, про пересылку логов событий, установки антивирусов и прочих Тайнос Агентос пусть безопасность думает, про Zabbix пусть мониторинг телеграфирует или графанирует.
Сначала сделаю руками. Конечно, надо сразу делать через Ansible.

Настроить на Nexus – proxy repo
Это самое простое.
Settings – Repo – create proxy - Distribution to fetch e.g. bionic : bookworm для 8.4, trixie для 9.
Save – done
Зачем? Чтобы ваши гипервизоры не ходили в интернеты. Но, если вам ОК, то пусть ходят.

Не забудьте выписать URL.
Очень смешно получается, если прописать не bookworm, а bionic, и прописать этот репозиторий в PVE. Обязательно попробуйте.

Поменять VLAN и дефолтный IP.
У меня оно взяло IP из первичных настроек DHCP, которых я не ожидал
Здесь, если делать руками, все максимально просто.
Открываем документацию, раздел Network Configuration, раздел Default Configuration using a Bridge, и делаем.
Для продуктива, конечно, открываем пример
Use VLAN 5 with bond0 for the Proxmox VE management IP with traditional Linux bridge ,
думаем, читаем, делаем.
nano /etc/network/interfaces
и даже делаем
If you made manual changes directly to the /etc/network/interfaces file, you can apply them by running
ifreload -a

Но при этом в GUI, во вкладке localnetwork, все равно откуда-то подтягивается старый адрес для vmbr0, причем в поле COMMENT, если зайти в сети хоста.
Я поленился его искать в описаниях, и исправил из GUI, и это был alias, куда я вообще смотрел.

Настроить DNS
Тут тоже ничего нового, nano /etc/resolv.conf

Настроить нужные pero на proxmox
nano /etc/apt/sources.list
nano /etc/apt/sources.list.d/ceph.list
nano /etc/apt/sources.list.d/pve-enterprise.list
Надеюсь, вы поняли, что надо туда прописать, после настройки Nexus

Настроить NTP
Нет ничего проще, открыли документацию, Time Synchronization, настроили.
nano /etc/chrony/chrony.conf , и посмотрели: chronyc tracking
В изолированной среде, разумеется, за временем придется идти или к NTP proxy, или к контроллерам домена.

И, наконец, обновиться.
Было: pveversion
pve-manager/8.4.0/ (running kernel: 6.8.12-9-pve)
стало
pve-manager/8.4.9/ (running kernel: 6.8.12-9-pve)

Вот что неприятно, так это то, что в
http://download.proxmox.com/debian/pve/dists/bookworm/InRelease
дату обновлений видно, а что там обновлено и исправлено – найти так сразу нельзя.
В changelog смотреть – развлечение тоже то еще.

Сменить настройку в CLI по умолчанию, куда прописался старый IP.
Это, понятно, /etc/hosts

Сделать нормальную авторизацию, то есть дома – по сертификату с паролем, а в продуктиве, конечно, AD/Kerberos
Тут тоже капитанство,
nano ~/.ssh/authorized_keys и готово
Во всех остальных случаях надо читать документацию, Syncing LDAP-Based Realms

Убрать надпись при входе
Тут тоже никакой магии. Прочитать это или это, и сделать. Или, все то же самое, но через pve-nag-buster, или, если вы совсем ленивы, то читаете тред на реддит, и делаете. Вплоть до рецепта remove_nag.yml
615-я строка, кому интересно, res.data.status.toLowerCase() \!== 'active'

Литература
Changing the default size of the ESX-OSData volume in ESXi 7.0
Change ESXi 7 System Storage Installation Size
boot on RAID1
Расширение корневого раздела (LVM) в Proxmox
Proxmox - Распределение дискового пространства
Переключение на бесплатные репозиторий в Proxmox VE

В следующей серии:
Actions step-by-step, Proxmox VE API

надеюсь, теги Proxmox и Ansible наконец добавятся

Показать полностью 2
[моё] Windows IT Linux Опыт Гайд Импортозамещение Microsoft Длиннопост
7
68
hypo69
hypo69
Лига Сисадминов
Серия Философия PowerShell

Философия PowerShell. Часть 3: Навигация и управление файловой системой. Знакомство с операторами логики и функциями⁠⁠

4 месяца назад

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

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


1. Концепция PowerShell Drives (PSDrives)

Прежде чем начать работать с файлами, важно понять концепцию PowerShell-дисков (PSDrives). В отличие от cmd.exe, где диски — это только буквы C:, D: и так далее, в PowerShell "диск" — это абстракция для доступа к любому иерархическому хранилищу данных.

> Get-PSDrive

Результат покажет не только физические диски, но и псевдо-диски:

Эта унификация означает, что вы можете "зайти" в реестр (Set-Location HKLM:) и получить список его ключей той же командой Get-ChildItem, которой получаете список файлов на диске C:. Это невероятно мощная концепция.

Примеры работы с различными провайдерами

  • Хранилище сертификатов (Cert:) Позволяет работать с цифровыми сертификатами так, будто это файлы в папках.

    Задача: Найти все SSL-сертификаты на локальной машине, срок действия которых истекает в ближайшие 30 дней.
    > Set-Location Cert:\LocalMachine\My
    > Get-ChildItem | Where-Object { $_.NotAfter -lt (Get-Date).AddDays(30) } | Select-Object Subject, NotAfter, Thumbprint

Переменные окружения (Env:) Предоставляет доступ к переменным окружения Windows (%PATH%, %windir% и т.д.) как к файлам.

Задача: Получить путь к системной папке Windows и добавить к нему путь к System32.

Получаем значение переменной windir:
> $windowsPath = (Get-Item Env:windir).Value
Собираем полный путь
> $system32Path = Join-Path -Path $windowsPath -ChildPath "System32"
> Write-Host $system32Path

Реестр Windows (HKCU: и HKLM:) Представьте, что реестр — это просто еще одна файловая система. Ветки — это папки, а параметры — свойства этих папок.

Задача: Узнать полное название установленной версии Windows из реестра.
Переходим в нужную ветку реестра:
> Set-Location "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
Получаем свойство (параметр реестра) с именем "ProductName"
> Get-ItemProperty -Path . -Name "ProductName"

Переменные сессии (Variable:) Позволяет управлять всеми переменными ($myVar, $PROFILE, $Error и т.д.), определенными в текущей сессии.

Задача: Найти все переменные, связанные с версией PowerShell ($PSVersionTable, $PSHOME и др.).
Находим все переменные, начинающиеся с "PS":
> Get-ChildItem Variable:PS*

Получаем значение конкретной переменной:
> Get-Variable -Name "PSVersionTable"

2. Навигация и анализ

Основы навигации
- Узнать, где мы находимся (возвращает объект PathInfo):
> Get-Location # Псевдонимы: gl, pwd

- Переход в корень диска C:
> Set-Location C:\ # Псевдонимы: sl, cd

- Переход в домашнюю папку текущего пользователя:
> Set-Location ~

Показать содержимое текущей папки (возвращает коллекцию объектов):
> Get-ChildItem # Псевдонимы: gci, ls, dir

- Рекурсивный поиск. Найти файл hosts в системе, игнорируя ошибки "Доступ запрещен":
> Get-ChildItem C:\ -Filter "hosts" -Recurse -ErrorAction SilentlyContinue

Ключ -Recurse (Рекурсивно): Заставляет командлет работать не только с указанным элементом, но и со всем его содержимым.

Ключ -ErrorAction SilentlyContinue: Инструкция игнорировать ошибки и продолжать работу молча.

Анализ дискового пространства

Классический пример мощи конвейера: найти, отсортировать, отформатировать и выбрать.


Подсказка как вводить длинные команды.

PowerShell позволяет разбивать их на несколько строк для удобства чтения.

  • После оператора конвейера (|): Это самый частый и удобный способ. Просто нажмите Enter после символа |. PowerShell увидит, что команда не завершена, и будет ждать продолжения на следующей строке.

  • В любом другом месте: Используйте символ обратной кавычки (backtick) ` в конце строки, а затем нажмите Enter. Этот символ говорит PowerShell: "Команда продолжится на следующей строке".

  • В редакторах (ISE, VS Code): Сочетание клавиш Shift+Enter обычно автоматически вставляет перенос строки, не запуская команду.

Фильтрация содержимого и операторы логики

- Найти все .exe файлы. Параметр -Filter работает очень быстро:
> Get-ChildItem C:\Windows -Filter "*.exe"

Get-ChildItem возвращает коллекцию объектов. Мы можем передать ее по конвейеру в Where-Object для дальнейшей фильтрации.

> Get-ChildItem C:\Windows | Where-Object { $_.PSIsContainer -eq $false }

Эта команда знакомит нас с одним из фундаментальных понятий в скриптах PowerShell: операторами сравнения.

Операторы сравнения и логики

Это специальные ключи для сравнения значений. Они всегда начинаются с дефиса (-) и являются основой для фильтрации данных в Where-Object и построения логики в if.

Тема операторов логики - очень обширная и я ей посвящу отдельную часть (или даже две). А пока вооружившись этими операторами, мы можем фильтровать, сортировать и выбирать нужные нам файлы и папки, используя всю мощь объектного конвейера.

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

  • Найти файл по точному имени (с учетом регистра):

    > Get-ChildItem C:\Windows\System32 -Recurse | Where-Object { $_.Name -eq "kernel32.dll" }

  • Найти все файлы, начинающиеся с "host", но не являющиеся папками:

    > Get-ChildItem C:\Windows\System32\drivers\etc | Where-Object { ($_.Name -like "host*") -and (-not $_.PSIsContainer) }

  • Найти все файлы журналов (.log), размер которых превышает 50 мегабайт:

    > Get-ChildItem C:\Windows\Logs -Filter "*.log" -Recurse | Where-Object { $_.Length -gt 50MB }

  • Найти все временные файлы (.tmp) и файлы бэкапов (.bak) для очистки: Оператор -in здесь гораздо элегантнее, чем несколько условий с -or.

    > $extensionsToDelete = ".tmp", ".bak", ".old" Get-ChildItem C:\Temp -Recurse | Where-Object { > $_.Extension -in $extensionsToDelete }

  • Найти все файлы Word (.docx), созданные за последнюю неделю:

    > $oneWeekAgo = (Get-Date).AddDays(-7) Get-ChildItem C:\Users\MyUser\Documents -Filter "*.docx" -Recurse | Where-Object { $_.CreationTime -ge $oneWeekAgo }

  • Найти пустые файлы (размером 0 байт), которые не являются папками:

    > Get-ChildItem C:\Downloads -Recurse | Where-Object { ($_.Length -eq 0) -and (-not $_.PSIsContainer) }

  • Найти все исполняемые файлы (.exe), которые были изменены в этом году, но НЕ в этом месяце. Этот сложный пример демонстрирует мощь комбинирования операторов.

    > Get-ChildItem C:\Program Files -Filter "*.exe" -Recurse |
    Where-Object {
    ($_.LastWriteTime.Year -eq (Get-Date).Year) -and ($_.LastWriteTime.Month -ne (Get-Date).Month)
    }

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

Будьте внимательны с рекурсией:

  • Если очень много файлов/папок — -Recurse может рекурсивно заходить в десятки тысяч элементов.

  • Символические ссылки / циклические ссылки — могут вызывать бесконечную рекурсию.

  • Файлы без прав доступа — могут блокировать выполнение.

4. Создание, управление и безопасное удаление

Создание, копирование и перемещение:


> New-Item -Path "C:\Temp\MyFolder" -ItemType Directory
> Add-Content -Path "C:\Temp\MyFolder\MyFile.txt" -Value "Первая строка"
> Copy-Item -Path "C:\Temp\MyFolder" -Destination "C:\Temp\MyFolder_Copy" -Recurse

Безопасное удаление

Remove-Item — потенциально опасный командлет, поэтому в PowerShell есть встроенные механизмы защиты. Ключ -WhatIf (Что если?): Ваш лучший друг. Он не выполняет команду, а лишь выводит в консоль сообщение о том, что бы произошло.

> Remove-Item C:\Temp\MyFolder -Recurse -Force -WhatIf

Только убедившись, что все верно, убираем -WhatIf и ВЫПОЛНЯЕМ команду
> Remove-Item C:\Temp\MyFolder -Recurse -Force


Введение в функции

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

Как использовать и сохранять функции

Существует три основных способа сделать ваши функции доступными:

Способ 1: Временный (для тестов) Вы можете набрать в консопли или просто скопировать и вставить весь код функции в консоль PowerShell. Функция будет доступна до закрытия этого окна.

Способ 2: Постоянный, но ручной (через .ps1 файл) Это самый распространенный способ для организации и обмена инструментами. Вы сохраняете функцию в файл .ps1 и загружаете ее в сессию, когда она вам нужна.

Способ 3: Автоматический (через профиль PowerShell) Это самый мощный способ для ваших личных, часто используемых инструментов.

Что такое профиль PowerShell? Это специальный скрипт .ps1, который PowerShell автоматически запускает каждый раз при старте. Все, что вы поместите в этот файл — псевдонимы, переменные и, конечно, функции — будет доступно в каждой вашей сессии по умолчанию.

Пример 1: Поиск дубликатов файлов

Давайте пройдем все шаги на примере функции Find-DuplicateFiles.

Шаг 1: Определяем код функции

Шаг 2 (Вариант А): Сохраняем в отдельный файл для ручной загрузки

Сохраняем
> Set-Content -Path ".\Find-DuplicateFiles.ps1" -Value $functionCode
Загружаем
> . .\Find-DuplicateFiles.ps1

Dot Sourcing (. .\Find-DuplicateFiles.ps1): Эта специальная команда выполняет скрипт в текущем контексте, делая все его функции и переменные доступными в вашей консоли.

Вызываем:
> Find-DuplicateFiles -Path "C:\Users\$env:USERNAME\Downloads"

  1. Шаг 2 (Вариант Б): Добавляем в профиль для автоматической загрузки Сделаем эту функцию доступной всегда.

    Что такое профиль PowerShell? Это специальный скрипт .ps1, который PowerShell автоматически запускает каждый раз при старте. Все, что вы поместите в этот файл — псевдонимы, переменные и функции — будет доступно в каждой вашей сессии по умолчанию.

  2. Находим путь к файлу профиля. PowerShell хранит его в переменной $PROFILE.

    1. > $PROFILE

    Создаем файл профиля, если он не существует:

    > if (-not (Test-Path $PROFILE)) { New-Item -Path $PROFILE -Type File -Force }

  3. Добавляем код нашей функции в конец файла профиля.

    Add-Content -Path $PROFILE -Value $functionCode

  4. Перезапустите PowerShell (или выполните . $PROFILE), и теперь ваша команда Find-DuplicateFiles будет доступна всегда, как и Get-ChildItem.

Пример 2: Создание ZIP-архива с резервной копией

Код для файла Backup-FolderToZip.ps1:

Детальный разбор функций я сделаю следующих частях.


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

1. Основные командлеты

Нужно прочитать содержимое текстового файла? Используйте Get-Content. Нужно полностью перезаписать файл новым содержимым? Используйте Set-Content. Нужно добавить строчку в лог-файл, не стирая старые данные? Используйте Add-Content. Нужно проверить, существует ли файл перед записью? Используйте Test-Path.

2. Специализированные командлеты для продвинутых задач

Когда базовых командлетов недостаточно, PowerShell предлагает более специализированные инструменты. Они не дублируют базовые, а расширяют ваши возможности.

  • Работа с путями (Path)

    • Join-Path: Безопасно объединяет части пути, автоматически вставляя \.

    • Split-Path: Разбивает путь на части (папка, имя файла, расширение).

    • Resolve-Path: Преобразует относительный путь (например, . или ..\files) в полный, абсолютный.

  • Работа со свойствами и содержимым (Item Properties and Content)

    • Get-ItemProperty: Получает свойства конкретного файла (например, IsReadOnly, CreationTime).

    • Set-ItemProperty: Изменяет свойства файла или папки.

    • Clear-Content: Удаляет всё содержимое из файла, но оставляет сам файл пустым.

  • Продвинутая навигация (Location Stack)

    • Push-Location: "Запоминает" текущую директорию и переходит в новую.

    • Pop-Location: Возвращается в директорию, которую "запомнил" Push-Location.

  • Управление правами доступа (ACL)

    • Get-Acl: Получает список прав доступа (ACL) для файла или папки.

    • Set-Acl: Устанавливает права доступа для файла или папки (сложная операция).

Нужно изменить атрибут файла, например, сделать его «только для чтения»? Используйте Set-ItemProperty. Нужно полностью очистить лог-файл, не удаляя его? Используйте Clear-Content. Нужно временно перейти в другую папку в скрипте, а потом гарантированно вернуться назад? Используйте Push-Location и Pop-Location. Нужно узнать, кто имеет права на доступ к папке? Используйте Get-Acl.

В следующей части мы узнаем, как работать с другими хранилищами данных, такими как реестр Windows, используя те же самые подходы, углубимся в понятие функций, рассмотрим операторы логики и научимся интерактивно взаимодействовать с оболочкой

Философия PowerShell на github:

История и первый командлет

Часть 2: Конвейер (Pipeline), переменные, Get-Member, файл .ps1 и экспорт результатов. Исходники ко второй части:
system_monitor.ps1

Часть 3: Навигация и управление файловой системой.
Исходники к третьей части:
Find-DuplicateFiles.ps1
Backup-FolderToZip.ps1

Полезно? Подпишись.
Понравилось — ставь «+»
Удачи! 🚀

UPD:

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

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