Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ЛР_БОС.doc
Скачиваний:
112
Добавлен:
08.05.2019
Размер:
1.15 Mб
Скачать

Практика

Практическое применение всего вышесказанного может быть разнообразно.

Например, может быть задача поиска в лог файлах определенного выражения по маске ip-адреса «192.168.100.253″ с последующим копированием найденного в папку D:\TEMP, вариантов множество, вот метод поиска:

$current = Get-Date

$Days = "-30"

$start = $current.AddDays($days)

Get-ChildItem D:\Logs -Filter *.log -Recurse | Where-Object {($_.LastWriteTime.Date -ge $Start.Date) -and ($_.LastWriteTime.Date -le $End.Date)} | Select-String "192.168.100.253" | Copy-Item -Destination D:\TEMP

Можно придумать сценарий когда на файловой помойке требуется из определенной папки удалять все файлы и папки старше 30 дней.

$Path = "C:\temp"

$Days = "-30"

$CurrentDate = Get-Date

$OldDate = $CurrentDate.AddDays($Days)

Get-ChildItem $Path | Where-Object { $_.LastWriteTime -lt $OldDate } | Remove-Item

Или если вам требуется удалять все что есть в папке и в подпапках т.е. удаление еще и самих папок.

$Path = "C:\temp"

$Days = "-30"

$CurrentDate = Get-Date

$OldDate = $CurrentDate.AddDays($Days)

Get-ChildItem $Path -Recuse | Where-Object { $_.LastWriteTime -lt $OldDate } | Remove-Item

Работа с реестром

Доступ к локальному реестру осуществляется с помощью провайдера Registry, который в свою очередь, предоставляет стандартные диски HKCU и HKLM.

Примечание. Провайдер Registry предоставляет доступ ко всему реестру, но по умолчанию дается только два диска.

Для того что бы убедится в этом вводим.

# Просто список дисков

Get-PSDrive

# Только от провайдера Registry

Get-PSDrive -PSProvider Registry

Раз реестр это «диск» то можно по аналогии доступа к дискам и веткам реестра применять команды Set-Location и Get-Location.

# используем Set-Location

Set-Location HKLM:\SOFTWARE

# а можно и ее синоним команду cd

cd HKLM:\SOFTWARE

# смотрим где мы находимся

Get-Location

# переходим на уровень выше

cd ..

Создание дополнительных дисков

При необходимости можно создать дополнительный PSDrive. Для примера можно взять HKEY_CLASSES_ROOT который не является независимым объектом а всего лишь ссылкой на HKEY_LOCAL_MACHINE\SOFTWARE\Classes.Создание нового диска HKCR производится следующим образом.

New-PSDrive -name HKCR -PSProvider registry -root HKLM:\SOFTWARE\ClassesDir HKCR:

Удаление созданного диска производится командой Remove-PSDrive

Remove-PSDrive HKCR

Поиск в реестре

Поиск в реестре производится теме же методиками что и в файловой системе. Для примера можно поискать на диске HKLM: все элементы, в которых присутствует ключевое слово *PowerShell*

Get-ChildItem HKLM: -recurse -include *PowerShell*

Примеры

Для демонстрации можно вывести список всех сервисов (их настройки храняться в ветке HKLM:\SYSTEM\CurrentControlSet\Services) с помощью двух команд

cd HKLM:\SYSTEM\CurrentControlSet\Services

dir

или при при помощи всего одной команды выводим список установленного ПО.

Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | Format-Table InstallDate, DisplayName, Publisher

Для x64 систем необходимо учитывать вторую ветку т.к. в ней хранятся данные по 32-битным программам.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall