Применение PowerShell для автоматизации управления и администрирования Windows

Windows / Сетевые настройки / Безопасность 9-12-2024, 00:56 Bormotoon 8 0

 Применение PowerShell для автоматизации управления и администрирования Windows

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

1. Получение информации о системе

Зачем это нужно: Для диагностики и мониторинга состояния системы.

Что будет происходить: Получение информации о текущей конфигурации системы.

Get-ComputerInfo

Вывод консоли:

CsName              : DESKTOP-123456
WindowsBuildLabEx  : 19041.1.amd64fre.vb_release.191206-1406
WindowsVersion     : 2004
OsLanguage         : 1033
WindowsEdition     : Windows 10 Pro
...

Смежная команда: Изменение имени компьютера.

Rename-Computer -NewName "NewComputerName"

Вывод консоли:

WARNING: The changes will take effect after you restart the computer NewComputerName.

2. Управление службами

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

Что будет происходить: Остановка службы "Print Spooler".

Stop-Service -Name "Spooler"

Вывод консоли:

Status   Name               DisplayName
------   ----               -----------
Stopped  Spooler            Print Spooler

Смежная команда: Запуск службы "Print Spooler".

Start-Service -Name "Spooler"

Вывод консоли:

Status   Name               DisplayName
------   ----               -----------
Running  Spooler            Print Spooler

3. Управление процессами

Зачем это нужно: Для мониторинга и управления запущенными процессами.

Что будет происходить: Получение списка всех запущенных процессов.

Get-Process

Вывод консоли:

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    234      12     2345       5678       0.12    1234  0  notepad
...

Смежная команда: Завершение процесса "notepad".

Stop-Process -Name "notepad"

Вывод консоли:

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------

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

Зачем это нужно: Для создания, удаления и управления пользователями.

Что будет происходить: Создание нового пользователя.

New-LocalUser -Name "TestUser" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)

Вывод консоли:

Name          Enabled Description
----          ------- -----------
TestUser      True

Смежная команда: Удаление пользователя "TestUser".

Remove-LocalUser -Name "TestUser"

Вывод консоли:

Confirm
Are you sure you want to perform this action?
Performing the operation "Remove" on target "TestUser".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

5. Управление группами

Зачем это нужно: Для создания, удаления и управления группами пользователей.

Что будет происходить: Создание новой группы.

New-LocalGroup -Name "TestGroup"

Вывод консоли:

Name          Description
----          -----------
TestGroup

Смежная команда: Удаление группы "TestGroup".

Remove-LocalGroup -Name "TestGroup"

Вывод консоли:

Confirm
Are you sure you want to perform this action?
Performing the operation "Remove" on target "TestGroup".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

6. Управление файлами и папками

Зачем это нужно: Для копирования, перемещения и удаления файлов и папок.

Что будет происходить: Копирование файла.

Copy-Item -Path "C:\source\file.txt" -Destination "C:\destination\file.txt"

Вывод консоли:

    Directory: C:\destination

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        12/9/2024   1:00 PM           1234 file.txt

Смежная команда: Удаление файла.

Remove-Item -Path "C:\destination\file.txt"

Вывод консоли:

Confirm
The item at C:\destination\file.txt has children and the Recurse parameter was not specified. If you continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

7. Управление реестром

Зачем это нужно: Для изменения системных настроек и параметров.

Что будет происходить: Создание нового ключа реестра.

New-Item -Path "HKCU:\Software\TestKey"

Вывод консоли:

    Hive: HKEY_CURRENT_USER\Software

Name                           Property
----                           --------
TestKey

Смежная команда: Удаление ключа реестра.

Remove-Item -Path "HKCU:\Software\TestKey"

Вывод консоли:

Confirm
The item at HKCU:\Software\TestKey has children and the Recurse parameter was not specified. If you continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

8. Управление сетью

Зачем это нужно: Для настройки сетевых параметров и управления сетевыми подключениями.

Что будет происходить: Получение списка всех сетевых адаптеров.

Get-NetAdapter

Вывод консоли:

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                 Intel(R) Ethernet Connection I219-V     12      Up           00-1A-2B-3C-4D-5E       1 Gbps
...

Смежная команда: Отключение сетевого адаптера.

Disable-NetAdapter -Name "Ethernet"

Вывод консоли:

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                 Intel(R) Ethernet Connection I219-V     12      Disconnected  00-1A-2B-3C-4D-5E       1 Gbps

9. Управление обновлениями

Зачем это нужно: Для установки и управления обновлениями Windows.

Что будет происходить: Поиск доступных обновлений.

Get-WindowsUpdate

Вывод консоли:

ComputerName Status     UpdateSource       InstalledOn
------------ ------     ------------       -----------
DESKTOP-1234 Available  Microsoft Update  12/9/2024 1:00 PM
...

