Трюки PowerShell. Часть 1

воскресенье, 11 апреля 2010, Alexander Honcharuk

Я начинаю серию статей, в которых буду показывать разные приемы и методы использования PowerShell.

Ну что ж, стартуем.

  • Командлет Get-ItemProperty читает значения реестра. Можно создавать список установленого программного обеспечения одной строкой кода.
    Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | Format-Table DisplayName, Publisher
  • Можно использовать командлет Resolve-Path, что б посмотреть список имен файлов в заданом каталоге. Для примера выведем все log файлы в системной папке Windows.
    Resolve-Path $env:windir\*.log
  • Для просмотра всех записей реестра, например в разделе HKEY_CLASSES_ROOT делаем следующее:
    Dir Registry::HKEY_CLASSES_ROOT
    Можно также смонтировать виртуальный диск, для этой ветки реестра:
    New-PSDrive HKCR Registry Registry::HKEY_CLASSES_ROOT
    И набрав команду
    Dir HKCR:
    мы увидим все записи ветки HKEY_CLASSES_ROOT.
  • Если мы работаем в консоли с папками, и перешли в какой-то каталог, то набрав команду
    ii .
    или
    explorer .
    мы увидим графическое окно Explorer с открытым каталогом.
  • При запуске программы с помощью Start-Process с аргументом -passThru, вы получите объект процесса, представляющий запущеную прогроаммму. После этого вы можете использовать этот объект позже, что б, например, убить процесс программы по мере необходимости.
    $notepad = Start-Process notepad -passthru
    Start-Sleep 2
    Stop-Process -inputObject $notepad
  • Начиная с Vista, у Windows появился инструмент под названием clip.exe, который копирует все, что вы ему передатите в буфер обмена. 
    Например код
    Get-Process | clip
    скопирует в буфер обмена таблицу с процессами, в таком виде:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName          

-------  ------    -----      ----- -----   ------     -- -----------          

     79       4     1064        128    21     0,11   2608 alg                  

    139       8     2324        208    32     0,17   1712 AppleMobileDeviceS...

     34       2     5592        972    30     1,01   1784 aspell               

    121       4    13896      13324    38             632 audiodg              

    127       6     3284       2176    72    80,47   2728 avgnt                

    117      10    82180       7956   145   158,09   1668 avguard              

    179       9     3832       2104    62 2 623,95   4716 bmctl  

А вот такой код скопирует в буфер обмена имена файлов и папок, которые лежат в папке D:\Music.

Set-Location 'D:\Music'
$l = Get-Location
Get-ChildItem $l | clip

  • А вот так можно создавать имена файлов, которые должны составлятся и текущей даты:
    (Get-Date -format 'yyyy-MM-dd hh-mm-ss') + '.tmp'

    Сегодня получился вот такой результат - "2010-04-11 09-38-29.tmp".
  • Для того, что б узнать все IP адреса для некоторого хоста, можно использовать следующий код:
    $hostname = "microsoft.com"
    $result = [system.Net.Dns]::GetHostByName($hostname)
    $result.AddressList | ForEach-Object {$_.IPAddressToString }
    Результатом выполнения которого сейчас есть:
    207.46.232.182
    207.46.197.32
  • Для упрощения создания записей в системном реестре можно с использованием вот такой функции Set-RegistryValue.
    function Set-RegistryValue($key, $name, $value, $type="String") {
        if ((Test-Path $key) -eq $false) { md $key | Out-Null }
        Set-ItemProperty $key $name $value -type $type
    }

И пример её использования:

<code>Set-RegistryValue HKCU:\Software\TestABC myValue Hello<br />Set-RegistryValue HKCU:\Software\TestABC myValue 12 Dword<br /><br /></code>
  • Открыть программно веб сайт через Internet Explorer по его адресу можно так:
  • $ie = new-object -com "InternetExplorer.Application"
    $ie.Visible = $true
    
    $ie.navigate("www.microsoft.com")
Если у вас есть вопросы и пожелания, то пишите в комментах, постараюсь ответить.

Компании из статьи


Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии