Применение 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 — это мощный инструмент...
ПодробнееОбзор эмуляторов терминала для Android: Termux, UserLAnd, JuiceSSH, ConnectBot, Linux Deploy В этой статье...
ПодробнееОбзор дистрибутивов Linux для старых компьютеров С развитием технологий и увеличением требований к...
ПодробнееРуководство для новичков: Настройка домашнего роутера, мобильных устройств и консоли Xbox Series для...
ПодробнееОбзор встроенных утилит в macOS macOS — это операционная система, которая предоставляет пользователям...
Подробнее