Сегодня разберем, как создать резервную копию Windows 7 средствами операционной системы.
Если операционная система Windows 7 работает достаточно стабильно, то можно создать резервную копию Windows 7 для того, чтобы в случае каких-то неполадок на компьютере все возвратить на свои места и восстановить Windows 7 из копии.
Содержание:
В ОС Windows 7 встроены возможности по резервному копированию самой операционной системы.
Таким образом, можно не использовать какой-то сторонний софт, а воспользоваться этими встроенными возможностями Windows 7, создать резервную копию ОС и тогда, в случае какого-то крушения, достаточно просто можно будет восстановиться.
Загрузиться можно с какого-либо установочного носителя и выбрать такой вариант, как восстановление с образа, который предварительно создается встроенными возможностями Windows.
Поэтому полезно такой образ резервной копии создать и система будет восстановлена в полном виде на тот момент, когда получилось создать образ резервной копии, со всеми программами и настройками на системном диске и т. д.
Чтобы создать резервную копию Windows 7 надо зайти в Панель управления и в режиме Все элементы панели управления выбрать пункт Архивация и восстановление.

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

Если архивация Windows 7 ни разу не проводилась, то в открывшемся окне отобразится информация о том, что архивация данных не настроена и будет ссылка – Настроить резервное копирование.

Перед этим надо проверить, чтобы служба архивации была включена. Для этого заходим в Управление компьютером, далее открываем Службы.
Здесь находим Службу модуля архивации на уровне блоков, в Свойствах ставим тип запуска – Вручную и нажимаем Запустить службу.

Как создать резервную копию Windows 7
Итак, чтобы создать резервную копию, в окне Создание образа системы указываем место, куда будет загружаться резервная копия Windows. Это может быть винчестер, DVD-диски, либо можно выбрать место в сетевой папке.
В окошке Архивация и восстановление файлов жмем Настроить резервное копирование. В новом окне — Настройка архивации видим рекомендацию сохранять архив на внешнем носителе информации.

Потому что удобней будет в дальнейшем восстанавливать систему из сохраненной копии. Для примера выберем локальный диск, пусть F, нажимаем Далее.
В окошке Настройка архивации, чтобы создать архив, рекомендуется разрешить, чтобы выбор настройки сделала ОС Windows 7.

Но если данных много и есть ясное понятие, что необходимо именно вам, то допускается избрать другой вариант — Предоставить мне выбор.
Переходим Далее и выбираем диски, которые хотим включить в архив резервной копии Windows. По умолчанию это шифрованный системный раздел и сам системный диск.
Дополнительно здесь есть возможность создать резервную копию всех локальных дисков Windows, кроме того диска, на который планируется сохранять эту резервную копию. Для этого нужно отметить нужные диски галочками.
Выбираем объекты для архивации и поставим чекбокс – Включить образ системы дисков. Жмем Далее.

В новом окне жмем Сохранить параметры и запустить архивацию. Происходит архивация и восстановление данных.

Спустя некоторое время на выбранном диске F появится образ, который поможет в дальнейшем выполнить восстановление системы.
Резервная копия Windows создается в виде папки WindowsImageBackup. Именно в этой папке и будет храниться образ резервной копии системы.
В случае чего можно загрузиться, например, с загрузочной флешки, выбрать установку Windows и выбрать восстановление именно с этого образа.
Диск восстановления системы Windows 7
В панели управления, в разделе Архивация и восстановление есть пункт — Создать диск восстановления системы, который в дальнейшем можно использовать для загрузки компьютера.

На этом диске будут содержаться также средства восстановления Windows. С их помощью можно восстановить Windows в случае серьезного сбоя в работе. Здесь же можно непосредственно запустить и настроить восстановление Windows.
Диск восстановления может пригодиться, когда у вас нет установочного диска Windows. С ним можно восстановить компьютер из образа системы.
Таким образом, чтобы решить вопрос, как создать резервную копию Windows 7, а также диск восстановления, совсем не потребуется использовать какой-то сторонний софт. Достаточно правильно воспользоваться встроенными возможностями самой системы Windows.
Предыстория
В своём топике “Впечатления от Яндекс.Субботника” хабрачеловек absolvo высказал удивление, что один из докладчиков не знал о том, что символьные ссылки есть и в Windows. Честно говоря, не знал этого и я, поэтому поинтересовался об этих ссылках в комментариях.
Думаю, то, что удалось выяснить, может показаться кому-нибудь полезным.

