Аппаратная виртуализация обеспечивает производительность виртуальной машины, практически аналогичную производительности невиртуализованной машины, эту технология необходима для того чтобы была возможность работать с виртуальными машинами на вашем компьютере. По умолчанию на некоторых виртуализация может быть выключена. В данной статье я расскажу как узнать поддерживает ли ваш процессор технологию Intel VT-X (процессоры Intel) или AMD-V(процессоры AMD). Так же из этой статьи вы узнаете как включить технологию Intel VT-X и AMD-V.

Intel VT-x это аппаратаная виртуализация от компании Intel. Для того чтобы узнать поддерживает ли ваш процессор технологию Intel VT-X скачиваем программу CPU-Z. . После запуска в окне программы смотрим технологии который поддерживает ваш процессор:

Если в графе «Instruction» есть VT-X - значит ваш процессор поддерживает виртуализацию.

AMD-V

AMD-V - технология аппаратной виртуализации от AMD. Для проверки поддержки вашего процессора этой технологии нам так же понадобится программа CPU-Z, запускаем ее и смотрим пункт «instruction». Если там есть AMD-V значит ваш процессор поддерживает виртуализацию:

Включение VT-X/AMD-V в Bios

Загружаемся в Bios. В Биосе картина у всех может быть разная, нам надо найти упоминание о виртуализации (intel virtualization technology или virtualization) и включить эту функцию. В моем случае было так:


Сохраняем настройки Bios и перезагружаемся. Вот и все, виртуализация включена включена!

Включение VT-X/AMD-V в UEFI

В случае с UEFI мне пришлось перейти на вкладку Advanced > CPU configuration и там включить виртуализацию:

После включения VT-X и AMD-V у вас появляется возможность создавать виртуальные машины на вашем компьютере

Включаем аппаратную виртуализацию центральных процессоров , технологии AMD - AMD-V и Intel - VT-X. Подробно о том, как проверить поддерживается ли виртуализация процессором и как включить виртуализацию в BIOS. Проверяется и включается технология просто….

Виртуализация это - под виртуализацией подразумевают процессорную архитектуру с возможностью моделирования аппаратного обеспечения (виртуальных гостевых систем) программными методами . Технология виртуализации делает возможным запуск нескольких операционных систем (виртуальных ОС) на одном реальном физическом компьютере, с изолированными разделёнными вычислительными процессами, с выделенными логическими ресурсами, часть - процессорных мощностей, объёма оперативной памяти , файловой подсистемы от общего пула.

Простыми словами, виртуализация даёт возможность пользователю, запустить на одном физическом персональном компьютере разноплановые виртуальные машины с разными видами операционных систем (Windows, Android, Linux, MacOS X) или одинаковые, с любым набором программ. Наиболее востребована на данный момент у игроманов, позволяет запустить и ускорить .

Как проверить - поддерживается и включена ли виртуализация.

Для тех, кто опасается заходить в BIOS, проверить поддерживается процессором технология виртуализации или нет и включена ли она в БИОСе, можно программой SecurAble. Утилита бесплатна, не требует установки - версия portable, буквально в два клика - запустили, узнали результат, закрыли. Скачать программу можно зайдя на официальный сайт SecurAble либо скачать по прямой ссылке с - оф. сайта.


Параметры SecurAble:
1. Значение параметра Maximum Bit Length указывает на максимально доступную разрядность системы 32-bit или 64-bit.

2. Значения Hardware D.E.P - технология отвечающая за безопасность, внедрена для противодействия запуску вредоносного кода.

3. Опция Hardware Virtualization - параметр может выдать четыре значения:
Yes - технология виртуализации поддерживается процессором - включена;
No - виртуализация не поддерживается процессором;
Locked On - включена и поддерживается, но не может быть в BIOS выключена;
Locked Off - поддержка технологии есть, но отключена и в BIOS включить нельзя.

Надпись Locked Off не всегда является приговором - перепрошивка BIOS может исправить ситуацию.

Как включить виртуализацию в BIOS.

За включение аппаратной виртуализации в БИОСе отвечает Virtualization Technology. Для отключения опции или включения виртуализации в BIOS, отправляем ПК на перезагрузку. При проявлении первых признаков загрузки, клацаем по клавише клавиатуры «F2» или «Delete» (разные версии БИОС), ищите подсказку внизу экрана на старте.

