Неизвестная Windows – командная строка.

January 3rd, 2009

Windows традиционно ругают за недоразвитую консоль. Ругают в первую очередь, конечно, за командный процессор (cmd.exe) – злую шутку случайной эволюции. Потом достаётся застрявшей в 1995 году консольной подсистеме в целом. Ну и на закуску остается отсутствие человеческой поддержки удаленного доступа к консоли (telnet/SSH). Короче ругают совершенно заслужено, но при этом, как мне кажется, делается подсознательный вывод, что консоль в Windows вообще ни для чего не годится. В результате упускается из виду, что в состав Windows входит множество утилит командной строки, которые могут быть весьма полезны. Дабы слегка исправить эту ситуацию, я собираюсь написать серию постов «Неизвестная Windows», посвященную консольным утилитам Windows.

Некоторое время назад, я попытался создать полную резервную копию своей машины. Первым делом выяснилось, что старый добрый NT Backup приказал долго жить и начиная с Vista в систему встроена другая утилита резервного копирования. Или этот был все тот же NT Backup в новом гриме? Так или иначе, дружественный UI предложил на выбор три опции: создать резервную копию на жестком диске, записать её на DVD или скопировать все на сетевую папку. Тут-то и ждали меня первые грабли. Мастер упорно отказывался использовать предложенную сетевую папку, не смотря на то, что он сам же успешно создавал на ней временные каталоги и файлы:

Поигравшись немного с Process Monitor, я решил, что дело должно быть в некое несовместимости Samba (сетевая папка была на внешнем диске под управлением Linux) и текущей версии Windows 7 и отложил проблему до лучших времен. Довольно скоро я наткнулся на письмо описывающее «мою» проблему. Как оказалось, существует довольно простой способ обойти эту сложность. Достаточно воспользоваться консольной утилитой wbadmin:

c:\>wbadmin
wbadmin 1.0 - Backup command-line tool
(C) Copyright 2004 Microsoft Corp.

ERROR - Command incomplete. See the list below.
For Help for this command, type WBADMIN <command> /?.

---- Commands Supported ----

START BACKUP              -- Runs a one-time backup.
STOP JOB                  -- Stops the currently running backup or recovery
                              operation.
GET VERSIONS              -- List details of backups recoverable from a
                              specified location.
GET ITEMS                 -- Lists items contained in a backup.
GET STATUS                -- Reports the status of the currently running
                              operation.

Правильная команда:

wbadmin start backup -backupTarget:\\server\share -allCritical -include:c:,d:

где:

  • -backupTarget задаёт имя папки, где будет создана резервная копия.
  • -allCritical копирует все системные диски.
  • -include указывает какие еще диски должны быть скопированы.

  1. Kai
    January 4th, 2009 at 03:54 | #1

    Интересная статья. Я windows не использую, но почитать полезно.

  2. grebennikov
    January 4th, 2009 at 04:33 | #2

    Очень интересно, жду продолжения! Вообще, конечно, командная строка в Win , конечно слабее unix shell, но все таки позволяет решать довольно большой объем задач. Я например постоянно пишу какие-то скриптики на работе в целях автоматизации различных нюансов, встречающихся при разработке ПО.

  3. January 5th, 2009 at 08:31 | #3

    Интересные дела – используемые механизмы, наверное, одни и теже, а GUI “не может”! А причина сего отказа известна?

    • January 5th, 2009 at 10:05 | #4

      Это просто баг в Мастере резервного копирования.

      • January 5th, 2009 at 14:51 | #5

        Впрочем без бага в реализации SMB в Samba похоже тоже не обошлось…

  4. January 7th, 2009 at 12:22 | #6

    Возможно необходимо посмотреть в сторону PowerShell?

  5. oleg
    January 17th, 2009 at 03:42 | #8

    Тут прочитал такое:
    “В результате всех этих бдений было принято решение о форсированной разработке новой системы Microsoft Windows 7. За основу взяли уже имеющееся серверное ядро Windows Server 2008, которое сразу было оценено заказчиками за свое быстродействие. ”

    А можно где-то прочитать про разницу между ядрами, да и вообще про эволюцию ядра?
    Мне интересно какой ценой _ядро_ стало оптимизированным. Как мне кажется, саму систему можно оптимизироваться за счет нужного отключения техже служб, или вообще оптимизацию их самих.

    Вобщем, мне очень интересно, почему пишут: “Первые тесты Windows 7 beta показывают, что Windows 7 в ряде тестов даже обгоняет по производительности Windows XP. “

    • January 17th, 2009 at 18:05 | #9

      За основу взяли уже имеющееся серверное ядро Windows Server 2008, которое сразу было оценено заказчиками за свое быстродействие.

      :-) Это оксюморон. Всегда используется предыдущее ядро. Хотя бы просто потому, что это одно и то же ядро, которое постоянно совершенствуется.

      А можно где-то прочитать про разницу между ядрами, да и вообще про эволюцию ядра?
      Мне интересно какой ценой _ядро_ стало оптимизированным. Как мне кажется, саму систему можно оптимизироваться за счет нужного отключения техже служб, или вообще оптимизацию их самих.

      Вот хороший линк (видео): http://channel9.msdn.com/shows/Going+Deep/Mark-Russinovich-Inside-Windows-7/

  1. January 4th, 2009 at 10:25 | #1
Comments are closed.