вторник, 9 октября 2018 г.

PoSH Tips-n-Tricks или "полезняшки"

Не всегда мы помним синтаксис команды, которую вроде бы знаем,
нередко мы слышали о какой-то возможности, но никогда ее не применяли,
а иногда даже не знаем, что нужная нам возможность существует.

Эта статья задумана как сборник различных "Tips-and-Tricks", которые, будучи собранными в одном месте, смогут напомнить вам (и мне) о существовании и способе применения различных команд, а также смогут помочь справиться с различными стандартными и нестандартными ситуациями.

В этом словаре-напоминалке не будет подробных объяснений команд, а параметры будут даны только самые необходимые - минималистский подход.

Надеюсь постоянно обновлять этот пост по мере встречи с различными явлениями и способами их решения.

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Measure-Object (измерения различных значений)
# Объем RAM компьютера в Mb:
(Get-WmiObject Win32_PhysicalMemory | Measure-Object Capacity -sum).sum/1mb

# К-во процессов на компьютере:
(Get-Process | measure VirtualMemorySize -Sum).count

# Объем памяти RAM, занятой всеми процессами, в Mb:
(Get-Process | measure VirtualMemorySize -Sum).sum/1mb

#---Start
# RAM, округленный до двух знаков после точки:
$VMMemSize = (Get-Process | measure VirtualMemorySize -Sum).sum/1mb
$VMMemSize2 = [math]::round($VMMemSize,2)
Write-Host "Rounded VMMemSize = $VMMemSize2 Mb"
#---Stop

# How to check where TEMP folder located:
$env:temp

# Размер папки TEMP:
(dir $env:temp | Measure-Object -Property length -sum).sum/1mb

#---Start
# Размер папки TEMP с округленным значением и коротким синтаксисом:
$FolderSize = (dir $env:temp | measure length -sum).sum/1mb
$FolderSize2 = [math]::round($FolderSize,2)
Write-Host Rounded RAM = $FolderSize2 Mb
#---Stop

Как проверить время работы скрипта - два способа.

#---START первый способ
Write-Host ""
$Timing1 = (Measure-Command { H:\Experiment\Get-WmiObject.ps1 }).totalseconds
Write-Host "Timing1 is $Timing1"
Write-Host ""
#---END первый способ

#---START второй способ (NET Stopwatch)
$sw = [Diagnostics.Stopwatch]::StartNew()
H:\Experiment\Get-WmiObject.ps1
$sw.Stop()
$Timing = ($sw.Elapsed).Milliseconds
Write-Host "Script was running $Timing Miliseconds"
Write-Host ""
#---END второй способ (NET Stopwatch)

Как проиграть звуковой файл из PowerShell? Да, это возможно!
$PATH = ’D:\Hey Jude.wav’
$PlayWav=New-Object System.Media.SoundPlayer
$PlayWav.SoundLocation=$PATH
$PlayWav.playsync()

Как пользоваться командами Get-WmiObject?

# Следующие 3 команды дают одинаковый результат - данные о BIOS компьютера:
Get-WmiObject -Class win32_bios -ComputerName $env:COMPUTERNAME
Get-WmiObject -Class win32_bios -ComputerName localhost
Get-WmiObject -Class win32_bios -ComputerName .

Как получить данные об удаленном компьютере?
Команда запрашивает имя/IP компьютера, вы его вводите - результат налицо!
(точка или localhost также принимаются в качестве ответа)
#---START
$ComputerName = Read-Host -Prompt "Enter computer name or IP"
Get-WmiObject -Class win32_bios -ComputerName $ComputerName
#---END

# Как проверить, какая версия PoSH установлена - 32 или 64 bit?
[Environment]::Is64BitProcess

How to install NTFSSecurity module:
Get-Module -ListAvailable # (проверка имеющихся модулей)
Install-Module -Name NTFSSecurity

Комментариев нет:

Отправить комментарий