Заходим в раздел «Advanced BIOS - Features», находим опцию «Virtualization» или «Advanced» → «CPU Configuration», опция «Intel Virtualization Technology».


Передвигаемся при помощи стрелок клавиатуры (в БИОС UEFI мышкой), нажимаем «Enter», меняем параметр у «Virtualization» с «Disabled» (отключено) на «Enabled» (включено). Виртуализацию включили в BIOS, осталось не упустить один важный клик - не забываем нажать на кнопку «F10», что соответствует значению - сохранить настройки (Save).

И самое главное, помните - Virtualization Technology лишь создаёт среду для эмуляторов Андроид, операционных систем и на фактическую производительность железа никак не влияет (не делает компьютер мощным). Потрудитесь сначала , выбирая комплектующие с умом и лишь затем что-то требуйте от него.

На сегодняшний день известно, что поддержка аппаратной виртуализации Intel VT-x/VT-d и AMD-V необходима для работы виртуальных машин, таких как VirtualBox и VMware Workstation , а также для работы так называемых программ эмуляторов мобильных операционных систем, например для ОС Android.

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

В данной версии BIOS переходим во вкладку advanced BIOS features, где так же видим в пункте virtualization поддержку данной технологии.


И здесь в пункте advanced BIOS features видно, что аппаратная виртуализация поддерживается процессором.


Ну и последний вариант, где во вкладке advanced в пункте secure virtual machine mode, мы также может включить данную технологию.

Но бывают и такие случаи, что в BIOS-е нашего компьютера нет пункта включения аппаратной виртуализации secure virtual machine mode или intel virtualization technology , хотя как говорят, что тот процессор который стоит в вашем компьютере поддерживает данную технологию. Для того чтобы убедится в этом, нам поможет маленькая утилита под названием SecurAble, которая точно покажет поддерживает ли наш процессор аппаратную виртуализацию. Переходим на официальный сайт производителя по ссылке https://www.grc.com/securable.htm, где внизу нажимаем на пункт Download Now. Начнется загрузка, после запускаем программу, устанавливать её не надо, так как эта портативная версия.


После запуска, программа сразу покажет информацию о том поддерживает или не поддерживает технологию виртуализации ваш процессор. Увидеть это можно в третьем по счету блоке. Как вы уже догадались, если стоит надпись yes значит поддержка есть.


Если написано Locked OFF, это значит что, поддержка данной технологии есть, но её надо включить. А включается она, как мы уже знаем, в BIOS -е нашего компьютера.


Ну и если блок имеет надпись NO, значит технология аппаратной виртуализации не поддерживается вашим процессором.


Оставляйте своё мнение о данной статье, ну и конечно же задавайте свои вопросы если у вас что то вдруг пошло не так.

Спасибо за внимание!

В общем на днях я столкнулся с такой проблемой, как невозможность запуска гостевых операционных системах на виртуальной машине . Точнее сказать, я не мог запускать именно 64-х разрядные системы, хотя процессор у меня такие вполне себе поддерживает. Также, была проблема с запуском дистрибутива Linux с флешки, появлялась так же самая проблема.

Покопавшись как-то ночью в интернете, я обнаружил некий параметр Virtualization Technology, который включает технологию виртуализации. Она активируется в BIOS. Таким образом, если ее активировать, то вы сможете без проблем использовать гостевые системы на таких виртуальных машинах , как, например, и другие. В основном, данная функция на работу системы не влияет, по умолчанию, она отключена (Disabled).

В разных системах BIOS она может иметь разные названия, например, Virtualization, Vanderpool Technology, VT Technology.

Итак, аппаратная виртуализация, мы поняли, что она дает поддержку со спец. Процессорной архитектурой. Существует две технологии виртуализации: AMD-V и Intel-VT.

AMD-V – данная технология еще имеет аббревиатуру SVM (Secure Virtual Machines). Технология ввода/вывода IOMMU. Оказывается, она даже по эффективнее, чем Intel-VT.

Intel-VT (Intel Virtualization Technology) – в данной технологии реализована виртуализация реальной адресации. Может обозначаться аббревиатурой VMX (Virtual Machine eXtension).

Я не буду расписывать, что обозначают эти технологии в подробности, так как, об этом написано кучу информации в интернете.

Как включить Virtualization Technology?

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