Сразу оговорюсь, что под ссылками в Windows я понимаю ссылки в NTFS. В FAT механизмов ссылок, насколько мне известно, предусмотрено не было.
Ядро Windows поддерживает следующие виды ссылок:
- Hard Links — жёсткие ссылки, как в *nix. Доступны начиная с Windows NT4.
- Junction Points — аналог символических ссылок. Доступен начиная с Windows 2000 (NTFS 5).
- Symbolic Links — символьные ссылки. Доступны начиная с Windows Vista.
Если вы никогда не имели дела с символическими и жёсткими ссылками, но хотели бы узнать о них, советую прочитать отрывок из документации файлового менеджера FAR, спасибо хабрачеловеку allemeine. Там говорится только о Hard Links и Junction Points, но этого вполне достаточно. Symbolic Links действуют так же, как и Junction Points, с той разницей, что могут указывать на файлы (и реализованы в Windows по-другому).
Hard Links можно создавать только на файлы, Junction Points — только на директории, Symbolic Links — на файлы и директории. В дальнейшем под «жёсткими ссылками» подразумеваются Hard Links, под «символьными» — Junction Points и Symbolic Links.
Жёсткие ссылки действительны в пределах одного раздела, символьные — могут пересекать границы разделов. В связи с этим символьные ссылки могут поломаться, если структуру разделов поменять.
Не со всем, что поддерживается ядром, умеет нормально работать эксплорер. Будьте осторожны при использовании Junction Points в версиях Windows до Vista. При удалении Junction Point эксплорер может залезть внутрь директории, на которую ссылается Junction Point и поудалять там всё, а затем удалить Junction Point, хотя должен лишь удалить ссылку. Наверняка могут возникнуть проблемы и при перемещении или копировании Junction Point’ов.
Мне неизвестно, нормально ли в версиях Windows до Vista относятся к Junction Points стандартные утилиты типа rmdir.
Дополнительные материалы по теме
По словам хабрачеловека SamDark, хорошее описание всех видов ссылок есть ещё в справке по NTFS Links (дополнению для Total Commander, см. ниже).
Софт
Утилиты от Microsoft
Windows >= Vista
В Windows Vista добавили команду mklink для создания символьных и жёстких ссылок (спасибо за информацию хабрачеловеку metamorph).
Windows >= 2000
fsutil hardlink create ссылка файл
Создаёт Hard Link на файл (источник).
linkd ссылка директория
Создаёт Junction Point на директорию (источник). Утилита входит в Microsoft Windows Resources Kit.
Расширения для Explorer
NTFS Link интегрируется в Explorer и добавляет во всплывающее меню, появляюшееся после перетаскивания правой кнопкой мыши, пункты «Create junction point» и «Create hard link». Кроме того, она перехватывает вызовы Explorer’а, обеспечивая нормальное перемещение/копирование/удаление созданных ссылок.
NTFS Links — дополнение для Total Commander
Страница программы (за информацию спасибо хабрачеловеку SamDark). Плагин может запускаться как отдельная программа, вне Total Commander’а.
FAR
Junction Link Magic
Junction — консольная программа для создания Junction Points
UPD: обновил топик с учётом комментариев.
Службами в Windows называются процессы, стартующие вместе с системой, не имеющие графического интерфейса и работающие в фоновом режиме, причем большинство служб запускается и работают независимо от того, вошел ли пользователь в свою учетную запись или нет. Эту особенность операционной системы можно использовать в практических целях, например, создать собственную службу, которая станет отслеживать изменения в реестре или отправку пакетов .
В статье от 07 декабря 2020 года мы уже рассматривали процедуру создания служб в Windows 10, предлагая использовать для этой цели стороннюю утилиту Non-Sucking Service Manager, укомплектованную простейшим графическим интерфейсом.
Сегодня мы предлагаем познакомиться со способами создания служб исключительно средствами операционной системы. Используйте их, если в качестве службы вам нужно установить процесс исполняемого файла , так как для назначения службами процессов скриптов всё же удобнее использовать Non-Sucking Service Manager.
Командная строка
Для создания служб в Windows можно использовать встроенную консольную утилиту sc.exe, предназначением которой как раз является добавление, удаление, опрос и конфигурирование системных служб.
Запустите командную строку от имени администратора и выполните в ней команду следующего вида:
sc create MyService binPath=”C:\service.exe” DisplayName= “ServiceName” type=own start=auto

Как нетрудно догадаться, C:\service.exe – это путь к исполняемому файлу службы, ServiceName – отображаемое имя , а MyService – фактическое имя службы, к которому нужно будет обращаться в процессе настройки службы. Параметр type задает статус, в параметр start – тип запуска.

В данном примере служба имеет статус «Отключена», а тип запуска у нее выставлен «Автоматически», в чем можно убедиться, открыв свойства добавленной службы в оснастке управления службами.

Если служба станет больше не нужна, вы всегда сможете ее удалить командой:
sc delete MyService

PowerShell
Средствами создания и управления службами обладает также и консоль .
Запустите ее от имени администратора и выполните следующую команду:
New-Service -Name MyService -BinaryPathName C:\service.exe -DisplayName “ServiceName” -Description ” Service Description”

Ключевыми параметрами являются -Name и -BinaryPathName: первый принимает произвольное имя устанавливаемой службы, а второй – путь к исполняемому файлу службы.

Параметры -DisplayName и -Description являются дополнительными, они задают отображаемое имя и описание службы.

