главная    •     Новости      •     софт      •     RSS-ленты     •     реклама      •     PDA-Версия      •    Контакты
Windows XP    •      Windows 7     •    Windows 8    •    Windows 9-10-11     •    Windows Server     •    Железо
Советы      •     Администрирование      •     Сеть      •     Безопасность      •     Статьи      •     Материалы
Реклама на сайте
Книга жалоб и предложений
Правила на сайте
О Winblog.ru и о копирайте
Написать в редакцию
Конфиденциальность
                       
  • Microsoft Edge - еще более безопасный!
  • ActiveCloud - надежный провайдер облачных услуг для вашей компании
  • ANYSERVER - ваш поставщик б/у серверов из Европы
  • Настройка контекстной рекламы в Yandex и Google: Эффективный путь к росту вашего бизнеса
  • Коммутаторы с функцией PoE: Обеспечение эффективной передачи данных и питания
  • Очередное обновление сломало выключатель компьютеров на Windows 11
  • Если вы недостаточно хорошо освоили PowerShell, то наверняка не стремитесь применять этот инструмент в повседневной работе. Однако дананя оболочка является ядром таких систем, как Exchange 2007, Windows Server 2008 и SQL Server 2008. Поэтому любому администратору нужно научиться использовать её огромные возможности.

    В этой статье я постараюсь описать несколько полезных и удобных приёмов работы с PowerShell. К тому же умение пользоваться командной строкой, в отличие от щелканья кнопками мыши, всегда производит впечатление на окружающих.

    Замечание: Будьте осторожны, предельно осторожны

    Название этого инструментария точно передает его суть. PowerShell (мощная оболочка) способна изменять конфигурацию системы кардинальным образом, причем как в хорошую, так и в плохую сторону. Поэтому эксперименты лучше проводить в тестовом режиме. Также не стоит забывать о применении параметра “-confirm” для проверки конфигурации перед запуском тех или иных команд.

    Отчет обо всех установленных USB-устройствах

    PowerShell осуществляет доступ к технологии централизованного управления системой Windows Management Instrumentation (WMI). При помощи PowerShell администратор может дать команду WMI произвести поиск всех установленных на локальную или удаленную машину USB-устройств:

    gwmi Win32_USBControllerDevice –computername SERVER1 |fl Antecedent,Dependent


    Фильтр вернёт список главных и зависимых USB-устройств компьютера SERVER1. Если не задействовать фильтр, то можно получить полный список подключенного к машине USB-оборудования. Это полезно для ведения регулярных отчетов об установленных лицензионных USB-устройствах, где будут отображаться данные о подключении каждого объекта.

    Использование PowerShell вместо коммандера CMD

    Тот факт, что для решения одних и тех же задач оболочку PowerShell можно использовать вместо командной строки DOS, поможет несколько облегчить процесс обучения и привыкнуть к новому интерфейсу. К сожаленью, строка выполнения (run) не позволяет запускать трехбуквенные команды, например cmd. Но с этой задачей легко справляется PowerShell. Можно назначить специальную команду для быстрого вызова коммандера, например Ctrl + Shift + P.

    Использование PowerShell для закрытия процессов вместо Диспетчера задач

    Если какая-либо служба Windows не отвечает на запрос о прекращении работы, то ее можно закрыть при помощи PowerShell. Оболочка наделена эквивалентной Диспетчеру задач функцией остановки процессов. Например, для того, чтобы остановить процесс BadThread.exe, нужно проделать следующее:

    get-process BadTh*


    Результат будет таким:

    Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
    ------- ------ ----- ----- ----- ------ -- -----------
    28 4 -210844 -201128 -163 25.67 2792 BadThread


    После того, как идентификационный номер процесса будет определён, его можно закрыть, введя команду:

    stop-process –id 2792


    После чего функция BadThread будет остановлена и теперь опять же с помощью PowerShell можно попробовать заново запустить соответствующую службу.

    Использование команды PSDrive для отображения списка дисков и не только

    Команда PSDrive позволяет не только просматривать локальные, удаленные и съемные диски, но и получить доступ к улею реестра HKEY_LOCAL_MACHINE. Для этого нужно задействовать параметр HKLM:

    PS C:\> cd HKLM:
    PS HKLM:/>


    В результате откроется улей реестра, где администратор может просматривать и даже удалять любые объекты.

    Назначение NTFS полномочий — возможна ли рекурсия?

    Управление правами доступа в файловой системе NTFS — отдельная тема для разговора, однако PowerShell дает возможность назначения полномочий NTFS для аудита доступа пользователей и отображения списков управления доступом (Access Control Lists) в рамках настройки конфигурации безопасности. Это отличное программно реализуемое средство ведения регулярной отчетности, которое также можно использовать для анализа частных случаев возникновения неисправностей. К примеру, зададим следующий цикл:

    PS E:\>Get-Acl N:\Data


    Система выдаст отчёт о правах доступа пользователя к той или иной директории (одного, но не всех пользователей). Само по себе это не так уж и впечатляет, поскольку отчёт касается лишь одного каталога, но если вы хотите включить рекурсию для целой папки, можно применить иную стратегию. Для той же директории (N:\Data) введём в строке оболочки PowerShell команду Get-ChildItem (cmdlet) в сочетании с другой командой Get-Acl:

    PS E:\>Get-ChildItem N:\Data -recurse | Get-Acl


    В результате будет выдан список контроля доступа пользователей к содержимому данного каталога. Дело в том, что команда Get-ChildItem проводит инвентаризацию объектов файловой системы, а Get-Acl выводит результаты этой инвентаризации по каждому объекту.
    При желании можно сохранить этот отчёт в файле разделяемых запятыми значений, для чего нужно будет ввести: “| export-csv c:\filename.csv” в конце команды cmdlet. Для сохранения отчёта в текстовом файле — “> C:\filename.txt” в конце той же команды. Имейте в виду, что при использовании параметра –recurse, функция осуществит проверку всей указанной директории. Поэтому будьте осторожны, применяя его для инвентаризации больших каталогов или целой сети.

    Преимущества PowerShell 2.0

    Оболочка PowerShell 2.0 встроена в платформу Community Technology Preview (CTP) и снабжена отменным графическим интерфейсом Graphical PowerShell. Сценарии оболочки можно сохранять в файлы с расширением .ps1, благодаря чему становится возможно осуществлять удобное управление, импорт и обмен ими между системами. На изображении A показаны приведённые выше примеры назначения NTFS-полномочий в режиме графического интерфейса.

    10 полезных приёмов при работе с оболочкой PowerShell
    Изображение A.


    Вам необходиом будет скофигурировать политики исполнения (execution policy). Пример конфигурирования политики:

    PS C:>Set-ExecutionPolicy Restricted (check only)
    PS C:>Set-ExecutionPolicy AllSigned (most secure)
    PS C:>Set-ExecutionPolicy RemoteSigned (medium secure)
    PS C:>Set-ExecutionPolicy Unrestricted (least secure)


    Решив опробовать PowerShell 2.0 в деле, имейте в виду, что вам понадобится пакет WS-MAN v1.1, а для работы с графическим интерфейсом необходим набор инструментов Microsoft .NET Framework 3.0.

    Комбинации клавиш для работы в графическом интерфейсе Graphical PowerShell

    Если вы работали с SQL Query Analyzer, то вам уже знакомы некоторые из следующих сочетаний клавиш. В графическом интерфейсе Graphical PowerShell можно выделить одну или несколько строк и запустить их, нажав F5. А при редактировании сценария ускорить процесс помогут знакомые комбинации: Ctrl + S для сохранения, Ctrl + Z для отмены предыдущей операции, Ctrl + C для копирования и Ctrl + V для вставки.

    Выполнение длительных процессов в фоновом режиме

    Если вызванная командой cmdlet процедура работает слишком долго, PowerShell способна переключить её в фоновый режим. Можно одновременно запустить несколько процессов, которые будут выполняться столько, сколько им потребуется. Переключение в фоновый режим осуществляетcя, если в начале команды перед названием процесса ввести start-psjob. Можно послать запрос для выявления статуса всех выполняемых операций:

    PS C:>get-psjob


    PowerShell выдаст таблицу, где отображён ход всех процессов, при этом каждой сессии будет присвоен свой идентификатор. На изображении B показана ошибка в одном из процессов.

    10 полезных приёмов при работе с оболочкой PowerShell
    Изображение B


    Одно небольшое замечание по PowerShell 2.0: перед её использованием необходимо настроить политику выполнения команд через обычную неграфическую оболочку PowerShell. Конфигурация одной из политик запуска:

    Для выключения прерванного процесса введите команду:

    PS C:>remove-psjob 9


    Создание временных маркеров в отчётах PowerShell

    При помощи временных меток в выдаваемых PowerShell отчётах можно определить, как долго длилась та или иная операция, а также регистрировать сценарии. Очень полезная функция для проверки сценариев в Graphical PowerShell. Чтобы создать временной маркер, введите в нужном файле .ps1 одной строкой любую из следующих команд:

    Command
    "$(Get-Date -format g) Start logging"
    "$(Get-Date -format F) Start logging"
    "$(Get-Date -format o) Start logging"
          Output example
    2/5/2008 9:15 PM
    Tuesday, February 05, 2008 9:15:13 PM
    2008-02-05T21:15:13.0368750-05:00


    Существует множество форматов команды Get-Date, но этих трёх параметров обычно бывает достаточно для выполнения всех операций, связанных с временными метками

    Пошаговый просмотр результатов

    Многие команды в PowerShell выдают мгновенные отчёты, которые невозможно просмотреть на экране, если не экспортировать их в отдельный файл. Для возвращения результатов выполнения команд вновь используем Get-ChildItem. Просматривать отчёт станет значительно удобнее, если каждая новая его строка будет появляться через полсекунды после предыдущей. Для этого создадим функцию EasyView:

    function EasyView { process { $_; Start-Sleep -seconds .5}}


    Теперь для вызова функции EasyView достаточно ввести её имя после вертикального разделителя в конце команды Get-ChildItem:

    Get-ChildItem N:\Data | EasyView


    Для этой функции мы настроили отображение каждой последующей строки отчёта через 0,5 секунды. При желании можно указать в значение в миллисекундах.

    Автор: Rick Vanover
    Версия на английском: techrepublic.com.com
    Копирование статьи разрешается только в случае указания явной гиперссылки на веб-сайт winblog.ru, как на источник русскоязычной версии.


    Оцените статью: Голосов

    Материалы по теме:
  • Десять поводов научиться использовать PowerShell
  • Настройка выполнения сценариев PowerShell с помощью групповой политики
  • Использование PowerShell для выявления файлов, занимающих слишком много места
  • Десять незаменимых серверных инструментов Windows
  • Десять команд PowerShell, которые должен знать каждый администратор Windows
    1. #2

      Мне нужно получить список каталогов/файлов и права пользователей на эти русурсы. Делаю это так:

      get-childitem q:\ -recurse | get-acl | format-table -wrap -autosize

      Сам не являюсь владельцем всех папок и нет к ним доступа, вледствии чего получаю ошибку. И пропустить ее никак не получаеться. Поскажите как это можно реализовать обработку ошибки в этом случае?

    2. #1

      Является ядром lol




    Для отправки комментария, обязательно ответьте на вопрос

    Вопрос:
    Сколько будет один минус один?
    Ответ:*




    ВЕРСИЯ ДЛЯ PDA      СДЕЛАТЬ СТАРТОВОЙ    НАПИШИТЕ НАМ    МАТЕРИАЛЫ    ОТ ПАРТНЁРОВ

    Copyright © 2006-2022 Winblog.ru All rights reserved.
    Права на статьи принадлежат их авторам. Копирование и использование материалов разрешается только в случае указания явной гиперссылки на веб-сайт winblog.ru, как на источник получения информации.
    Сайт для посетителей возрастом 18+