В разных видах BIOS пункт может находится в разных местах, например, в BIOS фирмы AWARD и системных платах Gigabyte вы увидите ее, как только попадете в BIOS, чтобы включить, нужно всего лишь перевести параметр в положение «Enabled» .


В BIOS фирмы American Megatrends Inc данная технология включена по умолчанию и находится во вкладке «Advanced» . Там вы сможете ее включить или отключить.


В BIOS некоторых ноутбуков HP (Hewlett-Packard Company) и BIOS InsydeH20 Setup Utility функция виртуализации отключена. Чтобы ее активировать нужно перейти во вкладку «System Configuration» .


http://сайт/wp-content/uploads/2016/06/virtualization-technology.jpg http://сайт/wp-content/uploads/2016/06/virtualization-technology-150x150.jpg 2017-04-21T11:45:19+00:00 EvilSin225 Windows AMD-V,intel virtualization technology что это,Intel-VT,virtualization technology,virtualization technology в биосе что это В общем на днях я столкнулся с такой проблемой, как невозможность запуска гостевых операционных системах на виртуальной машине. Точнее сказать, я не мог запускать именно 64-х разрядные системы, хотя процессор у меня такие вполне себе поддерживает. Также, была проблема с запуском дистрибутива Linux с флешки, появлялась так же самая... EvilSin225 Андрей Терехов Administrator Компьютерные технологии

Виртуализация может понадобиться тем пользователям, которые работают с различными эмуляторами и/или виртуальными машинами. И те и те вполне могут работать без включения данного параметра, однако если вам требуется высокая производительность во время использования эмулятора, то его придётся включить.

Важное предупреждение

Изначально желательно убедиться, есть ли у вашего компьютера поддержка виртуализации. Если её нет, то вы рискуете просто зря потратить время, пытаясь произвести активацию через BIOS. Многие популярные эмуляторы и виртуальные машины предупреждают пользователя о том, что его компьютер поддерживает виртуализацию и если подключить этот параметр, то система будет работать значительно быстрее.

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

  • Виртуализация уже подключена по умолчанию (такое бывает редко);
  • Компьютер не поддерживает этот параметр;
  • Эмулятор не способен произвести анализ и оповестить пользователя о возможности подключения виртуализации.

Включение виртуализации на процессоре Intel

Воспользовавшись этой пошаговой инструкцией, вы сможете активировать виртуализацию (актуальна только для компьютеров, работающих на процессоре Intel):


Включение виртуализации на процессоре AMD

Пошаговая инструкция выглядит в этом случае похожим образом:


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

Мы рады, что смогли помочь Вам в решении проблемы.

Опрос: помогла ли вам эта статья?

Да Нет

lumpics.ru

Virtual Secure Mode (VSM) в Windows 10 Enterprise

В Windows 10 Enterprise (и только в этой редакции) появился новый компонент Hyper-V под названием Virtual Secure Mode (VSM). VSM – это защищённый контейнер (виртуальная машина), запущенный на гипервизоре и отделенный от хостовой Windows 10 и ее ядра. Критичные с точки зрения безопасности компоненты системы запускаются внутри этого защищенного виртуального контейнера. Никакой сторонний код внутри VSM выполняться не может, а целостность кода постоянно проверяется на предмет модификации. Такая архитектура позволяет защитить данные в VSM, даже если ядро хостовой Windows 10 скомпрометировано, ведь даже ядро не имеет прямого доступа к VSM.

Контейнер VSM не может быть подключен к сети, и никто не может получить административные привилегии в нем. Внутри контейнера Virtual Secure Mode могут храниться ключи шифрования, авторизационные данные пользователей и другая критичная с точки зрения компрометация информация. Таким образом, атакующий теперь не сможет с помощью локально закэшированных данных учетной записи доменных пользователей проникнуть внутрь корпоративной инфраструктуры.

Внутри VSM могут работать следующие системные компоненты:

  • LSASS (Local Security Subsystem Service) – компонент, отвечающий за авторизацию и изоляцию локальных пользователей (таким образом система защищена от атак типа “pass the hash” и утилит типа mimikatz). Это означает, что пароли (и/или хэши) пользователей, зарегистрированных в системе, не сможет получить даже пользователь с правами локального администратора.
  • Виртуальный TPM (vTPM) – синтетическое TPM устройство для гостевых машин, необходимое для шифрования содержимого дисков
  • Система контроля целостности кода ОС – защита кода системы от модификации

