PowerShell

Возможности и настройка PowerShell WebAccess (+видео)

Возможности и настройка PowerShell WebAccess (+видео)


Сценарий PowerShell для создания Storage Space

  # получаем список всех дисков которые можно объединить Get-PhysicalDisk -CanPool $True | ft FriendlyName,OperationalStatus,Size,MediaType   # сохраняем список в переменную $pd $pd = (Get-PhysicalDisk -CanPool $True | Where MediaType -NE UnSpecified)   # создаем новый Storage Pool из дисков New-StoragePool -PhysicalDisks $pd –StorageSubSystemFriendlyName “Storage Spaces*” -FriendlyName “Storage Pool” # Смотрим список всех дисков в […]


Удаление пустых свойств объекта

При получении информации, некоторые свойства могут не иметь значений, это не редко мешает правильно представлять информацию. Поэтому их лучше удалить. Небольшой пример $bios = Get-WmiObject -Class Win32_BIOS $biosNew = $bios | Get-Member -MemberType *Property | Select-Object -ExpandProperty Name | Sort-Object | ForEach-Object -Begin { $obj=New-Object PSObject } { if ($bios.$_ -eq $null) { Write-Warning "Removing […]


Передача параметров в PowerShell

Иногда скрипту PowerShell необходимо передать определенные параметры, сделать это очень просто. function Get-BIOS($ComputerName, $Credential, [switch]$Verbose) { $a = $global:psboundparameters $psboundparameters.remove(’verbose’) | Out-Null $bios = Get-WmiObject Win32_BIOS @psboundparameters if ($verbose) { $bios | Select-Object * } else { $bios } }function Get-BIOS($ComputerName, $Credential, [switch]$Verbose) { $a = $global:psboundparameters $psboundparameters.remove(‘verbose’) | Out-Null $bios = Get-WmiObject Win32_BIOS @psboundparameters […]


Очистка Temp при помощи PowerShell

Любая работающая программа создает разного рода временные файлы, которые не всегда корректно удаляются. В итоге каталоги постепенно заполняются разным хламом, который забирает место на жестком диске. Небольшой скрипт PowerShell позволит очищать все временные файлы, которым более 30 дней. При необходимости его легко доработать под любые условия. $cutoff = (Get-Date) — (New-TimeSpan -Days 30)   $before […]


Резервирование GPO при помощи PowerShell

Чтобы получить именf объектов групповых политик и дату создания используем: PS> Get-GPO -all | Select DisplayName, CreationTimePS> Get-GPO -all | Select DisplayName, CreationTime Чтобы создать дамп каждого объекта GPO используем: Get-GPO –all | Foreach { $report="F:\GPReports\{0}.htm" –f $_.displayName.Replace(" ","") Get-GPOReport $_.DisplayName –ReportType HTML –Path $report }Get-GPO –all | Foreach { $report="F:\GPReports\{0}.htm" –f $_.displayName.Replace(" ","") Get-GPOReport […]


Добавление часов в консоли PowerShell

Часто удобно в заголовок консоли PowerShell выводить какую либо динамическую информацию, например время. Это можно сделать разными способами, лучший из них использование другого процесса который будет заменять нужные данные. Пишем функцию. function Add-Clock { $code = { $pattern = ‘\d{2}:\d{2}:\d{2}’ do { $clock = Get-Date -format ‘HH:mm:ss’   $oldtitle = [system.console]::Title if ($oldtitle -match $pattern) […]


Получаем ключ Windows при помощи PowerShell

Иногда нужно получить ключ Windows, который находится в реестре, но он там записан в виде ID, а поэтому его после считывания необходимо преобразовать в соответствующий вид. function Get-ProductKey { $map="BCDFGHJKMPQRTVWXY2346789" $value = (get-itemproperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").digitalproductid[0x34..0x42] $ProductKey = "" for ($i = 24; $i -ge 0; $i—) { $r = 0 for ($j = 14; $j […]


Создание параметров реестра при помощи PowerShell

Небольшая функция позволит достаточно просто создавать новые ключи реестра function New-RegKey { param($key)   $key = $key -replace ‘:’,» $parts = $key -split ‘\\’   $tempkey = » $parts | ForEach-Object { $tempkey += ($_ + "\") if ( (Test-Path "Registry::$tempkey") -eq $false) { New-Item "Registry::$tempkey" | Out-Null } } }function New-RegKey { param($key) $key […]


Поиск ошибок дисковых контролеров при помощи PowerShell

Проанализировав журнал событий системы на наличие события с Event ID : 3221487627 можно получить информацию об ошибках контроллера диска : PS> Get-EventLog -LogName System -InstanceId 3221487627 -ea 0 | ForEach-Object { $_.ReplacementStrings[0] } | Group-Object -NoElement | Sort-Object Count -Descending Count Name —— —- 23 \Device\Harddisk2\DR4 21 \Device\Harddisk2\DR2 7 \Device\Harddisk2\DR3PS> Get-EventLog -LogName System -InstanceId 3221487627 […]