Вы находитесь на странице: 1из 4

PowerShell

Task #2
1. В папке «Folder» переименовать файлы по следующему правилам:

1.1. В имя файлов *.tmp должен быть добавлен их размер. Например: qwerty.tmp →
qwerty_12039.tmp

Get-ChildItem *.tmp | Rename-Item -newname {$_.basename+"_"+$_.length+".tmp"}

1.2. Изменить расширение файлов *.mp на *.mp3

Get-ChildItem *.mp | Rename-Item -newname {$_.name -replace '\.mp','.mp3'}

2. Вывести в HTML документ список MP3-файлов из папки «Folder» с указанием даты


их создания. При этом если файл меньше 500Кб вывести его на синем фоне, если от 500Кб-
1Мб – на зелёном фоне, если больше 1Мб – на красном.

Get-ChildItem .\Folder -Force -Recurse *.mp3 | Select-Object Name, Length, CreationTime |


ForEach-Object { if ($_.length -lt 500KB) {Write-Host -f blue} elseif ($_.length -lt 1MB) {Write-
Host -f green} else {Write-Host -f red} } | Convertto-HTML | Out-File D:\12345.html
3. Выводить каждые 10 секунд загрузку ЦП. (можно использовать $timer и Wait-Event).

//для русскоязычной версии


Get-Counter -counter '\Процессор(_total)\% загруженности процессора' -continuous
-sampleinterval 10

//для англоязычной версии


Get-counter -counter "\Processor(_total)\% processor time" -continuous -sampleinterval 10

4. Вывести в текстовый файл (имя — текущее время и дата) все сообщения служб,
связанных с безопасностью (Security), произошедшие за последние 24 часа.

$yesterday = (get-date) - (new-timespan -day 1);


$a = (get-date).ToShortDateString(); $b=(get-date).Hour; $c=(get-date).Minute;
Get-WinEvent -logname *Security* | Where {$_.timecreated -ge $yesterday} > D:\Security.log;
Get-ChildItem D:\Security.log | Rename-Item -newname {$_.basename+" "+$a+" "+$b+"h "+
$c+"m "+".log"}

5. Создайте скрипт ps1 задания 4. Запустите его на выполнение.

Set-ExecutionPolicy remotesigned
notepad .\Script1.ps1
$yesterday = (get-date) - (new-timespan -day 1);
$a = (get-date).ToShortDateString(); $b=(get-date).Hour; $c=(get-date).Minute;
Get-WinEvent -logname *Security* | Where {$_.timecreated -ge $yesterday} > D:\Security.log;
Get-ChildItem D:\Security.log | Rename-Item -newname {$_.basename+" "+$a+" "+$b+"h "+
$c+"m "+".log"}

.\Script1.ps1

6. Получить список подключённых устройств (использовать WMI).

Get-WmiObject -class win32_systemdevices


Get-WmiObject -class CIM_DeviceConnection

7. C помощью WMI получите данные о BIOS и выведите его в текстовый файл.

Get-WmiObject -class win32_bios > .\BIOS_info.txt

8. Используя COM-объекты, создайте и сохраните на диске документ Word.

Создаём COM-объект, где в качестве аргумента указываем, что это приложение Word:
$a=New-Object -ComObject Word.application

Создаём новый рабочий документ:


$b = $a.Documents.Add()

Можно вывести наш документ на экран:


$a.Visible = $True
И сохранить его на жёстком диске:
$b.SaveAs(“.\MyDoc.docx”)

Оценить