Для возможности использования режима VSM, к среде предъявляются следующие аппаратные требования:

  • Поддержка UEFI, Secure Boot и Trusted Platform Module (TPM) для безопасного хранения ключей
  • Поддержка аппаратной виртуализации (как минимум VT-x или AMD-V)

Как включить Virtual Secure Mode (VSM) в Windows 10

Рассмотрим, как включить режим Virtual Secure Mode Windows 10 (в нашем примере это Build 10130).


Проверка работы VSM

Убедится, что режим VSM активен можно по наличию процесса Secure System в диспетчере задач.

Или по событию “Credential Guard (Lsalso.exe) was started and will protect LSA credential” в журнале системы.

Тестирование защиты VSM

Итак, на машины с включенным режимом VSM регистрируемся под доменной учетной записью и из-под локального администратора запускаем такую команду mimikatz:

mimikatz.exe privilege::debug sekurlsa::logonpasswords exit

Мы видим, что LSA запущен в изолированной среде и хэши паролей пользователя получить не удается.

Если ту же операцию выполнить на машине с отключенным VSM, мы получаем NTLM хэш пароля пользователя, который можно использовать для атак “pass-the-hash”.

После перехода на операционную систему Windows 10 многие пользователи заметили в интерфейсе Проводника кнопку «Запустить PowerShell». В связи с этим в сети появилось много вопросов, пользователей интересовало, что это за программа Windows PowerShell и для чего она нужна. Если вас также интересует этот вопрос, то данный материал должен вам помочь.

Что такое Windows PowerShell

Windows PowerShell – это скриптовый язык и программа с интерфейсом командной строки для выполнения этих скриптов. Данный язык был выпущен в 2006 году в составе второго сервис-пака для Windows XP и с тех пор PowerShell является частью всех операционных систем от Microsoft. В 2008 году появилась вторая версия данного языка, и начиная с Windows 7 используется именно она. Файлы со скриптами Windows PowerShell имеют расширение PS1 и могут запускаться как привычные всем BAT и CMD файлы.

Windows PowerShell – это скриптовый язык, который разрабатывался в первую очередь для бизнес-клиентов Microsoft, которым нужно мощные инструменты для автоматизации задач по управлению серверами и компьютерами на базе Windows. В качестве основы для данного языка была использована платформа.NET, разрабатываемая компанией Microsoft с 2002 года.

Windows PowerShell позволяет автоматизировать массу разнообразных задач. С его помощью можно управлять файлами, службами, процессами, аккаунтами и настройками. Язык PowerShell понимает многие команды из обычной Командной строки Windows (CMD), но он имеет и свой собственный язык, состоящий из собственных команд, которые здесь называются командлетами.

Командлеты (на английском cmdlets) формируются по правилу Глагол-Существительное, например, Get-Help. Ознакомиться с основами Windows PowerShell можно с помощью справки (командлет «Get-Help»). Для получения общей информации просто введите команду «Get-Help», для получения справки о конкретном командлете введите «Get-Help Имя-командлета». Например, если ввести команду «Get-Help Get-Process», то мы получим справку о командлете Get-Process.

Как запустить программу Windows PowerShell

Программу Windows PowerShell можно запустить разными способами. Самый простой вариант, это просто воспользоваться поиском в меню «Пуск». Для этого откройте меню «Пуск», введите поисковый запрос «Windows PowerShell», после чего откройте найденную программу.

Также можно с помощью комбинации клавиш Windows-R и ввести команду «powershell».

В Windows 10 программу PowerShell можно запустить из любой папки. Для этого нужно нажать на кнопку «Файл» в верхнем левом углу Проводника и выбрать «Запустить Windows PowerShell».

Как пользоваться программой Windows PowerShell

Как мы уже сказали, с помощью программы PowerShell можно автоматизировать многие рутинные задачи в операционной системе Windows. Для примера мы продемонстрируем некоторые возможности, которыми обладает данный инструмент, для того чтобы стало понятно, как им пользоваться.

Очистка корзины . Для очистки корзины существует специальный командлет, который называется «Clear-RecycleBin ». Данный командлет пригодится при написании скриптов для обслуживания компьютеров. При выполнении командлета нужно указать диск, на котором нужно очистить корзину. Пример:

Clear-RecycleBin c:

