Лабораторная работа №1. Начало работы с Windows
PowerShell.
Среда Windows PowerShell – это ориентированная на
задачи оболочка командной строки и язык сценариев, разработанный для системного
администрирования. Несмотря на внешнее сходство с традиционным cmd.exe,
PowerShell является превосходной средой для выполнения сценариев
предназначенных для автоматизации
различных задач, будь то копирование файлов или создание объектов в Active
Directory.
Установка PowerShell.
Первым делом нужно загрузить PowerShell, если быть
точнее, то установить среду управления Windows Management Framework.
Для систем, таких как Windows XP, Windows Server
2003, Windows Vista и Windows Server 2008, пакет установки – https://support.microsoft.com/ru—ru/kb/968929.
Для Windows 7 и Windows Server 2008 R2 ничего
устанавливать не требуется, так как Powershell и WinRM является неотъемлемым
компонентом системы.
Первый запуск.
Два способа чтобы
запустить PowerShell:
1)
Пуск → Все программы → Стандартные → Windows
PowerShell.
2)
Win + R → ввести PowerShell → ok.
Строка в PowerShell вычисляемая. Для теста введите
120*2+17-3, нажмите Enter. PS
C:\Windows\system32> 120*2+17-3
254
Так же PowerShell понимает единицы измерения. Для
теста введите 50GB / 6600MB, нажмите Enter.
PS C:\Windows\system32>
50GB / 6600MB
7,75757575757576
В PowerShell можно считать
столбиком. Для теста введите 67+, нажмите Enter, введите 5-, нажмите Enter,
введите 1, нажмите Enter. Чтобы получить результат нажмите Enter ещѐ раз.
PS C:\Windows\system32> 67+
>> 5-
>> 1
>>
71
В PowerShell поддерживаются все методы
редактирования, унаследованные от командной строки Windows.
1) Клавиши
F5 (команда назад) и клавиша F8 (команда вперѐд) аналогичны стрелкам
вверх и вниз.
2) Введите
символ «d» и нажмите F8, PowerShell подставит ранее введѐнную вами
команду «dir».
3)
Клавиша F7 выдаст список введѐнных команд.
4)
Очистить историю можно нажав Alt+F7
Изучать PowerShell следует
со списка доступных команд.
Введите Get-Command, нажмите Enter. PS C:\Windows\system32> Get-Command
|
CommandType |
Name |
Definition |
||||||
|
———— |
—- |
———- |
||||||
|
Alias |
% |
ForEach-Object |
||||||
|
Alias |
? |
Where-Object |
||||||
|
Function |
A: |
Set-Location A: |
||||||
|
Alias … |
ac |
Add-Content |
||||||
|
Function |
Y: |
Set-Location Y: |
||||||
|
Function |
Z: |
Set-Location Z: |
||||||
|
В |
PowerShell |
команды представлены |
как |
комбинации |
«глагол- |
существительное». Объясняется это
тем, что специалисты Microsoft хотели использовать единообразную схему
именования. Глагол указывает на действие, которое предстоит совершить, а
существительное — на тип объекта, на который будет направлено действие.
Для запроса списка команд по маске
можно воспользоваться звѐздочкой «*«. Введите Get-Command Out*, нажмите
Enter.
PS
C:\Windows\system32> Get-Command Out*
|
CommandType |
Name |
Definition |
|
|
———— |
—- |
———- |
|
|
Cmdlet |
Out-Default |
Out-Default [-InputObject <PSObject>] [-Verbose]… |
|
|
Cmdlet |
Out-File |
Out-File [-FilePath] <String> |
|
|
Cmdlet |
Out-GridView |
Out-GridView [-InputObject <PSObject>] [-Title <… |
|
|
Cmdlet |
Out-Host |
Out-Host [-Paging] [-InputObject <PSObject>] [-V… |
|
|
Cmdlet |
Out-Null |
Out-Null [-InputObject |
|
|
Cmdlet |
Out-Printer |
Out-Printer [[-Name] <String>] [-InputObject <PS… |
|
|
Cmdlet |
Out-String |
Out-String [-Stream] [-Width <Int32>] [-InputObj… |
Справка.
Получить справку по определѐнной команде можно
введя команду: Get-Help command_name (Enter). Можно воспользоваться
звѐздочкой «*» и получить список команд с описание того что они
выполняют.
PS
C:\Windows\system32> Get-Help Get-*
|
Name Category |
Synopsis |
|
—- ——— |
——— |
|
Get-WinEvent Cmdlet |
Получает события из журналов событий |
|
Get-Counter Cmdlet |
Получает данные счетчиков |
|
Get-WSManCredSSP Cmdlet |
Получает связанную с поставщиком услуг безопасности… |
Чтобы получить справку по
запрашиваемой функции или командлету с примерами его использования необходимо
ввести команду Get-Help Get-Process – Examples.
PS C:\Windows\system32>
Get-Help Get-Process -Examples
ИМЯ
Get-Process
ОПИСАНИЕ
Получает процессы,
выполняющиеся на локальном или удаленном компьютере.
—————————
ПРИМЕР 1 —————————
C:\PS>Get-Process
Описание
————
Эта команда извлекает
список всех выполняющихся на локальном компьютере процессов.
Определение каждого
столбца см. разделе в дополнительных примечаний в справке для командлета
Get-Help.
—————————
ПРИМЕР 2 ————————— C:\PS>Get-Process winword, explorer |
format-list *
Описание
————
Эта
команда извлекает все доступные сведения о процессах Winword и Explorer на
компьютере. Для задания процессов в команде используется параметр Name, однако
он является необязательным и в данном случае опущен. Оператор конвейера (|)
передает данные командлету Format-List, который отображает все доступные
свойства (*) объектов процессов Winword и Explorer. Процессы также могут
задаваться с помощью идентификаторов, Например, «get-process -id 664,
2060».
…
Создание скриптов.
Скрипт на PowerShell является файлом с расширением
.ps1. Создаѐм текстовый файл, расширение .txt меняем на .ps1. По
умолчанию, из соображений безопасности, при двойном клике он не запускается, а
открывается в текстовом редакторе.
Создайте скрипт со следующим текстом: Write-Host
«Hello!» и запустите его.
Подобное поведение связано с тем, что в настройках по
умолчанию, считается, что только команды могут выполняться интерактивно, а
выполнение скриптов запрещено.
Естественно, в случае необходимости уровень
выполнения политики (по умолчанию установлен Restricted) можно изменить.
Установка уровня политики ExecutionPolicy.
Данное действие можно смело назвать процедурой
настройки PowerShell с целью изменения текущего уровня безопасности, который
задаѐтся параметром «ExecutionPolicy», который можно изменить в реестре.
Он расположен по
следующему пути:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microso
ft.PowerShell]
Однако, гораздо проще воспользоваться встроенной в PowerShell
командой:
Get-ExecutionPolicy
Существует шесть уровней политики ExecutionPolicy: Restricted
Это конфигурация PowerShell по умолчанию. Этот
вариант означает, что никакие скрипты не могут быть запущены. Единственное, что
можно делать в
PowerShell при
такой настройке — это выполнять одиночные команды.
AllSigned
Эта настройка позволяет выполнять скрипты. Скрипт
должен быть подписан сертификатом от доверенного источника. Перед выполнением
подписанного скрипта будет выводится предупреждение.
RemoteSigned
Эта настройка позволяет выполнять скрипты, но
требует, чтобы все скрипты и файлы конфигурации, загруженные из Интернета, были
подписаны сертификатом от доверенного источника. Скриптам, выполняющимся на
локальном компьютере, подпись не требуется. Предупреждений перед запуском
скриптов не выводится.
Unrestricted
Такая настройка используется чеще всего но она
потенциально опасна и крайне не рекомендована. Такая настройка позволяет
запускать неподписанные скрипты, включая загруженые из Интернета.
Bypass
Ничто не блокируется и никаких предупреждений не
выводится. Undefined
Удаляет присвоенную
в настоящий момент политику.
В случае необходимости уровень разрешений запуска
изменяется командой: SetExecutionPolicy RemoteSigned.
Когда выполняются сценарии собственного написания,
следует использовать RemoteSigned. В случае, когда выполняются сценарии,
полученные из внешних источников, стоит использовать AllSigned.
PS C:\Windows\system32>
Set-ExecutionPolicy RemoteSigned
Изменение политики
выполнения
Политика выполнения
обеспечивает защиту компьютера от ненадежных скриптов. Изменение политики
выполнения может подвергнуть компьютер риску нарушения системы безопасности,
как описано в разделе справки, вызываемом командой about_Execution_Policies.
Изменить политику выполнения?
[Y] Да — Y [N] Нет —
N [S] Приостановить — S [?] Справка (значением по умолчанию является
«Y»): y
После изменения политики безопасности можно запустить первый
скрипт.
Прописав путь к
скрипту и его имя, а далее нажать Enter.
1. Цель работы
Получение
практических навыков работы с папками
и файлами с использованием инструментария
Windows
PowerShell.
Ознакомление с методами доступа к
объектам реестра посредством Windows
PowerShell.
2. Теоретические сведения Работа с файлами и папками
В PowerShell
есть командлеты Item
которые позволяют создавать (New-Item),
удалять (Remove-Item), копировать (Copy-Item) и
переименовывать (Rename-Item) файлы и папки.
Первым
на что следует посмотреть это аналог
хорошо знакомой команды dir,
это командлет Get-Children.
Примечание:
Действие командлета Get-Children его
распространяется не только на файловую
систему. Но об этом позже.
В
консоли PowerShell введите команду dir,
нажмите Enter, затем Get-ChildItem
D:\Script
и снова Enter, посмотрите на результаты.
Они одинаковы. Поптому что dir является
алиасом к Get-Children.
Вывод
– PowerShell унаследовал все старые команды
и снабдил нас замечательной справочной
системой.
Как
дополнительный пример можно привести
аналог для dir
/S
которая рекурсивно выводит список
файлов будет команда.
Get-ChildItem
-Force
D:\Script -Recurse
На
замену dir
*.exe
пришла возможность фильтрации элементов
при помощи параметров Path,
Filter,
Include
и Exclude.
Добавилась
сложная фильтрация элементов при помощи
командлета Where-Object (сокращенное написание
Where).
Простой
пример фильтрации по расширению.
Get-ChildItem
-Path
C:\Windows |
Where
{$_.extension
-eq
«.dll»}
Дополнение:
PowerShell использует в качестве подстановочных
знаков не только ? и * как это было в
cmd.exe, но и группы символов в квадратных
скобках.
Поэтому
если вы попробуете найти файл Script[01].ps1
командой
Get-ChildItem
‘.\Script[01].ps1′
То
получите
ошибку.
В
этом случае необходимо использовать
параметр -LitealPath
Get-ChildItem
-LiteralPath
‘.\Script[01].ps1′
Более
сложный вариант выполнит поиск архивов
в папке D:\Backup, созданных после 1 мая 2011
года, размер которых находится в диапазоне
10-100 Мб.
Get-ChildItem
-Path
D:\Backup -Recurse
-Include
*.zip
|
Where-Object
-FilterScript
{($_.LastWriteTime
-gt
«2011-05-01»)
-and
($_.Length
-ge
10mb)
-and
($_.Length
-le
100mb)}
Опции
Include
и Exclude
работают соответственно своим названиям
т.е. первая включает а вторая исключает
заданный фильтр из поиска.
$exclude
=
@(‘*.dll’,‘*.exe’)
$include
=
@(‘*.txt’,‘*.ps1′)
$result1
=
Get-ChildItem
«C:\Script»
-Recurse
-Exclude
$exclude
$result2
=
Get-ChildItem
«D:\Script»
-Recurse
-Include
$include
Перейдем
к вопросу копирования файлов.
Аналогом
команды copy
стал командлет Copy-Item.
Copy-Item
-Path
D:\Script\script—01.ps1
-Destination
E:\Backup\27—09—2011\script—01.ps1
В
случае если целевой файл уже существует,
при попытке его скопировать вы получите
ошибуц и процесс копирования закончится.
Для перезаписи целевого файла используется
параметр Force:
Copy-Item
-Path
D:\Script\script—01.ps1
-Destination
E:\Backup\27—09—2011\script—01.ps1
-Force
Примечание:
Ключ Force работает даже когда целевой
файл помечен как файл только для чтения.
Копирование
дерева папок выполняется той же командой,
но с указанием ключа Recurse.
Copy-Item
-Path
D:\Script -Recurse
E:\Backup\27—09—2011
При
необходимости копирования определенных
объектов, например только скриптов,
PowerShell-а вы можете задать фильтр.
Copy-Item
—Filter
*.txt
-Path
D:\Script -Recurse
E:\Backup\27—09—2011
Создание
файлов и папок средствами PowerShell
производится с помощью командлета
New-Item.
Для
создания папки придется указать тип
элемента «Directory», а для создания файла
«File»
New-Item
-Path
‘D:\Script\New
Folder’
-ItemType
«directory»
New-Item
-Path
‘D:\Script\New
Folder\script-02.ps1′
-ItemType
«file»
Примечание:
Старая команда mkdir, позволяющая создавать
папки получила новую жизнь в виде алиаса
md.
Переименование
элементов производится с помощью команды
Rename-Item.
Rename-Item
.\File—01.ps1
.\File—01.ps1.bak
Удаление
производится с помощью Remove-Item.
Удалить
вложенные в папку элементы можно при
помощи командлета Remove-Item, однако он
потребует подтверждения удаления, если
элемент сам что-нибудь содержит. К
примеру, в случае если мы пытаемся
удалить папку d:\Backup\20-09-2011, содержащую
другие элементы, powershell предложит
подтвердить свои действия. Для того что
бы этого не происходило:
Remove-Item
d:\Backup\20—09—2011
-Recurse
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
-
Вид работы:
Практическое задание
-
Предмет:
Информационное обеспечение, программирование
-
Язык:
Русский
,
Формат файла:
MS Word
818,44 Кб
-
Опубликовано:
2014-06-22
Вы можете узнать стоимость помощи в написании студенческой работы.
Работа в среде командной оболочки Microsoft Powershell
Лабораторная
работа №1
РАБОТА В
СРЕДЕ КОМАНДНОЙ ОБОЛОЧКИ MICROSOFT POWERSHELL
Цель работы
Познакомиться со средой PowerShеll, провести
аналогию и сравнить её с cmd.exe. Выделить плюсы и минусы. Сделать вывод для
каких целей лучше подходит среда PowerShеll. Изучить структуру пакета
PowerShеll используя справочную систему, рассмотреть несколько вариаций команды
help и использовать их на практике в среде.
Ход работы
Задание 1
Запустили оболочку Microsoft
PowerShell способом: Пуск
-> Все программы -> Стандартные -> PowerShell.
Для выхода из PowerShell
использовали exit.
Использовали для примера специальные команды —
командлеты — dir, ls.
Вывели полный список доступных математических
функций
Задание 2
Рассмотрели несколько псевдонимов
Copy — копирует
объект в указанное нам место.
Erase — удаляет
объект
History
— выводит список используемых команд
Cat — читает
содержимое из файла
Задание 3
Задание 4
Справочная система PowerShell
Задание 5
powershеll команда псевдоним
2 -ух страничная справка
Задание 6
Задание 7
Вывод: познакомились со средой PowerShell.
Данная среда выполняет функции консоли на примере ОС Linux.
PowerShell содержит
командлеты всех консольных сред ОС, как dir,
ls, echo,
push, cd.
PowerShell имеет огромный
функционал.
Похожие работы на — Работа в среде командной оболочки Microsoft Powershell
Objectives
The objective of the lab is to explore some of the functions of PowerShell.
Background / Scenario
PowerShell is a powerful automation tool. It is both a command console and a scripting language. In this lab, you will use the console to execute some of the commands that are available in both the command prompt and PowerShell. PowerShell also has functions that can create scripts to automate tasks and work together with the Windows Operating System.
Required Resources
- 1 Windows PC with PowerShell installed and Internet access
Step 1: Access PowerShell console.
a. Click Start. Search and select powershell.
b. Click Start. Search and select command prompt.
Step 2: Explore Command Prompt and PowerShell commands.
a. Enter dir at the prompt in both windows.
What are the outputs to the dir command?
Both windows provide a list of subdirectories and files, and associated information like type, file size, date and time of last write. In PowerShell, the attributes/modes are also shown.
b. Try another command that you have used in the command prompt, such as ping, cd, and ipconfig. What are the results?
The output in both windows are similar.
Step 3: Explore cmdlets.
a. PowerShell commands, cmdlets, are constructed in the form of verb-noun string. To identify the PowerShell command to list the subdirectories and files in a directory, enter Get-Alias dir at the PowerShell prompt.
PS C:\Users\CyberOpsUser> Get-Alias dir CommandType Name Version Source ----------- ---- ------- ------ Alias dir -> Get-ChildItem
What is the PowerShell command for dir?
Get-ChildItem
b. For more detailed information about cmdlets, navigate to https://technet.microsoft.com/en-us/library/ee332526.aspx.
c. Close the Command Prompt window when done.
Step 4: Explore the netstat command using PowerShell.
a. At the PowerShell prompt, enter netstat -h to see the options available for the netstat command.
PS C:\Users\CyberOpsUser> netstat -h
Displays protocol statistics and current TCP/IP network connections.
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]
-a Displays all connections and listening ports.
-b Displays the executable involved in creating each connection or
listening port. In some cases well-known executables host
multiple independent components, and in these cases the
sequence of components involved in creating the connection
or listening port is displayed. In this case the executable
name is in [] at the bottom, on top is the component it called,
and so forth until TCP/IP was reached. Note that this option
can be time-consuming and will fail unless you have sufficient
permissions.
<some output omitted>
b. To display the routing table with the active routes, enter netstat -r at the prompt.
PS C:\Users\CyberOpsUser> netstat -r
===========================================================================
Interface List
3...08 00 27 a0 c3 53 ......Intel(R) PRO/1000 MT Desktop Adapter
10...08 00 27 26 c1 78 ......Intel(R) PRO/1000 MT Desktop Adapter #2
1...........................Software Loopback Interface 1
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.5 25
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
169.254.0.0 255.255.0.0 On-link 169.254.181.151 281
169.254.181.151 255.255.255.255 On-link 169.254.181.151 281
169.254.255.255 255.255.255.255 On-link 169.254.181.151 281
192.168.1.0 255.255.255.0 On-link 192.168.1.5 281
192.168.1.5 255.255.255.255 On-link 192.168.1.5 281
192.168.1.255 255.255.255.255 On-link 192.168.1.5 281
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.1.5 281
224.0.0.0 240.0.0.0 On-link 169.254.181.151 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.1.5 281
255.255.255.255 255.255.255.255 On-link 169.254.181.151 281
===========================================================================
Persistent Routes:
None
IPv6 Route Table
===========================================================================
Active Routes:
If Metric Network Destination Gateway
1 331 ::1/128 On-link
3 281 fe80::/64 On-link
10 281 fe80::/64 On-link
10 281 fe80::408b:14a4:7b64:b597/128
On-link
3 281 fe80::dd67:9e98:9ce0:51e/128
On-link
1 331 ff00::/8 On-link
3 281 ff00::/8 On-link
10 281 ff00::/8 On-link
===========================================================================
Persistent Routes:
None
What is the IPv4 gateway?
Answers will vary. The gateway is 192.168.1.1 in this example.
c. Open and run a second PowerShell with elevated privileges. Click Start. Search for PowerShell and right-click Windows PowerShell and select Run as administrator. Click Yes to allow this app to make changes to your device.
d. The netstat command can also display the processes associated with the active TCP connections. Enter the netstat -abno at the prompt.
PS C:\Windows\system32> netstat -abno Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 756 RpcSs [svchost.exe] TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 Can not obtain ownership information TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING 444 Can not obtain ownership information TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING 440 Schedule [svchost.exe] TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING 304 EventLog [svchost.exe] TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING 1856 [spoolsv.exe] TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING 544 <some output omitted>
e. Open the Task Manager. Navigate to the Details tab. Click the PID heading so the PID are in order.
f. Select one of the PIDs from the results of netstat -abno. PID 756 is used in this example.
g. Locate the selected PID in the Task Manager. Right-click the selected PID in the Task Manager to open the Properties dialog box for more information.
What information can you get from the Details tab and the Properties dialog box for your selected PID?
PID 756 is associated with svchost.exe process. The user for this process is NETWORK SERVICE and it is using 4132K of memory.
Step 5: Empty recycle bin using PowerShell.
PowerShell commands can simplify management of a large computer network. For example, if you wanted to implement a new security solution on all servers in the network you could use a PowerShell command or script to implement and verify that the services are running. You can also run PowerShell commands to simplify actions that would take multiple steps to execute using Windows graphical desktop tools.
a. Open the Recycle Bin. Verify that there are items that can be deleted permanently from your PC. If not, restore those files.
b. If there are no files in the Recycle Bin, create a few files, such as text file using Notepad, and place them into the Recycle Bin.
c. In a PowerShell console, enter clear-recyclebin at the prompt.
PS C:\Users\CyberOpsUser> clear-recyclebin Confirm Are you sure you want to perform this action? Performing the operation "Clear-RecycleBin" on target "All of the contents of the Recycle Bin". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y
What happened to the files in the Recycle Bin?
The files in the Recycle Bin are deleted permanently.
Reflection
PowerShell was developed for task automation and configuration management. Using the Internet, research commands that you could use to simplify your tasks as a security analyst. Record your findings.
Answers will vary.
