Главная страница
Навигация по странице:

  • Результаты работы: 1 Управление компьютером с использованием Windows Powershell

  • Adobe Reader 9.1-Russian

  • 2 Создание скриптов с использованием Powershell

  • ExecutionPolicy

  • 3 Работа с аргументами

  • PowerShell ISE

  • Доп зпдпния Power Shell. ПАСЗВИ_Дополнительные_задания_Корешкова. Фгбоу впо пензенский государственный университет


    Скачать 457.14 Kb.
    НазваниеФгбоу впо пензенский государственный университет
    АнкорДоп зпдпния Power Shell
    Дата09.10.2022
    Размер457.14 Kb.
    Формат файлаdocx
    Имя файлаПАСЗВИ_Дополнительные_задания_Корешкова.docx
    ТипДокументы
    #723147

    Министерство образования и науки РФ

    ФГБОУ ВПО «ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

    Кафедра «Информационная безопасность систем и технологий»

    О Т Ч Е Т

    Дисциплина:

    ПАСЗВИотНСД

    Автор работы:

    Корешкова А.А.

    Группа:

    11ПТ1













    Руководитель работы:

    Фатеев А.Г


    Пенза, 2016
    Результаты работы:

    1 Управление компьютером с использованием Windows Powershell

    1.1 Управление сеансами пользователей

    Для просмотра сведений о пользователях, которые осуществили вход на сервер с определенным именем, была запущена командная строк и введена команда: quser /SERVER:«имя_сервера». Полученное сообщение, содержащее сведения о сеансе пользователя, представлено на рисунке 1.1.


    Рисунок 1.1 – Сведения о пользователях, вошедших на сервер
    Далее, для завершения сеанса пользователя была введена команда logoffSession_ID /SERVER: «имя_сервера».

    Для вывода большего количества информации о пользователях был использована утилита qwinsta. Для вывода сведений была введена команда qwinsta /server:«Имя_сервера» (рисунок 1.2)


    Рисунок 1.2 – Сведения о пользователях, вошедших на сервер, с использование утилиты qwinsta
    Далее для завершения сеанса работы администратора была введена команд rwinstaSession_ID /server: «имя_сервера».
    Для еще одного способа работы с сеансами была осуществлена регистрация библиотеки query.dll (рисунок 1.3).

    .

    Рисунок 1.3 – Регистрация библиотеки query.dll
    После регистрации стало возможным использовать команды query и reset:

    query session /server:«имя_сервера»,

    reset session ID /server:«имя_сервера».

    Результаты работы команд представлены на рисунке 1.4


    Рисунок 1.4 – использование команд query и reset
    1.2 Управление питанием:

    Для завершения сеанса пользователя в командной строке была введена команда shutdown /l. Для быстрой перезагрузки компьютера была введена команда shutdown /r /f /m \\HOST_NAME /t 0, а для выключения компьютера была введена командаshutdown /s /f /m \\HOST_NAME /t 0 (рисунок 1.5), где: r – полное завершение работы и перезагрузка компьютера, f – инудительное закрытие запущенных приложений без уведомления пользователя, m \\компьютер - указание конечного компьютера, s – завершение работы компьютера, t – указание времени ожидания в секундах до завершения работы компьютера.


    Рисунок 1.5 – Команда для выключения компьютера
    1.3 Сбор информации о системе:

    Для получения сведений о системе была введена команда Get-WMIObject -Class Win32_OperatingSystem (рисунок 1.6).


    Рисунок 1.6 – Получение сведений о системе
    Для получения более полной информации о системе была использована команда Get-WMIObject -Class Win32_OperatingSystem | Get-Member (рисунок 1.7).


    Рисунок 1.7 – Получение подробной информации о системе
    Для получения полного названия установленной ОС была использована команда (Get-WMIObject -Class Win32_OperatingSystem).Caption (рисунок 1.8).


    Рисунок 1.8 – Получение полного названия установленной ОС
    1.4 Получение данных об установленных приложениях и исправлениях:

    Для получения сведений об установленном ПО была использована команда Get-WMIObject -Class Win32_Product (рисунок 1.9).


    Рисунок 1.9 – Получение сведений об установленном ПО
    Для получения более подробной информации была использована команда Get-WMIObject -Class Win32_Product | Sort-Object Vendor, Name | FT Vendor, Name, Version (рисунок 1.10).


    Рисунок 1.10 – Получение подробной информации об установленном ПО
    Для получения информации об определенном ПО, например Adobe Reader 9.1-Russian, была использована команда Get-WMIObject -Class Win32_Product -Filter "Name=’Adobe Reader 9.1 - Russian’" (рисунок 1.11).


    Рисунок 1.11 – Получение информации об определенном ПО
    Для получения подробных сведений об установленном ПО, была использована команда в команду указанную выше было добавлено FL -Property * (рисунок 1.12):

    Get-WMIObject -Class Win32_Product -Filter "Name=’Adobe Reader9.1 - Russian’" | Format-List -Property *


    Рисунок 1.12 – Получение более подробной информации о ПО

    Для сбора информации об установленных обновлениях используется команда Get-WMIObject -Class Win32_QuickFixEngineering. Полученая информация была сохранена в файл (рисунок 1.13).


    Рисунок 1.13 – Получение информации об установленных обновлениях
    Для получения сведений об определенном исправлении можно использовать rоманду Get-WMIObject -ClassWin32_QuickFixEngineeringComputerName W2K12-R2.wps.local | where-object {$_.hotfixid -eq "KB2949621"}. Результаты были сохранены в файл(рисунок 1.14).


    Рисунок 1.14 – Получение информации об определенном обновлении
    Установка ПО:

    Для установки файлового менеджера FreeCommander была использована следующая команда:

    (Get-WMIObject -ComputerName W2K12-R2.wps.local -List | Where-Object -FilterScript {$_.Name –eq "Win32_Product"}).Install(“\\W2K12-R2.wps.local \Dist\freeCommander.05.2007.msi”).

    Результат установки представлен на рисунке 1.15.


    Рисунок 1.15 – Установка нового приложения
    Обновление ПО:

    Для обновления приложения OldTools была использована команда:

    (Get-WmiObject -Class Win32_Product -ComputerName W2K12-R2.wps.local -Filter Name=‘OldTools’").Upgrade(“\\W2K12-R2.wps.local\Deploy\Package_01\OldTools.msi”)
    Удаление ПО:

    Для удаления ПО была использована команда:

    (Get-WMIObject -Class Win32_Product –Filter "Name=’freeCommander05.2007’" -ComputerName W2K12-R2.wps.local).Uninstall()

    2 Создание скриптов с использованием Powershell

    2.1 Создание скриптов:

    Для создания скрипта необходимо создать документ с расширением .ps1.

    В созданный скрипт была добавлена запись: Write-Host "Hello!" .

    Затем был запущен скрипт командой .\script_1.ps1. В результате было выдано сообщение об ошибке (рисунок 2.1)


    Рисунок 2.1 – Ошибка при первом запуске скрипта
    2.2 Установка уровня политики ExecutionPolicy:

    Сообщение было связано с тем, что в настройках по умолчанию, установлена возможность интерактивного выполнения только команд, а выполнение скриптов запрещено. Для исправления ошибки, был изменен уровень политики ExecutionPolicy на уровень RemoteSigned. Для изменения уровня политики использовалась команда Set-ExecutionPolicy RemoteSigned (рисунок 2.2).


    Рисунок 2.2 – Изменение уровня политики ExecutionPolicy
    2.3 Подписывание скриптов:

    Для подписывания скрипта использовалась программа makecert.exe. для ее использования в командной строке была введена команда:

    cd "C:\Program Files (x86)\Windows Kits\8.1\bin\x64\"

    Далее для создания сертификата была введена команда (рисунок 2.3):

    makecert -n "CN=PowerShell Local Certificate Root" -a sha1 –eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer -ss Root –sr localMachine


    Рисунок 2.3 – Создание сертификата
    С помощью команды makecert -pe -n "CN=PowerShellUser" -ssMY -asha1 –eku 1.3.6.1.5.5.7.3.3 -ivroot.pvk -icroot.cer был сформирован сертификат (рисунок 2.4).


    Рисунок 2.4 – Формирование сертификата
    В результате должны были создаться два файла root.cer и root.pvk. Для проверки успешного создания сертификатов была использована команда: Get-ChildItemcert:\CurrentUser\Mycodesign. Результаты проверки представлены на рисунке 2.5


    Рисунок 2.5 – Проверка создания сертификата
    Для подписи созданных скриптов была введена сначала команда: $cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]. Далее была выполнена команда Set-AuthenticodeSignature $file $cert. Результаты подписи скриптов сертиыикатами представлены на рисунке 2.6.


    Рисунок 2.6 – Подпись скриптов сертификатами
    После проведения всех необходимых процедур была проверена работоспособность созданного скрипта (рисунок 2.7).


    Рисунок 2.7 – Проверка работоспособности созданного скрипта

    3 Работа с аргументами:

    3.1 Создание функции:

    Была создана проверочная функция, которая выполняет команду Get-Process | Where {$_.name -eq "cmd"}

    Текст функции:

    function test_func {

    Get-Process | Where {$_.name -eq "cmd"}

    }

    Для проверки работоспособности созданной функции был запущен процесс cmd и запущена функция test_func (рисунок 3.1).


    Рисунок 3.1 – Проверка работоспособности функции
    3.2 Обработка аргументов функции:

    Для примера работы функций с аргументами была создана функция показывающая содержимое каталога:

    function test_func {

    Get-ChildItem $args[0]

    }

    Для вызова функции используется аргумент, указывающий на каталог: test_func "С:\Program Files" (рисунок 3.2).

    При работе с функциями может использоваться два и более аргументов. Для примера приведена функция выполняющая поиск файлов с размером больше чем 1024.


    Рисунок 3.2 – Пример работы функции с использованием аргументов
    Текст функции:

    function FileSizeSearch ($dir, $minSize) {

    Get-ChildItem $dir -Recurse | Where {$_.length -gt $minSize}

    }
    Так же, с использованием оболочки PowerShell ISE, был создан скрипт выполняющий аналогичное действие.

    Текст скрипта:

    function FileSizeSearch ($dir, $minSize) {

    Get-ChildItem $dir -Recurse | Where {$_.length -gt $minSize}

    }

    FileSizeSearch
    Для выполнения функция была введена команда FileSizeSearch -dir c:\scripts –minSize 1024 (рисунок 3.3). Так же была проверена работоспособность созданного скрипта (рисунок 3.4).


    Рисунок 3.3 – проверка работоспособности функции с двумя аргументами


    Рисунок 3.4 – Проверка работоспособности созданного скрипта, выполняющего поиск файлов
    Также были заданы критерии поиска в коде самой функции, определив их значение по умолчанию.

    Текст функции для поиска файлов:

    function FileSize

    ($dir = "C:\Scripts",

    $minSize=1024)

    {

    Get-ChildItem $dir -Recurse | Where {$_.length -gt $minSize}

    }

    Пример работы функции с заранее определенными параметрами представлен на рисунке 3.5


    Рисунок 3.5 – Пример работы функции с заранее определенными параметрами
    Так же при разработке кода функции, можно использовать проверку типа вводимых аргументов. Пример кода функции с проверкой типа переменных представлен на рисунке 3.6.


    Рисунок 3.6 – Пример работы функции с проверкой типа переменных

    Аргументы для скриптов:

    Сохраненный ранее скрипт поиска файлов был переработан. Код скрипта представлен далее.

    function FileSizeSearch

    ([string]$dir = "C:\Scripts",

    [int]$minSize=1024)

    {

    Get-ChildItem $dir -Recurse | Where {$_.length -gt $minSize}

    }

    # обработка входных переменных

    FileSizeSearch -dir $args[0] -minSize $args[1]
    Результат работы скрипта представлен на рисунке 3.7.


    Рисунок 3.7 – Поверка работы скрипта, реализующего поиск файлов, с использованием аргументов
    При большом количестве аргументов можно использовать параметры запуска скрипта с их определением в коде. Например, функция поиска файлов:

    param($param1, $param2)

    function FileSizeSearch

    ([string]$dir = "C:\Scripts",

    [int]$minSize=1024)

    {

    Get-ChildItem $dir -Recurse | Where {$_.length -gt $minSize}

    }

    # обработкавходныхпеременных

    FileSizeSearch -dir $param1 -minSize $param2

    Результаты работы скритпа, с использованием параметров, представлено на рисунке 3.8.


    Рисунок 3.8 – Проверка работы скрипта с использованием параметров

    4 Практическое задание:

    Задание 1. Разработать скрипт, осуществляющий копирование файлов из одного каталога в другой. Разработать скрипт, осуществляющий копирование дерева каталогов.

    Задание 2. Разработать скрипт, осуществляющий создание файлов и каталогов, а также скрипт, осуществляющий удаление файлов и каталогов.

    Задание 3. Разработать скрипт, осуществляющий сбор сведений о работающих процессах.

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

    1 Был разработан скрипт, осуществляющий копирование файлов из одного каталога в другой. Код скрипта CopyFiles.ps1:

    param ($param1, $param2)

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

    function CopyFiles

    определение имени функции

    ([string]$outFiles = "C:\Folder\1.txt",

    определение значения outFiles по умолчанию

    [string]$inFolder = "C:\Backup")

    определение значения inFiles по умолчанию

    {

    начало тела функции

    Copy-Item $outFiles $inFolder

    командлет копирования файла

    }

    конец функции

    CopyFiles -outFiles $param1 -inFolder $param2

    обработка входных переменных


    Пример работы cкрипта представлен на рисунке 4.1.


    Рисунок 4.1 – Пример работы скрипта, копирующего файлы из одного каталога в другой
    Был разработан скрипт, осуществляющий копирование дерева каталогов. Код скрипта CopyFolder.ps1:

    param ($param1, $param2)

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

    function CopyFolder

    определение имени функции

    ([string]$outFolder = "C:\Folder",

    определение значения outFolder по умолчанию

    [string]$inFolder = "C:\Backup")

    определение значения inFolder по умолчанию

    {

    начало тела функции

    Copy-Item $outFolder $inFolder -recurse

    командлет копирования дерева каталогов

    }

    конец функции

    CopyFolder -outFolder $param1 -inFolder $param2

    обработка входных переменных


    Пример работы cкрипта представлен на рисунке 4.2.


    Рисунок 4.2 – Пример работы скрипта, копирующего дерево каталогов
    4.2 Был разработа скрипт, осуществляющий создание новых файлов и каталогов. Код скрипта NewFiles.ps1:

    param ($param1, $param2)

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

    function NewFiles

    определение имени функции

    ($newFolder="C:\abcd1",

    определение значения newFolder по умолчанию

    $newFile="abcd1.txt")

    определение значения newFile по умолчанию

    {

    начало тела функции

    New-Item $newFolder -Type "Directory"

    командлет для создания нового каталога

    New-Item $newFile -Type "File"

    командлет для создания нового файла

    }

    конец функции

    NewFiles -newFolder $param1 -newFile $param2

    обработка входных переменных


    Пример работы cкрипта представлен на рисунке 4.3.


    Рисунок 4.3 – Пример работы скрипта, создающего новые файлы и каталоги
    Был разработан скрипт, осуществляющий удаление файлов и каталогов. Код скрипта DeletItem.ps1:

    param ($param1, $param2)

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

    function DeletItem

    определение имени функции

    ($del="C:\abcd1")

    определение значения del по умолчанию

    {

    начало тела функции

    Remove-Item $del

    командлет удаления файла/каталога

    }

    конец функции

    DeletItem -del $param1

    обработка входных переменных


    Пример работы cкрипта представлен на рисунке 4.4.


    Рисунок 4.4 – Пример работы скрипта, удаляющего файлы и каталоги
    4.3 Был разработан скрипт, осуществляющий сбор сведений о работающих процессах. Код скрипта GetProcess.ps1:

    param ($param1)

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

    function getProc

    определение имени функции

    ([string]$application = "cmd")

    определение значения del по умолчанию

    {

    начало тела функции

    Get-Process $application

    командлет для сбора сведений о работающем процессе

    }

    конец функции

    getProc -application $param1

    обработка входных переменных


    Пример работы cкрипта представлен на рисунке 4.5.


    Рисунок 4.5 – Пример работы скрипта, осуществляющего сбор сведений о работающих процессах
    4.4 Был разработан скрипт, осуществляющий сбор сведений о работающих службах и поиск определенной службы. Код скрипта GetServiceR.ps1:

    param ($param1)

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

    function getServ

    определение имени функции

    ([string]$service = "cmd")

    определение значения service по умолчанию

    {

    начало тела функции

    Write-Host "Running service: "

    текстовая строка «Running service:»

    Get-Service | Where-Object {$_.Status -eq "Running"}

    командлет сбора сведений о работающих службах

    Write-Host "My service = "

    текстовая строка «My service =»

    (Get-Service $service).status

    командлет поиска информации по определенной службе

    }

    конец функции

    getServ -service $param1

    обработка входных переменных


    Пример работы cкрипта представлен на рисунке 4.6.


    Рисунок 4.6 – Пример работы скрипта, осуществляющего сбор сведений о работающих службах и поиск определенной службы
    Был разработан скрипт, собирающий сведения об остановленных службах и службах которые могут быть запущены. Код скрипта GetServiceS.ps1:

    Write-Host "Stopped service: "

    текстовая строка

    Get-Service | Where-Object {$_.Status -eq "Stopped"}

    командлет сбора сведений об остановленных службах

    Write-Host "Service Pause:"

    текстовая строка

    Get-Service | Where-Object {$_.CanPauseAndContinue}

    командлет сбора сведений о службах которые могут быть запущены/приостановлены


    Пример работы cкрипта представлен на рисунке 4.7.


    Рисунок 4.7 – Пример работы скрипта, собирающего сведения об остановленных службах и службах которые могут быть запущены


    написать администратору сайта