На скриншоте внизу видно, как выполняется данный командлет. После введения команды «Clear-RecycleBin c: » появляется запрос на подтверждение. Для того чтобы продолжить выполнение командлета нужно ввести букву «Y» и нажать Enter.

Если к командлету «Clear-RecycleBin c: » добавить «-Force », то очистка корзины выполнится без запроса на подтверждение. Скриншот внизу.

Архивация файлов . Для архивации и распаковки файлов предусмотрены командлеты «Compress-Archive » и «Expand-Archive «. Например, для того чтобы архивировать папку «C:\test\» в архив «C:\archive\test2.zip» нужно выполнить следующий командлет:

Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip

В результате выполнения показанной выше команды, в папке «C:\archive\» появится файл «test2.zip», в котором будет заархивировано содержимое папки «C:\test\».

Список командлетов для Windows PowerShell

Для Windows PowerShell существует огромное количество разных командлетов и описать их все в одной статье не получится. Поэтому предлагаем ознакомиться с самыми востребованными из них:

  • Get-Help – получение справки;
  • Update-Help – обновление справки;
  • Get-Command – поиск командлетов;
  • Get-Alias – поиск псевдонимов для командлетов;
  • Get-PSDrive – просмотр подключенных дисков;
  • Get-Member – просмотр свойств и методов, которые есть у объекта;
  • Get-WindowsFeature – просмотр сведений о доступных ролях и компонентах сервера;
  • Install-WindowsFeature (аналог Add-WindowsFeature) — устанавливает роли или компоненты на нужный сервер;
  • Uninstall-WindowsFeature (аналог Remove-WindowsFeature) – удаляет роли или компонента сервера;
  • Get-History – просмотр истории команд, которые вводились в этой сессии;
  • Get-Variable – просмотр списка переменных и их значений;
  • New-Variable – создание новой переменной;
  • Set-Variable – установка значения переменной;
  • Clear-Variable – удаление значения переменной;
  • Remove-Variable – удаление переменной и ее значения;
  • Format-List – просмотр результата команды в виде списка свойств, где в каждой строке отдельное свойство;
  • Format-Table — просмотр результата команды в формате таблицы;
  • Format-Wide — просмотр результата команды в виде широкой таблицы, в которой показывается только одно свойство для каждого объекта;
  • Format-Custom – просмотр результата команды с использованием пользовательского представления;
  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импорт данных из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;

Полный список командлетов для Windows PowerShell вы можете получить, выполнив командлет «Get-Command -CommandType cmdlet».

Опытные пользователи операционной системы Windows 10 могли слышать об утилите командной строки PowerShell. Также с ней могут быть знакомы имеющие опыт работы с Windows 7 и 8.1. После многих лет использования приложения командной строки Windows и файлов формата.bat пришло время познакомиться с более функциональным инструментом.

PowerShell является ценным пополнением списка инструментов Windows и его масштаб может отпугнуть некоторых пользователей. Что это — скриптовый язык или командная оболочка? Не стоит беспокоиться: несмотря на обширные возможности, освоить PowerShell по силам каждому.

Шаг 1: установка

Для начала нам необходима сама утилита PowerShell. Если вы работаете с Windows 10, у вас уже установлена версия PowerShell 5. Обновление Windows 10 Anniversary Update использует версию 5.1, но разница незаметна. В Windows 8 и 8.1 применяется PowerShell 4, чего тоже вполне достаточно. Установка PowerShell на Windows 7 не доставит проблем, но всё же пару лишних шагов придется сделать. В частности, нужно дополнительно установить.Net Framework. Можно установить Windows Management Framework, в состав которого входит PowerShell.

У PowerShell есть два интерфейса. Опытные пользователи могут выбрать полноценный графический интерфейс, известный как Integrated Scripting Environment (ISE). Новичкам лучше использовать консоль PowerShell, простой текстовый интерфейс в стиле командной строки Windows или даже DOS 3.2.

Для запуска PowerShell от имени администратора в Windows 10 нажмите на кнопку «Пуск» и прокрутите список приложений до Windows PowerShell. В Windows 8.1 ищите Windows PowerShell в папке System в Windows. В Windows 7 оболочка располагается в папке Accessories. В качестве обычного пользователя PowerShell можно запустить точно так же, используя левую кнопку мыши вместо правой.