А вот с удалением службы в PowerShell не всё так однозначно.
Если у вас установлена консоль шестой или более новой версии, службу можно будет удалить командой:
Remove-Service -Name MyService
В противном случае придется использовать вот такую хитрую конструкцию, где MyService – имя службы:
(Get-WmiObject win32_service -Filter “name=’MyService'”).delete()

Для тех, кто не в курсе: узнать текущую версию можно командой , билд будет указан в строке Version.

И возвращаясь к службам отметим, что между службами, созданными в командной строке и PowerShell, нет никакой разницы, поэтому для их удаления в том и другом случае вы можете использовать команду sc delete MyService.
Бывает, что имеется некий исполняемый файл, который необходимо зарегистрировать в системе как службу Windows 10. Существует множество различных способов, которые позволяют это сделать. Сейчас мы рассмотрим два основных и проверенных метода создания службы Windows.
Создание службы с помощью программы Sc.exe
Первый способ позволяет создавать службы, используя утилиты, работающие через командную строку. В данном случае, используется инструмент sc.exe. Он позволяет взаимодействовать с функциями API и выполнять операции со службами Windows 10. Несмотря на то, что данная программа даже не обладает графическим интерфейсом, она является мощным инструментом и может контролировать состояние служб, создавать, редактировать и управлять ими.
Если создавать службу, с помощью sc.exe, то не возникает необходимости в изменении параметров реестра и списка служб в диспетчере. Кроме того, утилита способна работать со службами на локальном компьютере, и выполнять те же действия на удаленных машинах.
Чтобы создать новый сервис, откройте командную строку от имени администратора и запустите команду «Sc create». Она запишет новую службу к базе диспетчера служб. Синтаксис команды представлен следующим образом:
- ServiceName — данным параметром определяется имя раздела службы в реестре;
Данное имя не совпадает с тем именем, которое будет отображаться диспетчере (например, в Services). - BinPath — в этом параметре записываем путь, где хранится исполняемый файл.
Чтобы было понятнее, в качестве примера, мы создадим службу «MySevice». При этом, отображаемое имя будет «My New Service». Указываем тип службы и включаем автозапуск:
Sc create MyService binPath=C:\MyService\MyService.exe DisplayName=″My New Service″ type=own start=auto
Теперь откройте оснастку «Services» и взгляните на то, что получилось:

Параметры службы, которая уже была создана и запущена, можно изменить при помощи команды Sc config. К примеру, мы заменим имя службы, которое отображается как:
Sc config MyService DisplayName=″My Service″
А еще можно избавиться от службы полным ее удалением. Для этого используйте такую команду:
Sc delete MyService

С помощью утилиты PowerShell
Ну а с помощью такого мощного инструмента, как PowerShell можно хоть горы двигать. Он обладает большими возможностями и способен работать с различными службами. Здесь, для добавления новой службы, существует специальная команда «New -Service». Давайте попробуем новую службу, как и в прошлом примере, будем использовать те же имена и значения, только добавим дополнительный параметр, в виде описания. И так, команда, для создания нового сервиса, выглядит следующим образом:
New-Service -Name MyService -BinaryPathName C:\MyService\MyService.exe` -DisplayName ″My New Service″ -Description ″Very Important Service !!!″
Для изменения параметров служб, существует команда «Set -Service»:
Set-Service -Name MyService -Description ″Not Very Important Service″ -StartupType Manual

Если не считать дополнительную возможность добавления описаний к службам, PowerShell обладает таким же функционалом, как и утилита Sc.exe. Но есть один маленький минус — здесь нет простой команды для удаления службы. Поэтому приходиться использовать такой вот, немного мудреный, код:
(Get-WmiObject win32_service -Filter ″name=′MyService′″).delete()
Так что утилита sc.exe, в этом плане будет получше. И по этой причине я предпочитаю именно ее.
Автор статьи: Сергей
Это может пригодиться:
- Для чего нужна резервная копия системы Windows 7
- Как сделать резервную копию Windows 7 средствами ОС
- Описание процесса записи диска восстановления ОС
- Как восстановить систему Windows 7, используя резервную копию
- Какие существуют сторонние программы для создания бэкапа Виндовс 7
Операционные системы Microsoft, в том числе Windows 7, дают возможность архивировать и сохранять информацию. Запасная копия очень актуальна при серьезных неполадках в работе ПК, например, при заражении жесткого диска вирусами. Избежать многих проблем позволит использование функции бэкапа Windows. Процедура простая, не требующая обязательной помощи профессионала. Её преимущество перед переустановкой системы в том, что в запасной копии сохраняются все настройки и приложения. Перед тем как запустить работу предустановленных опций архивирования, будет нелишним сохранить папки (Windows Image Backup) с личной информацией пользователя на CD-диске, переносном винчестере либо в облаке.
Для чего нужна резервная копия системы Windows 7
При работе на ПК в его памяти накапливается и сохраняется введенная информация, в том числе установленные драйверы, игры, приложения. Для каждого пользователя эти данные во многом уникальны. При утере их не получится восстановить все вручную. Если, к примеру, понадобится переустановка операционной системы, то восстановится только работоспособность, но не информация с системного диска.

Организация запасного ресурса на ОС Windows 7 (бэкап Windows 7) дает возможность сохранить ее полностью. Такой файл можно записать и на другие носители (диск, флеш-накопитель, облачное хранение). С сохраненного образа получится без труда вернуть весь функционал компьютера, какой был до повреждения операционки.
Как сделать резервную копию Windows 7 средствами ОС
Если речь идет о Windows 7 — как сделать резервную копию образа системы? Для каждого пользователя важно иметь запасной аналог образа операционной системы.

Создание резервной копии
Задавшись целью сделать резервную копию, следует придерживаться данного алгоритма:
- Открыть пункт «Пуск».
- Войти во вкладку «Панели управления».
- Активировать кнопку «Система и безопасность».
- Выбрать строку «Архивация и восстановление».
- Из всплывающего списка выбрать «Настроить резервное копирование» либо «Создание образа системы».
- Указать расположение места, где нужно создавать копию образа ОС, например, выбрать раздел «Предоставить выбор Виндовс».
- Нажать на «Далее».
- В появившемся окошке задать «Расписание» (можно просто тапнуть на «Сохранить параметры и запустить архивацию».
Далее нужно дождаться завершения архивации.
Описание процесса записи диска восстановления ОС
Детально стоит остановиться на процессе снятия копии образа ОС на диске. Особенно важно это, учитывая, что производители, поставляя компьютеры с предустановленной ОС, не комплектуют машину установочным диском Windows. Если другие варианты загрузить компьютер будут безуспешными, аварийный диск может спасти положение.

Создание диска восстановления системы
- Кликнуть меню «Панели управления».
- Тапнуть строку «Архивация и восстановление».
- Установить диск в оптический привод ПК и щелкнуть строку «Создать диск восстановления системы».
- Из появившегося меню выбрать «Создать диск».
По завершению операции загрузочный диск готов для работы. Он на Windows 7 занимает не более 150 МБ памяти.
Важно! Преимущество запуска ОС с дисковода требуется предварительно указать в БИОСе.
Как восстановить систему Windows 7, используя резервную копию
Возобновить операционку с запасной копии по силам даже неопытному пользователю. Для этого требуется только следовать инструкции.

Восстановление потерянных данных с резервной копии
Windowsimagebackup: как восстановить систему Windows 7? Что для этого делать? Для начала нужно иметь сами источники. Они могут храниться несколькими способами. То есть заранее следует скопировать данные образа системы, используя один из носителей информации:
- флеш-накопитель;
- диск;
- облако.
Диск или флешка
Если копия сделана при помощи первых двух вариантов, то алгоритм действий выглядит так:
- Диск или флешку вставить в компьютер. Флеш-карта втыкается в USB-порт, а диск вставляется в дисковод.
- Включить компьютер и открыть диалоговое окно, нажав одну из клавиш, которая привязана к марке компьютера. Для Асер и HP это будет F9, для Самсунг — F10, для Делл и Леново — F12, а для Асус — Esc.
- Удерживать кнопку до появления меню со списком устройств для загрузки. Для каждого бренда вид меню будет разным.
- Выбрать устройство загрузки (CD-дисковод/флеш-накопитель). Символы в названии устройства могут быть такие: ODD, CD, DVD, USB. Если использовать флешку, то высветится ее название.
- Нажать «Enter».
- Если загрузка с диска, на экране компьютера появится новая строка. Действовать нужно по запросу.
- Далее нажать на нужную клавишу для загрузки.
- Из появившегося окна нужно выбрать страну, язык, клавиатуру. Нажать «Далее».
- В новом окне нужно выбрать вкладку «Восстановление системы».
- Из следующего списка выбрать строку «Восстановление образа системы».
- Выбрать язык и раскладку. Нажать на кнопку «Далее».
- Из появившегося списка отметить вкладку «Восстановление компьютера с помощью созданного ранее образа системы». Нажать на клавишу «Далее».
- Всплывет окно с автоматический выбранным образом Windows 7, который был создан раньше пользователем. Для продолжения процесса нужно нажать «Далее».
- В новом окошке следует нажать на пункт «Готово», согласиться с процессом восстановления ОС.
Спустя определенное время загрузка будет завершена. ПК заработает на установленной с резервного устройства операционке в штатном режиме.После переустановки информация с диска будет стерта.
Резервное копирование Windows 7 также возможно в облачном хранилище.
К сведению! Облачное хранилище информации является одной из моделей онлайн-хранилища. Вернее, сообщество многочисленных серверов в просторах сети интернет. Сервера не привязаны к месту нахождения пользователя. Их физическое расположение, внутренняя структура, данные других пользователей и другие сведения не доступны клиенту.
Привлекает такой способ хранения данных возможностью доступа из любого ПК, который может выходить в сеть интернета. Также интересна возможность коллективной работы с информацией. К тому же пользователь платит только за определенное место хранилища. Больше никаких расходов нет.
После первого копирования на компьютере создается программа быстрого доступа к сохраненной информации. Ярлык появится в списке индивидуальных хранилищ. Для получения данных нужно:
- Развернуть группу «Хранилища».
- Выбрать вкладку «Индивидуальные».
Открыть хранилище по адресу электронной почты, вернее по имени, с которым осуществляется вход в облако. Там будет показан весь список копий. С ними можно проводить следующие операции:
- Просмотреть любую копию.
- Восстановить информацию из нужной копии.
- Удалить ненужные копии.

Восстановление диска Акронис
Пошаговый процесс восстановления данных из облачного хранилища в нужную папку:
- Активировать Acronis Backup.
- Щелкнуть кнопку «Восстановить».
- Выбрать вкладку «Выбор данных» и нажать на кнопку «Обзор».
- Из выпадающего списка выбрать и развернуть группу «Индивидуальные».
- Выбрать нужное хранилище (по имени пользователя).
- Нажать на «ОК».
- Отметить нужные для восстановления файлы и подтвердить выбор кнопкой «ОК».
- Выбрать место назначения, с указанием папки, куда требуется поместить восстановленную информацию. Выбор подтвердить кнопкой «ОК».
После этих действий начнется восстановление резервной копии с облачного хранилища.
Важно! В хранилище могут находиться несколько копий одного документа. Тогда для поиска нужно задать требуемые интервалы дат.
Какие существуют сторонние программы для создания бэкапа Виндовс 7
Еще одно важное умение, которое пригодится любому пользователю, это как сделать бэкап Виндовс 7 с использованием сторонней утилиты? Подобных программ достаточно. Наиболее востребованными можно назвать такие:
- Acronis True Image,
- AOMEI Backupper,
- Nero BackItUp,
- Norton Ghost,
- Paragon Drive Backup Professional,
- Ashampoo Backup Pro.

Aomei Backupper Standard
Очень эффективно можно записать запасной вариант Виндовс 7 при помощи приложения «Aomei Backupper Standard». Оно русифицированное, свободно доступно в сети.
Вот как можно создать резервную копию Windows 7 при помощи сторонней утилиты:
- Открыть приложение.
- Нажать на вкладку «Бэкап».
- Войти в раздел «Резервное копирование».
- Нажать «Запуск».
Далее следует дождаться завершения загрузки.
Внимание! Место и наименование сохраненной копии можно оставить по умолчанию или выбрать самостоятельно.
Когда есть необходимость архивации Windows 7 на съемном носителе (например, на флеш-накопителе), потребуется открыть раздел «Утилиты» и тапнуть по вкладке «Создать загрузочный носитель». Для установки запасной копии потребуется открыть пункт «Откат» и выделить полученный архив. После активации кнопки «Далее» процесс восстановления операционной системы запустится.
Непредвиденные обстоятельства могут привести к утере всей информации с ПК или ноутбука. Чтобы избежать такой неприятности, следует заранее продумать, как защитить данные. Для этого можно воспользоваться предустановленной программой или регулярно архивировать и сохранять данные на съемном диске, флешке или с помощью сторонних программ.
https://youtube.com/watch?v=M483up8EcDQ%3Ffeature%3Doembed
Самым верным решением в данной ситуации является написание Windows сервиса.
Пример создания сервиса в Studio 2010, .Net C# под катом
Шаг 1. Создание проекта.
Создайте новый проект, выбрав шаблон Windows Service

Переименуйте класс сервиса как вам нужно.

Получили такой вод код:
* This source code was highlighted with Source Code Highlighter.
Это и есть, собственно, сам сервис.
Используйте OnStart и OnStop события для реализации своей поставленной задачи.
Шаг 2. Добавление установщика.
Чтобы ваш сервис заставить работать, его нужно установить.
Чтобы его установить, он должен иметь установщик.

Теперь у нас есть serviceProcessInstaller и serviceInstaller

В первом можете поставить значение Account в LocalSystem.
Во втором укажите имя сервиса, описание и не забудьте поставить StartType — Automatic.

Шаг 3. Логирование.
Для того чтобы вы смогли узнать что делал ваш сервис, когда он стартовал, завершался или что-нибудь еще, вы можете использовать системное логирование.
Делается это очень легко.
Перетаскиваете из Toolbox в свой сервис EventLog.

Примерно так делается логирование:
* This source code was highlighted with Source Code Highlighter.
Шаг 4. Установка.
Чтобы установить сервис, нужно вызвать утилиту установки и передать параметром путь к своему сервису.
Для этого я создал install.bat такого вида:
Запускаем батник обязательно с правами администратора и наблюдаем в конце:
The Commit phase completed successfully.
The transacted install has completed.
Это значит что сервис установлен.
Проверяем:

Пару раз делаем запуск и остановку. Смотрим логи:

Видим когда сервис запускался и останавливался.
Наш сервис готов.
Материал частично взят от сюда:
msdn.microsoft.com/en-us/library/zt39148a(VS.80).aspx
Доброго времени суток дорогие читатели. В данной статье мы познакомимся с основами Powershell. Данный язык программирования используется во всех ОС Microsoft начиная с Windows XP SP3. Писать Powershell скрипты должен уметь каждый уважающий себя системный администратор windows.
Все команды в Powershell как правило используются в форме командлетов. Все командлеты это специализированные классы .NET Framework и .NET Core (используется в PowerShell Core 6 и выше).
Powershell класса .NET Framework это версии с 1 по 5.1 а Powershell .NET Core это версия 6 и выше (на данный момент 7.0). По заявлению Microsoft новых функций в Powershell 5.1 (.NET Framework) вносить уже не будут. Однако 7 версия еще не полностью поддерживает все модули предыдущих версий. Но судя по всему Microsoft стремится к этому и скоро версия Core будет единственной. В общем cmd отходит в прошлое и теперь без Powershell никуда. Давайте приступим к практике. Так всегда лучше запоминается материал.
Запуск Powershell
На примере Windows 10 Powershell можно запустить просто нажав правой кнопкой мыши на меню пуск.

Также нижняя строчка позволяет запустить Powershell с повышенными правами администратора.
Еще можно воспользоваться поиском в WIndows 10 и ввести название powershell

Как видно на картинке выше нашелся не только Powershell но и Powershell ISE. Консоль powershell удобна если требуется запустить последовательно не больше одной команды. Либо несколько команд в конвейере. Однако в случае написания полноценных скриптов лучше использовать Powershell ISE. Это бесплатная среда разработки сценариев на языке Powershell поставляется вместе с ОС Windows.


Сразу после запуска консоли рекомендую запустить командлет Get-Help — встроенная справка по всем командлетам, аналог man в Linux.

Видим что консоль предлагает обновить встроенную помощь. Нажимаем Y и соглашаемся.
Командлеты
Командлеты — это название команд в Powershell. Каждый командлет реализует заложенную в него функциональность. Как правило наименование командлета состоит из пары: глагол-существительное. Например: Get-Help — получить помощь. Обычно Get используется чтобы получить информация, Set — внести изменение, New — создать новый объект, политику и т.п. и Remove -удалить объект, политику и т.п.
Командлеты не чувствительны к регистру. Написать Get или get не важно, powershell воспримет эти команды одинаково.
Чтобы получить список всех доступных командлетов необходимо использовать Get-Command

Для получения справки по любому командлету напишите Get-Help имя-комндлета. Например

Давайте представим что нам необходимо вывести список командлетов для управления процессами. Воспользуемся Get-Command и укажем ему параметры для более точного поиска.

И вот мы видим список командлетов позволяющих управлять процессами: Get-Process — список всех запущенных процессов, Start-Process — запустить указанный процесс, Stop-Process— остановить указанный процесс, Wait-Process — ожидать указанный процесс. Как видно из названий командлетов можно легко понять для чего каждый служит.
Используя командлет Get-Help можно получить справку по любому командлету.
PS C:\WINDOWS\system32> Get-Help Get-Process ИМЯ Get-Process ОПИСАНИЕ Gets the processes that are running on the local computer or a remote computer. СИНТАКСИС Get-Process [[-Name] <System.String[]>] [-ComputerName <System.String[]>] [-FileVersionInfo] [-Module] [<CommonParameters>] Get-Process [-ComputerName <System.String[]>] [-FileVersionInfo] -Id <System.Int32[]> [-Module] [<CommonParameters>] Get-Process [-ComputerName <System.String[]>] [-FileVersionInfo] -InputObject <System.Diagnostics.Process[]> [-Module] [<Com monParameters>] Get-Process -Id <System.Int32[]> -IncludeUserName [<CommonParameters>] Get-Process [[-Name] <System.String[]>] -IncludeUserName [<CommonParameters>] Get-Process -IncludeUserName -InputObject <System.Diagnostics.Process[]> [<CommonParameters>] ОПИСАНИЕ The `Get-Process` cmdlet gets the processes on a local or remote computer. Without parameters, this cmdlet gets all of the processes on the local computer. You can also specify a particular process b y process name or process ID (PID) or pass a process object through the pipeline to this cmdlet. By default, this cmdlet returns a process object that has detailed information about the process and supports methods that l et you start and stop the process. You can also use the parameters of the `Get-Process` cmdlet to get file version informati on for the program that runs in the process and to get the modules that the process loaded. ССЫЛКИ ПО ТЕМЕ Online Version: https://docs.microsoft.com/powershell/module/microsoft.powershell.management/get-process?view=powershell-5.1 &WT.mc_id=ps-gethelp Debug-Process Get-Process Start-Process Stop-Process Wait-Process ЗАМЕЧАНИЯ Для просмотра примеров введите: "get-help Get-Process -examples". Для получения дополнительных сведений введите: "get-help Get-Process -detailed". Для получения технических сведений введите: "get-help Get-Process -full". Для получения справки в Интернете введите: "get-help Get-Process -online"
При использовании командлета есть возможность указать несколько параметров при запуске. Первый параметр можно не называть. Выше я писал Get-Command *Process* где указал поиск командлетов со словом Process. Однако я не написал параметр -Name, хотя именно его и указал. Если полностью то поиск по имени выглядит так: Get-Command -Name *Process* . В случае отсутствия непосредственного указания -Name Powershell принимает в качестве имени введенное слово *Process*.
Давайте выведем список процессов с именем WhatsApp
Get-Process -Name WhatsApp -IncludeUserName

Алиасы
Алиасы в Powershell это по сути более короткие названия командлетов. Т.е. любому командлету можно присвоить свое короткое имя (alias). Например алиасом для командлета Get-Process является gps. Согласитесь куда проще и быстрее написать gps чем Get-Process.
Список всех alias можно получить используя командлет Get-Alias
PS C:\WINDOWS\system32> get-alias CommandType Name Version Source ----------- ---- ------- ------ Alias % -> ForEach-Object Alias ? -> Where-Object Alias ac -> Add-Content Alias asnp -> Add-PSSnapin Alias cat -> Get-Content Alias cd -> Set-Location Alias CFS -> ConvertFrom-String 3.1.0.0 Microsoft.PowerShell.Utility Alias chdir -> Set-Location Alias clc -> Clear-Content Alias clear -> Clear-Host Alias clhy -> Clear-History Alias cli -> Clear-Item Alias clp -> Clear-ItemProperty Alias cls -> Clear-Host Alias clv -> Clear-Variable Alias cnsn -> Connect-PSSession Alias compare -> Compare-Object Alias copy -> Copy-Item Alias cp -> Copy-Item Alias cpi -> Copy-Item Alias cpp -> Copy-ItemProperty Alias curl -> Invoke-WebRequest Alias cvpa -> Convert-Path Alias dbp -> Disable-PSBreakpoint Alias del -> Remove-Item Alias diff -> Compare-Object Alias dir -> Get-ChildItem Alias dnsn -> Disconnect-PSSession Alias ebp -> Enable-PSBreakpoint Alias echo -> Write-Output Alias epal -> Export-Alias Alias epcsv -> Export-Csv Alias epsn -> Export-PSSession Alias erase -> Remove-Item Alias etsn -> Enter-PSSession Alias exsn -> Exit-PSSession Alias fc -> Format-Custom Alias fhx -> Format-Hex 3.1.0.0 Microsoft.PowerShell.Utility Alias fl -> Format-List Alias foreach -> ForEach-Object Alias ft -> Format-Table Alias fw -> Format-Wide Alias gal -> Get-Alias Alias gbp -> Get-PSBreakpoint Alias gc -> Get-Content Alias gcb -> Get-Clipboard 3.1.0.0 Microsoft.PowerShell.Management Alias gci -> Get-ChildItem Alias gcm -> Get-Command Alias gcs -> Get-PSCallStack Alias gdr -> Get-PSDrive Alias ghy -> Get-History Alias gi -> Get-Item Alias gin -> Get-ComputerInfo 3.1.0.0 Microsoft.PowerShell.Management Alias gjb -> Get-Job Alias gl -> Get-Location Alias gm -> Get-Member Alias gmo -> Get-Module Alias gp -> Get-ItemProperty Alias gps -> Get-Process Alias gpv -> Get-ItemPropertyValue Alias group -> Group-Object Alias gsn -> Get-PSSession Alias gsnp -> Get-PSSnapin Alias gsv -> Get-Service Alias gtz -> Get-TimeZone 3.1.0.0 Microsoft.PowerShell.Management Alias gu -> Get-Unique Alias gv -> Get-Variable Alias gwmi -> Get-WmiObject Alias h -> Get-History Alias history -> Get-History Alias icm -> Invoke-Command Alias iex -> Invoke-Expression Alias ihy -> Invoke-History Alias ii -> Invoke-Item Alias ipal -> Import-Alias Alias ipcsv -> Import-Csv Alias ipmo -> Import-Module Alias ipsn -> Import-PSSession Alias irm -> Invoke-RestMethod Alias ise -> powershell_ise.exe Alias iwmi -> Invoke-WmiMethod Alias iwr -> Invoke-WebRequest Alias kill -> Stop-Process Alias lp -> Out-Printer Alias ls -> Get-ChildItem Alias man -> help Alias md -> mkdir Alias measure -> Measure-Object Alias mi -> Move-Item Alias mount -> New-PSDrive Alias move -> Move-Item Alias mp -> Move-ItemProperty Alias mv -> Move-Item Alias nal -> New-Alias Alias ndr -> New-PSDrive Alias ni -> New-Item Alias nmo -> New-Module Alias npssc -> New-PSSessionConfigurationFile Alias nsn -> New-PSSession Alias nv -> New-Variable Alias ogv -> Out-GridView Alias oh -> Out-Host Alias popd -> Pop-Location Alias ps -> Get-Process Alias pushd -> Push-Location Alias pwd -> Get-Location Alias r -> Invoke-History Alias rbp -> Remove-PSBreakpoint Alias rcjb -> Receive-Job Alias rcsn -> Receive-PSSession Alias rd -> Remove-Item Alias rdr -> Remove-PSDrive Alias ren -> Rename-Item Alias ri -> Remove-Item Alias rjb -> Remove-Job Alias rm -> Remove-Item Alias rmdir -> Remove-Item Alias rmo -> Remove-Module Alias rni -> Rename-Item Alias rnp -> Rename-ItemProperty Alias rp -> Remove-ItemProperty Alias rsn -> Remove-PSSession Alias rsnp -> Remove-PSSnapin Alias rujb -> Resume-Job Alias rv -> Remove-Variable Alias rvpa -> Resolve-Path Alias rwmi -> Remove-WmiObject Alias sajb -> Start-Job Alias sal -> Set-Alias Alias saps -> Start-Process Alias sasv -> Start-Service Alias sbp -> Set-PSBreakpoint Alias sc -> Set-Content Alias scb -> Set-Clipboard 3.1.0.0 Microsoft.PowerShell.Management Alias select -> Select-Object Alias set -> Set-Variable Alias shcm -> Show-Command Alias si -> Set-Item Alias sl -> Set-Location Alias sleep -> Start-Sleep Alias sls -> Select-String Alias sort -> Sort-Object Alias sp -> Set-ItemProperty Alias spjb -> Stop-Job Alias spps -> Stop-Process Alias spsv -> Stop-Service Alias start -> Start-Process Alias stz -> Set-TimeZone 3.1.0.0 Microsoft.PowerShell.Management Alias sujb -> Suspend-Job Alias sv -> Set-Variable Alias swmi -> Set-WmiInstance Alias tee -> Tee-Object Alias trcm -> Trace-Command Alias type -> Get-Content Alias wget -> Invoke-WebRequest Alias where -> Where-Object Alias wjb -> Wait-Job Alias write -> Write-Output
Как видно из списка для alias использованы аналогичные по значению команды из Linux: ls, man, mount, md, kill и т.п. Видимо чтобы линуксоиду было по привычнее 🙂 Можно создать свой alias используя командлет New-Alias
Конвейер
Конвейер используется для передачи выходных данных командлета идущего вначале во входные данные командлета следующего за ним. Ничего непонятно? 🙂 Давайте на примерах, так всегда яснее.
Возьмем уже известный нам командлет Get-Process, посмотрим на его вывод

Как по мне многовато лишних столбцов. Мне эта информация не нужна, поэтому я выберу только нужные данные. Для таких целей служит командлет Select-Object. Давайте используем его в конвейере.
Get-Process|Select-Object ID,CPU,ProcessName

Get-Process|Select-Object ID,CPU,ProcessName|Out-File C:\TMP\out.txt
Просто не правда ли? У нас конвейер из трех командлетов, на выходе которого получаем текстовый файл со списком запущенных процессов и необходимой информацией по ним.
Структура объектов
В Powershell объекты играют самую важную роль. От типа объекта зависит что именно с ним можно сделать. Узнать тип объекта и вывести список всех его элементов позволяет команда Get-Member

Вот далеко не полный список элементов командлета Get-Process. В данному случае тип данных это System.Diagnostics.Process
Давайте посмотрим тип данных у новой переменной
$new="Test" $new|Get-Member

В данном случае тип данных System.String т.е. строка. Что вполне логично. А теперь посмотрите что можно сделать с этой строкой с учетом указанных выше параметров.

Как видно на картинке выше мы заключаем нашу тестовую переменную $new в скобки и после них пишем точку и указываем метод. В примере я использовал три метода:
- ToUpper — перевод всех букв в строке в верхний регистр
- ToLower — перевод всех букв в строке в нижний регистр
- Length — подсчитать количество символов в строке
Это всего лишь небольшой пример что можно сделать с параметрами объекта. Чаще используйте Get-Member и вы откроете для себя безграничные возможности манипуляции над объектами.
Скрипты Powershell
В самом начале статьи указал на встроенный инструмент Powershell ISE. Давайте запустим его и создадим свой первый скрипт. Кстати скрипты сохраняются в файлах с расширением ps1
Скрипт будет запускать блокнот, далее выполняется проверка если блокнот запущен выводится сообщение об этом и после блокнот закрывается. Если блокнот не запущен то выводится соответствующее сообщение об этом. На самом деле блокнот будет всегда запущен, т.к. мы вначале скрипта написали Start-Process notepad
Start-Process notepad
$a=Get-Process notepad
if ($a.ProcessName -like "Notepad")
{
Write-Host "Блокнот запущен, давайте его закроем"
Stop-Process -name notepad
}
else
{
Write-Host "Блокнот не запущен, что поделать"
}
В этом скрипте я использовал цикл if else. О циклах будет подробнее в следующей статье. Итак давайте сохраним скрипт и выполним его.
В ответ мы получим такую ошибку:
Невозможно загрузить файл, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=1351 70. + CategoryInfo : Ошибка безопасности: (:) [], ParentContainsError RecordException + FullyQualifiedErrorId : UnauthorizedAccess
Все верно, изначально в WIndows запрещено выполнять скрипты Powershell. Это сделано для повышения безопасности системы. Для включения возможности запуска скриптов Powershell необходимо запустить Powershell от Администратора и ввести командлет Set-ExecutionPolicy с одним из параметров:
- Restricted — политика по умолчанию. Выполнение всех скриптов запрещено
- RemoteSigned — разрешено запускать собственные скрипты и подписанные доверенным разработчиком
- AllSigned — разрешено запускать скрипты, подписанные доверенным разработчиком. Каждый раз перед запуском такого скрипта PowerShell будет запрашивать подтверждение
- Unrestricted — в системе разрешается запускать любые скрипты
Если вы полностью уверены в запускаемых скриптах можете поставить Unrestricted. Давайте так и сделаем
Set-ExecutionPolicy -Unrestricted

Будет предупреждение по безопасности, соглашаемся нажав Y
Можем посмотреть текущую настройку политики безопасности при помощи командлета Get-ExecutionPolicy

В данной статье мы рассмотрели основы чтобы подготовиться писать скрипты Powershell. В следующих статьях мы более подробно изучим циклы, массивы, функции, работу со строками и много другое. Кстати вот раздел посвященный Powershell. Там много всего интересного 😉




