PowerShell: Tipy pro využití PowerShellu v praxi (Aktualizace 1.5.2023)
Protože občas potřebuji v praxi občasné konstrukce v PowerShellu, sepíšu si je sem. Jistě se hodí i někomu dalšímu.
Protože občas potřebuji v praxi občasné konstrukce v PowerShellu, sepíšu si je sem. Jistě se hodí i někomu dalšímu. Článek budu postupně doplňovat dalšími užitečnými příkazy.
Seznam změněných souborů do 10 dnů
Potřeboval jsem si dohledat změněné soubory za posledních 10 dnů v konkrétním adresáři a jeho podadresářích. K tomu poslouží tento příkaz:
Get-ChildItem -Path e:\work -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-10)}
Pokud chcete tyto změny jen u konkrétního typu souborů, například PST, použijte parametr Filter:
Get-ChildItem -Path e:\work -Filter *.pst -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-10)}
Pokud chcete tyto změny naopak u všech souborů kromě konkrétního typu souborů, například ZIP, použijte parametr Exclude:
Get-ChildItem -Path e:\work -Exclude *.zip -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-10)}
Informace o běhu stroje (uptime) v dnech, hodinách a minutách
Do svého skriptu Get-SystemReport jsem chtěl slovní popis o délce běhu v počtu dnů, hodin a minut.
$WmiOs = Get-WmiObject Win32_OperatingSystem -ErrorAction Stop $Temptime = ([wmi]'').ConvertToDateTime($WmiOs.LocalDateTime) $SystemTime = "$($Temptime.ToShortDateString()) $($Temptime.ToShortTimeString())" $Temptime = ([wmi]'').ConvertToDateTime($WmiOs.LastBootUptime) $OsLastBoot = "$($Temptime.ToShortDateString()) $($Temptime.ToShortTimeString())" $UpTime = New-TimeSpan -Start $OsLastBoot -End $SystemTime $UpTime = "$($UpTime.days) days $($Uptime.hours) hours $($Uptime.minutes) minutes" Write-Host $UpTime
Počet dnů v aktuálním měsíci
Při generování reportů, občas potřebuji pracovat s počtem dnů v měsíci.
[DateTime]::DaysInMonth((get-date).Year, (get-date).Month)
Aktualizace
24.04.2023
První vydání článku.
01.05.2023
Nový odstavec Počet dnů v aktuálním měsíci.