В любой версии Windows можно применить поиск. Для удобства дальнейшего использования можно закрепить PowerShell на панели задач.

Шаг 2: старые команды Windows

Синтаксис команд Windows в PowerShell работает привычным образом. Например, cd меняет папки, dir показывает список всех файлов и папок внутри текущей папки.

В зависимости от метода запуска консоли PowerShell можно начать в c:\Windows\system32 или в c:\Users\ . В примере на скриншоте используется команда cd .. (с пробелом) для перехода на один уровень вверх за раз, затем запускается команда dir для отображения списка файлов и папок в директории C:\ .

Шаг 3: установка файлов помощи

Команды вроде cd и dir не являются активными командами оболочки PowerShell. Это так называемые псевдонимы (aliases) — замены настоящих команд PowerShell. Псевдонимы удобны для тех, кто имеет большой опыт работы с командной строкой. Однако они не затрагивают глубин PowerShell.

Чтобы начать знакомиться с возможностями PowerShell, наберите help и нужную вам команду. На скриншоте показана команда .

Команда help говорит, что dir является псевдонимом команды PowerShell Get-ChildItem . Если набрать get-childitem в PS C:\> , увидите то же самое, что и при использовании команды dir .

Как указано внизу скриншота, файлы помощи для PowerShell не устанавливаются автоматически. Для их получения запустите PowerShell от имени администратора и наберите update-help . Установка файлов помощи займёт несколько минут, ряд модулей могут отсутствовать — например, в данном случае не установились Help for NetWNV и SecureBoot. Когда всё готово, полная система помощи всегда будет давать нужные подсказки.

Теперь наберите команду get-help и любую интересующую вас команду («cmdlet» на языке PowerShell, по-русски командлеты), будет показано её описание. Например, get-help get-childitem выдаёт список опций get-childitem . Также можно вывести разные возможные варианты. Например

get-help get-childitem -examples

выдает семь подробных примеров использования get-childitem . Команда

get-help get-childitem -detailed

включает в себя эти семь примеров и подробные разъяснения каждого параметра в командлете get-childitem .

Шаг 4: получение помощи по параметрам

На скриншоте вы могли заметить два списка под SYNTAX для get-childitem . Наличие двух разных синтаксисов означает возможность применения двух способов запуска командлет. Как держать синтаксис отдельно друг от друга и что означают параметры? Ответ простой, если знать трюк.

Для получения подробностей относительно параметров командлеты get-childitem или любой другой используйте параметр -full :

get-help get-childitem -full

Это выдает список того, что вы можете сделать с командлетой и что случится. Смотрите на скриншот.

Просмотр описания параметров позволяет заметить, что get-childitem даёт возможность получить объект child (вроде названия подпапки или имени файла) в указанном месте, с совпадением определённых символов или без. Например:

get-childItem “*.txt” -recurse

возвращает список файлов «*.txt» в текущей папке и всех подпапках (из-за параметра -recurse ). Тогда как

get-childitem “HKLM:\Software”

возвращает список всех ключей реестра верхнего уровня в HKEY_LOCAL_MACHINE\Software .

Если вы когда-нибудь пытались попасть в реестр при помощи командной строки Windows или файлов.bat, вы сможете оценить функциональность этого варианта доступа.

Шаг 5: изучение имён

Есть причина того, почему показанные до сих пор командлеты выглядят сходным образом: get-childitem, update-help, get-help используют единую схему глагол-существительное. Это соглашение применяют все командлеты PowerShell, в них глагол стоит перед единственным существительным. Это понравится тем, кто в своё время пострадал от непостоянства названий команд в языках VB и VBA.

Взгляните на самые распространенные командлеты:

set-location : устанавливает текущую рабочий локацию на определённую локацию

get-content : получает содержимое файла

get-item : получает файлы и папки

copy-item : копирует объект из одной локации в другую

remove-item : удаляет файлы и папки

: получает процессы, запущенные на локальном или удаленном компьютере

get-service : получает сервисы, запущенные на локальном или удаленном компьютере

invoke-webrequest : получает содержимое с веб-страницы в интернете

Для просмотра работы определённой командлеты используйте get-help как в случае

get-help copy-item -full

На основе описания в помощи можно понять, что необходимо командлете. Например, если вы хотите копировать все файлы и папки из Documents в c:\temp , используйте

copy-item c:\users\ \documents\* c:\temp

