Примеры использования PowerShell в Windows Server Core

PowerShell — мощная командная оболочка и язык сценариев, разработанный Microsoft для управления и автоматизации задач в операционных системах Windows. Данный инструмент позволяет выполнять административные команды, управлять файлами, службами, сетями и пользователями через текстовые команды или скрипты.

Основное преимущество PowerShell — это возможность работать с объектами .NET, что делает его более гибким по сравнению с традиционными командными оболочками. PowerShell используется как на локальных машинах, так и для управления удалёнными серверами, включая Windows Server Core, что особенно важно в средах без графического интерфейса. Он поддерживает как интерактивную работу, так и написание сложных скриптов для автоматизации административных процессов.

Давайте рассмотрим несколько примеров использования PowerShell в Windows Server Core 2019.

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

При подключении по RDP к виртуальной машине, работающей под управлением Windows Server Core 2019, по умолчанию вы попадаете в интерфейс командной строки. Чтобы запустить PowerShell, необходимо выполнить команду powershell.

Запуск PowerShell из командной строки - Примеры использования PowerShell

О том, что PowerShell запущен, говорит наличие символов PS в начале строки. Здесь вы можете запустить какую-либо команду PowerShell. Например, для вывода на экран версии данной оболочки используйте команду:

$PSVersionTable.PSVersion

Вывод версии PowerShell - Примеры использования PowerShell

Автоматизация резервного копирования данных

Если есть необходимость создания PowerShell-скрипта, то в этом случае удобно использовать текстовый редактор Notepad. По умолчанию Notepad предустановлен в Windows Server Core на виртуальных серверах UltraVDS.

Для запуска NotePad наберите в оболочке PowerShell команду:

notepad

В качестве примера разберём создание скрипта для автоматизации резервного копирования данных. В данным случае содержимое скрипта выглядит следующим образом:

# Путь к каталогу с исходными данными

$sourcePath = "C:\DATA"

# Путь к каталогу для резервного копирования

$backupPath = "C:\BACKUP"

# Создание каталога с текущей датой

$date = Get-Date -Format "yyyy-MM-dd"

$destination = Join-Path $backupPath $date

New-Item -Path $destination -ItemType Directory

# Копирование данных

Copy-Item -Path $sourcePath -Destination $destination -Recurse

# Удаление старых резервных копий старше 7 дней

Get-ChildItem $backupPath | Where-Object { $_.CreationTime -lt (Get-Date).AddDays(-7) } | Remove-Item -Recurse -Force

Здесь каталог C:\DATA будет сохраняться в папке C:\BACKUP с именем, соответствующим текущей дате. Также скрипт будет удалять из каталога C:\BACKUP данные, время создания которых старше семи дней.

Затем сохраните скрипт, например, в папку C:\SCRIPTS под именем script1.ps1.

Сохранение файла скрипта в Notepad

Далее перейдите в каталог C:\SCRIPTS:

cd C:\SCRIPTS

После чего следующей командой запустите скрипт:

.\script1.ps1

Мониторинг ресурсов сервера

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

В данном случае команда, содержащаяся в скрипте, использует командлет Get-WmiObject для получения информации из класса Win32_Processor, который предоставляет данные о процессоре на сервере.

# Мониторинг использования процессора
Get-WmiObject -Class Win32_Processor | Select-Object -Property Name,
LoadPercentage

При этом командлет выводит на экран два свойства:

  • Name — отображает название процессора;
  • LoadPercentage — показывает процент загрузки процессора на данный момент.

Сохраните скрипт под именем, например, script2.ps1 и запустите его следующей командой:

.\script2.ps1

В нашем случае видно, что процессор севера Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz имеет текущую загрузку 2%:

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

Создание задач в Task Scheduler

Планировщик задач Windows Server Core позволяет автоматически запускать PowerShell-скрипты в указанное время или при выполнении определённых условий.

Например, вы можете создать задание для запуска скрипта script1.ps1:

$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-File C:\SCRIPTS\script1.ps1'

Ежедневно в 03:00:

$trigger = New-ScheduledTaskTrigger -Daily -At 3am

И при помощи командлета Register-ScheduledTask зарегистрировать задание с именем BackupTask в Планировщике задач:

Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "BackupTask" -Description "Daily Backup Task"

Результат выполнения этих трёх команд — создание в Планировщике нового задания:

Создание задачи в Планировщике при помощи PowerShell

Управление пользователями

С помощью PowerShell можно быстро создать пользователя, а также управлять учётными записями в Active Directory или на локальном сервере.

Так выглядит пример создания нового пользователя с именем Your-User и паролем Password123 с последующим добавлением данной учётной записи в группу Administrators:

# Создание нового пользователя
New-LocalUser -Name "Your-User" -Password 
(ConvertTo-SecureString "Password123" -AsPlainText -Force)

# Добавление пользователя в группу
Add-LocalGroupMember -Group "Administrators" -Member "Your-User"

На скриншоте ниже — результат работы такого скрипта:

Создание пользователя при помощи PowerShell - Примеры использования PowerShell

Заключение

Таким образом, рассмотрев некоторые примеры использования PowerShell, мы увидели, что данная командная оболочка — довольно мощный инструмент для автоматизации административных задач на Windows Server. PowerShel позволяет эффективно управлять серверами и автоматизировать процессы, например, резервное копирование или управление пользователями.

Очевидно, что PowerShell особенно эффективен в Windows Server Core, где использование графической оболочки сведено к минимуму.

Вам также может понравиться