-
Notifications
You must be signed in to change notification settings - Fork 1
/
lesson1.ps1
122 lines (74 loc) · 4.45 KB
/
lesson1.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Урок №1: Командлеты
#
# 1.1 Запуск Powershell
#
# <WIN> + R, в открывшимся окне написать powershell
# кнопка поиск на панели быстрого запуска + powershell
# Для запуска от имени администратора (правой кнопкой по ярлыку и выбрать "запуск от имени администратора") или:
Start-Process Powershell -verb runas
# Для просмотра текущей версии powershell
$PSVersionTable
# По-умолчанию запуск powershell скриптов заблокирован, для разблокировки необходимо изменить политику запуска:
Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned
# Для удаленного выполнения Powershell команд необходимо включить соответствующую функцию на удаленном ПК (включена по-умолчанию)
# в Windows Server
Enable-PSRemoting
# Пользовательские настройки Powershell могут находиться в профиле пользователя, который загружается в момент запуска powershell
$Profile
#
# 1.2 Командлеты
#
# <действие>-<объект> -Parameter <аргумент>
# Для проверки существования пути
Test-Path $Profile
# Для создания нового профиля воспользуемся командлетом New-Item
New-Item -path $Profile -type file -force
# Создадим файл и директорию в текущей
New-Item -path .\test_file.txt -type file
New-Item -path .\test_directory -type directory
# В профиль можно добавить команды, которые будут выполняться каждый раз при открытии powershell
notepad $Profile
Clear-Host # CTRL + L
Write-Host "`t `t `t Attention!"
Write-Host "`t `t use this pc carefully!"
Write-Host " "
Write-Host " "
Write-Output "Test output"
Write-Error "Error"
# Для получения списка процессов или информации о конкретном процессе
Get-Process
Get-Process -name "*host"
# Для запуска процесса используем Start-Process, для остановки - Stop-Process
Start-Process -Name "notepad"
Stop-Process -Name "notepad"
# Для получения справки по командлету
Get-Help
Get-Help Get-Process
# Мультистраничный вариант справки
Get-Process -?
# Для получения примера использования командлета из справки
Get-Help Start-Process -examples
# Для получения детальной справки
Get-Help Start-Process -detailed
Get-Help Start-Process -full
# Для отображения справки в отдельном окне
Get-Help Start-Process -ShowWindow
Get-Help Start-Process -online
# Для обновления справочных материалов (запускать в режиме администратора)
Update-Help
# Для получения списка командлетов
Get-Command
Get-Command | more # вывод постранично
# Для получения списка доступных модулей
Get-Module -ListAvailable
# Для форматирования вывода
Get-Process | Format-Wide -column 1 # отобразит содержимое в одной колонке
Get-Process | Format-Table # отобразить в виде таблицы (по-умолчанию для Get-Process)
# Вывод только нужных колонок с подстройкой под размер окна
Get-Process -Name powershell | Format-Table -property Company,Name,Id,Path -AutoSize
# 1.3 | Конвеер, канал (pipe) перенаправляет вывод одной команды на вход другой
Get-ChildItem | Sort-Object # отсортирует результат по алфавиту
# Домашнее задание (дополнительная информация)
# https://habrahabr.ru/company/netwrix/blog/158943/
# http://info-comp.ru/sisadminst/546-windows-powershell-basics.html