Введя эту команду, вы увидите несколько интересных возможностей окружения PowerShell. Например, если набрать copy-i и нажать кнопку Tab, PowerShell заполнит Copy-Item . Если неправильно набрать командлету и PowerShell не может распознать её, даётся полное описание того, что было сделано не так.

Попробуйте данную командлету:

invoke-webrequest askwoody.com

Вы получите краткий список заголовков, изображений, ссылок и прочего содержимого веб-страницы. Обратите внимание в get-help на список invoke-webrequest , который «возвращает коллекцию форм, ссылок, изображений и прочие важные элементы HTML» — именно то, что должно показываться на экране.

Некоторые командлеты помогают управлять самим PowerShell:

get-command : список всех доступных командлет

get-verb : список всех доступных глаголов

clear-host : очистка экрана программы-хоста

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

get-command *-service

Будут показаны все глаголы, доступные с существительным service . Вот их список:

Get-Service

New-Service

Restart-Service

Resume-Service

Set-Service

Start-Service

Stop-Service

Suspend-Service

Можно объединять эти командлеты с другими.

Шаг 6: использование труб

Если вы знакомы с командной строкой Windows или пакетными файлами, то знаете о перенаправлении и трубах. Перенаправление (символ >) и трубы (символ |) берут результат действия и прикрепляют его в другое место. Например, можно перенаправить результат команды dir в текстовый файл или передать результат команды ping в команду find для фильтрования интересных результатов, вроде

dir > temp.txt

ping askwoody.com | find “packets” > temp2.txt

Здесь во второй команде find ищет строку packets , взятую из адреса askwoody.com командой ping и объединяет все совпадающие строки в файл под названием temp2.txt .

Первая из этих команд отлично работает в PowerShell. Для запуска второй команды потребуется нечто вроде

ping askwoody.com | select-string packets | out-file temp2.txt

Использования перенаправления и труб значительно расширяет возможности командной строки Windows: вместо бесконечного прокручивания вниз по экрану в поиске текстовой строки можно отфильтровывать нужные команды Windows.

Powershell обладает поддержкой pipe , причём она не ограничена текстом. PowerShell позволяет передавать целый объект из одной командлеты в другую, где объект представляет собой комбинацию данных (называемых свойствами) и действий (методов), которые могут использовать эти данные.

Сложная часть начинается при выстраивании объектов. Поставляемые одним командлетом объекты должны совпадать с типом объектов, принимаемых получающим командлетом. Текст является весьма простым типом объектов, так что если вы работаете с текстом, выравнивание объектов является простой задачей. Остальные объекты не такие элементарные.

Как это понять? Используйте командлету get-member . Если вы хотите знать, какой тип объекта обрабатывает командлета, проведите её через get-member . Например, если вы пытаетесь понять запущенные на компьютере процессы и сузили опции до командлеты , вот как узнать результат командлеты:

get-process | get-member

Запуск этой командлеты выдаёт длинный список свойств и методов для , но в самом начале списка можно увидеть тип объекта, который создает :

TypeName: System.Diagnostics.Process

Нижеприведенный скриншот также показывает свойства под названием get-process Handles, Name, NPM, PM, SI, VM и WS .

Если вы хотите манипулировать результатом для работы с этим командлетом (вместо отображения длинного списка активных процессов на мониторе), нужно найти другую команду, которая в качестве вводных данных принимает System.Diagnostics.Process . Для поиска нужной командлеты снова используйте возможности PowerShell:

get-command -Parametertype System.Diagnostics.Process

Эта командлета выдает список командлет, которые могут обрабатывать System.Diagnostics.Process .

Некоторые командлеты известны тем, что принимают почти любой вид данных. Главной среди них является . Эта командлета пропускает через себя каждый посылаемый по трубе объект, один за одним, и применяет к нему заданной критерии выбора. Существует специальный маркер под названием $_ , который позволяет использовать каждый предмет в трубе, один за раз.

Допустим, вы хотите получить список всех запущенных на компьютере процессов с названием «svchost», то есть хотите сопоставить свойство Name процессу svchost . Используйте команду:

get-process | where-object {$_.Name -eq “svchost”}

Командлета смотрит на каждый объект System.Diagnostics.Process , сравнивает .Name этого объекта с «svchost»; если есть совпадения, они выдаются на монитор. Смотрите на скриншот.