Смежная команда: Установка обновлений.

Install-WindowsUpdate

Вывод консоли:

ComputerName Status     UpdateSource       InstalledOn
------------ ------     ------------       -----------
DESKTOP-1234 Installed  Microsoft Update  12/9/2024 1:05 PM
...

10. Управление дисками

Зачем это нужно: Для управления дисковыми пространствами и файловыми системами.

Что будет происходить: Получение информации о дисках.

Get-Disk

Вывод консоли:

Number Friendly Name     OperationalStatus         Total Size     Partition Style
------ -------------     -----------------         ----------     ---------------
0      Virtual HD        Online                    120 GB         MBR
...

Смежная команда: Инициализация диска.

Initialize-Disk -Number 1

Вывод консоли:

Number Friendly Name     OperationalStatus         Total Size     Partition Style
------ -------------     -----------------         ----------     ---------------
1      Virtual HD        Online                    120 GB         GPT

11. Управление задачами

Зачем это нужно: Для создания и управления запланированными задачами.

Что будет происходить: Создание новой запланированной задачи.

$action = New-ScheduledTaskAction -Execute "notepad.exe"
$trigger = New-ScheduledTaskTrigger -Daily -At 9AM
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "OpenNotepad"

Вывод консоли:

TaskPath                                       TaskName                          PSComputerName
--------                                       --------                          --------------
\                                              OpenNotepad                       DESKTOP-123456

Смежная команда: Удаление запланированной задачи.

Unregister-ScheduledTask -TaskName "OpenNotepad"

Вывод консоли:

Confirm
Are you sure you want to perform this action?
Performing the operation "Unregister" on target "OpenNotepad".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

12. Управление журналами событий

Зачем это нужно: Для мониторинга и анализа системных событий.

Что будет происходить: Получение последних 10 записей из журнала событий.

Get-EventLog -LogName System -Newest 10

Вывод консоли:

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
   12345 12/9/2024 1:00 PM Information Service Control Manager 7034     The Print Spooler service entered the stopped state.
...

Смежная команда: Очистка журнала событий.

Clear-EventLog -LogName System

Вывод консоли:

Confirm
Are you sure you want to perform this action?
Performing the operation "Clear" on target "System".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

13. Управление IIS

Зачем это нужно: Для настройки и управления веб-сервером IIS.

Что будет происходить: Получение списка всех сайтов IIS.

Import-Module WebAdministration
Get-Website

Вывод консоли:

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1   Started    %SystemDrive%\inetpub\wwwroot  http *:80:
...

Смежная команда: Создание нового сайта.

New-Website -Name "NewSite" -PhysicalPath "C:\inetpub\wwwroot\NewSite" -Port 8080

Вывод консоли:

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
NewSite          2   Started    C:\inetpub\wwwroot\NewSite     http *:8080:

14. Управление Active Directory

Зачем это нужно: Для управления пользователями и компьютерами в домене.

Что будет происходить: Получение списка всех пользователей в домене.

Get-ADUser -Filter *

Вывод консоли:

DistinguishedName : CN=John Doe,OU=Users,DC=domain,DC=com
Name              : John Doe
ObjectClass       : user
ObjectGUID        : 12345678-1234-1234-1234-1234567890ab
...

Смежная команда: Создание нового пользователя в Active Directory.

New-ADUser -Name "TestUser" -SamAccountName "TestUser" -UserPrincipalName "testuser@domain.com" -PasswordNeverExpires $true -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) -Enabled $true

Вывод консоли:

DistinguishedName : CN=TestUser,OU=Users,DC=domain,DC=com
Name              : TestUser
ObjectClass       : user
ObjectGUID        : 12345678-1234-1234-1234-1234567890ab
...

15. Управление Hyper-V

Зачем это нужно: Для управления виртуальными машинами.

Что будет происходить: Получение списка всех виртуальных машин.

Get-VM

Вывод консоли:

Name        State CPUUsage(%) MemoryAssigned(M) Uptime   Status             Version
----        ----- ----------- ----------------- ------   ------             -------
TestVM      Running 0          2048             00:00:10 Operating normally 8.0
...

Смежная команда: Создание новой виртуальной машины.

New-VM -Name "NewVM" -MemoryStartupBytes 2GB -Generation 2 -SwitchName "Default Switch"

Вывод консоли:

Name        State CPUUsage(%) MemoryAssigned(M) Uptime   Status             Version
----        ----- ----------- ----------------- ------   ------             -------
NewVM       Off   0            2048             00:00:00 Operating normally 8.0

16. Управление SQL Server

Зачем это нужно: Для управления базами данных и выполнения запросов.

Что будет происходить: Получение списка всех баз данных.

Invoke-Sqlcmd -Query "SELECT name FROM sys.databases"

Вывод консоли:

name
----
master
tempdb
model
msdb
...

Смежная команда: Создание новой базы данных.

Invoke-Sqlcmd -Query "CREATE DATABASE NewDatabase"

Вывод консоли:

name
----
master
tempdb
model
msdb
NewDatabase

17. Управление Exchange Server

Зачем это нужно: Для управления почтовыми ящиками и настройками.

Что будет происходить: Получение списка всех почтовых ящиков.

Get-Mailbox

Вывод консоли:

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
John Doe                  jdoe                 EXCH01           50 GB (53,687,091,200 bytes)
...

Смежная команда: Создание нового почтового ящика.

New-Mailbox -Name "TestUser" -Alias "TestUser" -UserPrincipalName "testuser@domain.com" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)

Вывод консоли:

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
TestUser                  TestUser             EXCH01           50 GB (53,687,091,200 bytes)

18. Управление SharePoint

Зачем это нужно: Для управления сайтами и содержимым SharePoint.

Что будет происходить: Получение списка всех сайтов.

Get-SPSite -Limit All

Вывод консоли:

Url                                       Owner                          OwnerEmail
---                                       -----                          ----------
http://sharepoint/sites/team              DOMAIN\jdoe                    jdoe@domain.com
...

Смежная команда: Создание нового сайта.

New-SPSite -Url "http://sharepoint/sites/NewSite" -OwnerAlias "DOMAIN\jdoe" -Template "STS#0"

Вывод консоли:

Url                                       Owner                          OwnerEmail
---                                       -----                          ----------
http://sharepoint/sites/NewSite           DOMAIN\jdoe                    jdoe@domain.com

19. Управление Azure

Зачем это нужно: Для управления ресурсами в облаке Azure.

Что будет происходить: Получение списка всех виртуальных машин.

Get-AzVM

Вывод консоли:

ResourceGroupName        : MyResourceGroup
Id                       : /subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyVM
VmId                     : 12345678-1234-1234-1234-1234567890ab
Name                     : MyVM
...

Смежная команда: Создание новой виртуальной машины.

New-AzVM -ResourceGroupName "MyResourceGroup" -Name "NewVM" -Location "EastUS" -VirtualNetworkName "MyVNet" -SubnetName "Default" -SecurityGroupName "MyNSG" -PublicIpAddressName "MyPublicIP" -OpenPorts 80,3389

Вывод консоли:

ResourceGroupName        : MyResourceGroup
Id                       : /subscriptions/12345678-1234-1234-1234-1234567890ab/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/NewVM
VmId                     : 12345678-1234-1234-1234-1234567890ab
Name                     : NewVM
...

20. Управление Office 365

Зачем это нужно: Для управления пользователями и лицензиями Office 365.

Что будет происходить: Получение списка всех пользователей.

Get-MsolUser

Вывод консоли:

UserPrincipalName                    DisplayName    isLicensed
-----------------                    -----------    -----------
jdoe@domain.com                      John Doe       True
...

Смежная команда: Создание нового пользователя.

New-MsolUser -UserPrincipalName "testuser@domain.com" -DisplayName "Test User" -Password "P@ssw0rd" -ForceChangePassword $true

Вывод консоли:

UserPrincipalName                    DisplayName    isLicensed
-----------------                    -----------    -----------
testuser@domain.com                  Test User      False

Заключение

PowerShell предоставляет мощные возможности для автоматизации управления и администрирования Windows. С его помощью можно выполнять широкий спектр задач, от простого управления файлами и процессами до сложных операций с Active Directory, Hyper-V, SQL Server и другими системами. Использование PowerShell позволяет значительно повысить эффективность работы системных администраторов и упростить управление ИТ-инфраструктурой.


Источник: IT Фишки
Похожие новости
Применение PowerShell для автоматизации рутинных задач в Windows

Применение PowerShell для автоматизации рутинных задач в Windows PowerShell — это мощный инструмент...

Подробнее
Обзор эмуляторов терминала для Android: Termux, UserLAnd, JuiceSSH, ConnectBot, Linux Deploy

Обзор эмуляторов терминала для Android: Termux, UserLAnd, JuiceSSH, ConnectBot, Linux Deploy В этой статье...

Подробнее
Обзор дистрибутивов Linux для старых компьютеров

Обзор дистрибутивов Linux для старых компьютеров С развитием технологий и увеличением требований к...

Подробнее
Настройка Xbox Series для удалённой игры

Руководство для новичков: Настройка домашнего роутера, мобильных устройств и консоли Xbox Series для...

Подробнее
Обзор встроенных утилит в macOS

Обзор встроенных утилит в macOS macOS — это операционная система, которая предоставляет пользователям...

Подробнее
Комментарии (0)
Новые комментарии
Оцените работу движка
Календарь
«    Февраль 2025    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
2425262728 
Облако тегов