Шаг 7: анализ полезных команд PowerShell

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

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

Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}

Если запустить эту команду, игнорируйте обозначенные красным цветом предупреждения, и когда команда выполнена, перезагрузите компьютер; все предустановленные программы в Windows 10 появятся на своих местах.

Вот как работает данная команда. Get-AppXPackage проверяет все пакеты приложений в профиле пользователя. Даже если вы удалили приложение, оно остается в списке профиля пользователя.

Командлета Get-AppXPackage возвращает объект TypeName Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage , который включает в себя полное имя пакета приложения и местонахождения соответствующего файла манифеста XML. Если запустить командлету get-appxpackage , вы увидите длинный список пакетов приложений. Скриншот показывает описание приложения Xbox.

Командлета Foreach посредством цикла проходит через каждый объект в AppXPackage , отправляя их командлету Add-AppxPackage . Согласно get-help для Add-AppxPackage , тут есть два ключевых переключателя:

  • Переключатель -Register используется для регистрации существующих установок пакетов приложений, можно задать параметры DisableDevelopmentMode и Register
  • Переключатель -DisableDevelopmentMode говорит Windows заново зарегистрировать существующий пакет приложения, который был отключён, не зарегистрирован или повреждён.

Строка «$($_.InstallLocation)\AppXManifest.x ml» описывает, где расположен файл manifest.xml . Если посмотреть на файлы AppXManifest.xml , вы увидите сложный список идентификаторов приложений, исполняемых файлов и большое количество визуальных элементов, связанных с приложением.

После перезагрузки все добавленные пакеты приложений скачиваются и устанавливаются из магазина Windows Store.

1. Написание скрипта

Скрипт PowerShell (не важно какой версии) - это текстовый файл с расширением *.ps1 .

Вот пример простого Power Shell срипта (файл systemInfo.ps1 ):

# Retrieve WMI object for the operating system

Get-WmiObject Win32_OperatingSystem

Этот файл можно создавать и редактировать, например, в FAR Manager.

Обратите внимание , что FAR Manager хоть и может работать в консоли Power Shell, но выполняет из-под себя скрипты в окружении обычной Windows-консоли cmd . То есть, FAR Manager можно использовать только для создания и редактирования PowerShell скриптов, но не для запуска. Но прежде чем разочаровываться, прочитайте пункт 3.

2. Запуск срипта

Скрипт нужно выполнять из консоли Power Shell, а не из обычной консоли Windows. В консоли Power Shell необходимо перейти в каталог, где лежит скрипт (командами cd ), и затем запустить сам скрипт, обязательно прописав перед ним символы ".\" . Например, имеем путь к файлу скрипта d:\work\systemInfo.ps1 . Тогда команды запуска будут выглядеть так:

cd \

cd work

.\systemInfo.ps1

или так (просто указывается полный путь к скрипту):

d:\work\systemInfo.ps1

Скорее всего, при запуске скрипта появится следующая ошибка:

Не удается загрузить файл D:\work\systemInfo.ps1, так как выполнение скриптов запрещено для данной системы. Введите "get-help about_signing" для получения дополнительных сведений.

строка:1 знак: 18

CategoryInfo: NotSpecified: (:) , PSSecurityException

FullyQualifiedErrorId: RuntimeException

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

Чтобы резрешить выполнение PowerShell скриптов, нужно создать *.bat файл, например enableScript.bat со следующим содержимым:

powershell -Command Set-ExecutionPolicy RemoteSigned

Этот *.bat файл можно выполнить в любой консоли: хоть в PowerShell, хоть в обычной cmd . После выполнения этого файла, PowerShell-скрипты станут запускаться в консоли PowerShell.

3. Запуск PowerShell-скрипта из обычной Windows-консоли cmd

Скрипт PowerShell можно выполнить и из обычной консоли Windows. Для этого можно воспользоваться командой:

Powershell -File ./systemInfo.ps1

Таким образом можно выполнять скрипты прямо из FAR Manager, и они будут работать.

Но тут есть небольшая тонкость. Параметр -File срабатывает только на локальных путях, даже если путь указан относительный "./" . То есть, если *.ps1 - файл лежит на локальном диске C: или D: , то такой вызов будет работать. Но если попробовать выполнить скрипт, расположенный на доменном ресурсе, то скрипт не будет найден. Возможно, это исправят в следующих версиях PowerShell.



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png