Дополнение C. Просматриваем состояние дисков Windows Server Core
Содержание
Windows Server Core (то есть не обладающие полноценным графическим интерфейсом Windows Desktop) приобретают всё большую популярность, например, по причине бесплатности сервера Hyper-V. Однако графические средства удалённого управления такими серверами не всегда демонстрируют стабильность своей работы. Поэтому навыки административных действий с применением PowerShell не лишены смысла. Давайте рассмотрим их на примере задачи определения состояния жизнеспособности физических дисков такого сервера через средства S.M.A.R.T., что потребует от нас и определённых технических приёмов обращения с интерфейсом PowerShell и командной строки в сервере Windows Core.
Мы предполагаем, что у вас включён удалённый доступ к терминалу сервера Windows Core. Если нет, то включить его и доступ к нему через межсетевой экран можно следующим образом:
PS > (Get-WmiObject Win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).SetAllowTsConnections(1,1)
PS > (Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\TerminalServices -Filter "TerminalName='RDP-tcp'").SetUserAuthenticationRequired(0)
PS > Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Итак, у вас есть доступ к терминалу сервера Windows Core. Как правило, в нём у вас есть два окна командной строки: одно с
с запущенным sconfig.exe
и второе - окно командной строки
(cmd.exe
). Здесь вы запросто можете запустить PowerShell из окна
cmd.exe
через start pwsh
. Это команда для запуска
PowerShell 7, мы будем работать с ним, если у вас его нет - не волнуйтесь сейчас мы и его установим. Для пояснений почему именно
PowerShell 7, отсылаем вас, например, к нашему переводу Книги рецептов автоматизации Windows Server при помощи PowerShell, 4е издание, Томаса Ли (готовится к выходу в
свет 5е издание,
сейчас доступна в предварительном доступе). Теперь давайте научимся запускать ещё что-нибудь полезное. Если вы в этом окне
нажмёте комбинацию клавиш Ctrl-Alt-Del, то у вас
появится меню возможных действий, например: Change Password/ Lock/ Sign Out/ Task Manager/ Cancel (см. Рисунок C-1).
Перемещая курсор кнопкой стрелки вниз до Диспетчера задач (Task manager) с последующим нажатием на клавишу ввода вы
запускаете Диспетчер задач (и да, приложения с наследуемым графическим интерфейсом могут запускаться здесь, в терминальном окне
Windows Core). Включив дополнительные подробности (More details) вы получите традиционное окно Диспетчера задач, а из него,
скажем, вы можете выполнять запуск приложений. Например, notepad.exe
, через Copy&Past
которого можно осуществлять файловый обмен или запуск той же самой командной строки (если вы вдруг её закрыли и теперь не знаете
что делать).
Эти трюки советуем запомнить. Но что делать, если вы работаете с этим терминалом удалённо, скажем через RDP? Теперь
Ctrl-Alt-Del у вас отрабатывается в локальном
терминале, но у вас в запасе есть комбинация Ctrl-Alt-End,
которая при нажатии в окне удалённого терминала отправляет в удалённый терминал сочетание клавиш
Ctrl-Alt-Del. Хорошо, но если с удалённым терминалом
Windows Core (RDP1) вы в свою очередь работаете из окна RDP удалённого рабочего места (RDP2). То есть когда у вас закрыт
удалённый доступ из RDP к терминалу Windows Core и вы осуществляете его через машину- посредника в его локальной сети? Решение
есть! В такой локальной машине- посреднике вы вызываете Экранную клавиатуру (On-Screen Keyboard), запуская, через
Win-R
, например, Run -> osk.exe
. Теперь вы
можете нажать в Экранной клавиатуре Ctrl-Alt-End
или клавишу End после нажатия
Ctrl-Alt в Экранной клавиатуре, что вызовет
передачу из RDP2 комбинации Ctrl-Alt-Del в RDP1.
Эту уловку тоже советуем запомнить.
Процедура установки PowerShell 7, например, описана в нашем переводе Книги рецептов автоматизации Windows Server при помощи PowerShell. Но для наших целей полезно будет установить ещё одно средство управления пакетами - Chocolatey. Из командной строки выполните:
> @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Для строки PowerShell Windows (или PowerShell Core, если он уже установлен у вас), Проверьте установленную политику при
помощи Get-ExecutionPolicy
и, если она Restricted
,
измените её при помощи Set-ExecutionPolicy AllSigned
или
Set-ExecutionPolicy Bypass -Scope Process
, а затем выполните:
> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Обращаем ваше внимание на тот факт, что приложения такого рода пользуются переменной среды
PATH
. Хотя сама установка и изменяет её значений в системе (то есть непосредственно
в реестре, что можно увидеть исполнив
Write-Host "$((Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' -Name 'PATH').Path); $((Get-ItemProperty -Path 'HKCU:\Environment' -Name 'PATH').Path)"
, в уже запущенном процессе (которым выступает cmd или PowerShell, из которого вы запустили установку Chocolatey) её
значение остаётся прежним (в чём можно убедиться запустив PATH
из cmd или
$env:PATH
из PowerShell). К счастью, на этот случай Chocolatey обладает инструментом
refreshenv
, вызвав который (например,
%ProgramData%chocolatey\bin\RefreshEnv.cmd
- зависит от места его установки) вы можете
обновить переменные текущей среды. Не забывайте про такой ход в дальнейшем!
Теперь, если у вас ещё не установлен PowerShell Core, установите его:
> choco install pwsh
Запомним, что запускающим PowerShell Core исполняемым файлом является pwsh.exe
, в
отличии от powershell.exe
для Windows PowerShell.
После установки Chocolatey рекомендуем обновить PowerShell, а именно, для Windows PowerShell:
> choco install powershell -y
> choco upgrade powershell -y
Для PowerShell Core:
> choco install pwsh -y
> choco upgrade pwsh -y
![]() | Замечание |
---|---|
Обратите внимание на то, что различные версии PowerShell обладают различными каталогами:
Установка PowerShell 7 удаляет установку PowerShell 6.x. |
Приступим к работе с дисками, наконец. Прежде всего нам необходимо узнать какие диски доступны нам в системе:
PS > Get-Disk | Format-Table -AutoSize
Теперь вернёмся к нашей основной задаче данного Дополнения: выяснению состояния дисков. Для этого мы воспользуемся
пакетом smartmontools. Он содержит две служебные
программы (smartctl
и smartd
) для контроля и
мониторинга систем хранения с использованием технологической системы самоконтроля, анализа и отчётности (S.M.A.R.T.),
встроенной в большинство современных дисков ATA/SATA, SCSI/SAS и NVMe. Во многих случаях эти утилиты предупредят об ухудшении
состояния и сбое диска. Smartmontools изначально был производным от пакета smartsuite для Linux и фактически поддерживает диски
ATA/SATA, SCSI /SAS и NVMe, а также ленточные устройства SCSI/SAS. Он должен работать в любой современной системе Linux,
FreeBSD, NetBSD, OpenBSD, Darwin (macOS), Solaris, Windows, Cygwin, OS/2, eComStation или QNX. Smartmontools также можно
запускать с одного из множества различных Live CD/DVD. Установка Smartmontools для различных ОС описана на его
веб странице, а
в Windows сводится к
такому вызову из cmd или pwsh:
> choco install smartmontools
Для отображения сведений S.M.A.R.T. мы применим ещё один пакет, точнее, коллекцию инструментов PowerShell Markus Fleschutz. Для этого мы сначала скачаем этот пакет, что само по себе не очень привычно для только начинающего работать со стандартным терминалом Server Core, поскольку приходится воспользоваться PowerShell, а именно:
PS > $client = new-object System.Net.WebClient
PS > $client.DownloadFile("https://github.com/fleschutz/PowerShell/archive/refs/tags/v0.5.zip","C:\Foo\v0.5.zip")
Здесь первый аргумент - источник, второй - получатель. Имейте в виду, что PowerShell не будет проверять, используется ли уже имя файла. Он будет перезаписывать файл без предупреждения. Теперь надо распаковать этот архив:
PS > Expand-Archive C:\Foo\v0.5.zip -DestinationPath C:\Foo
Обращаем ваше внимание на то, что если вы следовали нашим рекомендациям, у вас установлены последние версии PowerShell, но, на всякий случай, напомним как можно проверить установленные версии PowerShell:
PS > $PSVersionTable
В частности, $PSVersionTable.PSVersion
выводит номер версии PowerShell данной
оболочки. Expand-Archive
доступен начиная с версий 5+
Для целей отображения S.M.A.R.T. мы воспользуемся сценарием query-smart-data.ps1
.
Надо только подправить в нём одну ошибку (которая имеет место на момент написания данных строк). Для этого стартуйте
приведённым выше способом через запуск из Диспетчера задач notepad.exe
и замените
$DevInfo++ на $DevNo++, в отмеченном на Рисунке С-3 месте, а затем сохраните его. В противном случае вы получите сведения только
о последнем диске из своей системы.
Теперь мы можем получить сведения S.M.A.R.T. от своих дисков в файлы SMART-dev1-2022-10-11.json .. SMART-devX-2022-10-11.json,
где devX - устройство X ($DevNo), а 2022-10-11 дата получения сведений, через тот же notepad.exe
,
но есть и более удобное средство для работы с большим числом файлов в алфавитно- графическом интерфейсе.
К сожалению, explorer.exe
нельзя запустить в Server Core аналогично тому как мы это
сделали c notepad.exe
. Здесь нам на помощь может прийти верный продолжатель традиций
Norton Commander, FileCommander, который прекрасно
работает из окна cmd. Мы скачиваем его описанным ранее способом:
PS > $client = new-object System.Net.WebClient
PS > $client.DownloadFile("https://silk.apana.org.au/pub/fcw/fcw240.zip","C:\Foo\fcw240.zip")
Распаковываем уже знакомым нам командлетом:
PS > Expand-Archive "C:\Foo\fcw240.zip" -DestinationPath "C:\bin\fcw"
И теперь можем применять его для работы с имеющейся файловой системой, в том числе для редактирования файлов. Если же мы установим ещё и рекомендуемые его автором средства работы с архивами, все такие архивы также станут подвластны FileCommander.
Обращаем ваше внимание также на не первый год пребывающую в стадии отладки версию 2.5, которая обладает функциональными возможностями удалённого управления поверх SSH и существенно упрощает удалённый файловый обмен.
Позволим себе несколько советов по настройке FileCommander. Прежде всего рекомендуем отключить в опциях свойства окна QuickEditMode, что позволит пользоваться курсором мышки для навигации по дереву каталогов, а также увеличить размер буфера до 999:
Далее в закладке Шрифтов (Fonts) советуем выбрать Lucida Console подходящего вам размера (14 или 16 вполне приемлемо). По F9 переходим в меню Options > Configuration, где прописываем (if any) альтернативные программы просмотра и редактирования файлов и меняем число строк и столбцов (например для современных размеров экранов подходит 40 x 100). Также полезно настроить меню пользователя и отредактировать ассоциации в соответствующих пунктах меню:
Все настройки сохраняются по Shift-F9. Обращаем ваше внимание, что у каждого пользователя они свои, а поэтому для работы с правами администратора советуем также выполнить отдельные настройки. Причём, например, с иным размером шрифта. F1 служит хорошим напоминанием об имеющихся богатых функциональных возможностях, например, запоминания под сочетанием Ctrl с числами 0-9 часто применяемых каталогов, Ctrl-J для Copy под Past имени текущего файла, а Ctrl-F всего пути этого файла и т.п. В комплекте поставки имеется и некое руководство (fcw.chm), в которое тоже советуем заглядывать. Кстати, FileCommander доступен для большинства современных ОС.
-
Сетевые протоколы для профессионалов безопасности, Йорам Орзач, Дипаншу Ханна, Packt Publishing, октябрь 2022
-
JavaScript для хакеров. Научитесь думать как хакер, Гарет Хейс, Leanpub, декабрь 2022
-
Как заниматься взломом словно легенда. Прорываемся в Windows, Спарк Флоу, No Starch Press, октябрь 2022
-
Управление оперативной памятью в реляционных системах баз данных, Педро Мехия Альварес, Марсело Леон Айяла, Сусана Ортега Сиснерос, Springer, август 2022
-
Атакующий код запуска оболочки с нуля, Ришалин Пиллэй, Packt Publishing, май 2022
-
Linux подсистема Windows (WSL) для профессионалов, Хайден Барнс, Apress, июнь 2021
-
Внутреннее устройство CPython, Энтони Шоу, Real Python, январь 2021
-
Контейнеры Linux и Виртуализация: с точки зрения ядра, Шашанк Мохан Джейн, Apress, октябрь 2020
-
Изучаем подсистемы Windows для Linux, Прэйтик Сингх, Apress, сентябрь 2020
-
Всё что требуется для RabbitMQ, 2е изд., Ловайса Йохансон, Дэйвид Доссо, Packt Publishing, август 2020
-
Практика загрузки. Изучение процесса загрузки Linux, Windows и Unix, Йогеш Бабар, Apress, июль 2020
-
Распределённые системы для практиков, Даймос Раптис, Leanpub, май 2020
-
Практическая автоматизация предприятия в Linux, Джеймс Фриман, Packt Publishing, январь 2020, Действенное выполнение крупномасштабной автоматизации инфраструктуры Linux с применением Ansible.
-
Внутреннее устройство баз данных, Алекс Петров, O`Reilly Media, Inc., октябрь 2019
-
Книга рецептов параллельного программирования Python. 2е изд., Джанкарло Закконе, Packt Publishing, сентябрь 2019
-
Полное руководство Ansible. 3е изд., Джеймс Фриман и Джесс Китинг, Packt Publishing, март 2019
-
Книга рецептов NGINX Дерек ДеДжонге, O’Reilly Media, Inc, ноябрь 2018
-
Полное руководство Ceph, 2е изд. Ник Фиск, Packt Publishing, февраль 2019
-
Docker для разработчиков Rails Роб Айзенберг, The Pragmatic Programmers, LLC., февраль 2019, с дополнениями по настройкам Django и 100Gb IB
-
Глава 11. SQL Server и контейнеры (включая Kubernetes) Боб Вордс, "Профессиональный SQL Server поверх Linux", Apress, октябрь 2018
-
Полное руководство параллельного программирования на Python Куан Нгуен, Packt Publishing, ноябрь 2018
-
Asyncio в Python 3 Цалеб Хаттингх, O’Reilly Media, Inc, март 2018
-
RabbitMQ для профессионалов Гайвин Рой, Manning Publications, сентябрь 2017
-
Proxmox. Полное руководство. 3е изд Васим Ахмед, Packt Publishing, ноябрь 2017
-
Книга рецептов Ceph, 2е изд Викхайят Умрао,Мишель Хаккет,Каран Сингх, Packt Publishing, ноябрь 2017
-
Изучаем Ceph, 2е изд., Энтони Д`Атри, Вайбхав Бхембре, Каран Сингх, Packt Publishing, октябрь 2017
-
Книга рецептов виртуализации KVM Константин Иванов, Packt Publishing, июнь 2017
-
Полное руководство работы с сетями на Python. Эрик Чоу, Июнь 2017
-
Контейнеризация при помощи LXC Константин Иванов, Packt Publishing, март 2017
-
Proxmox. Полное руководство. 2е изд., Васим Ахмед, Packt Publishing, май 2016
-
Книга рецептов Ceph Каран Сингх, Packt Publishing, февраль 2016
-
Полная виртуализация. Базовая коммерческая редакция: Proxmox-freeNAS-Zentyal-pfSense. Ли Р. Сюрбер, февраль 2016
-
Zabbix. Полное руководство. 2е изд., Андреа Далле Ваккье, сентябрь 2015
-
Книга рецептов Proxmox. Главы 1-6, Дополнения: Преобразование OpenVZ в LXC, Организация ограждения Васим Ахмед, Packt Publishing, август 2015
-
Изучаем Ceph Каран Сингх, Packt Publishing, январь 2015
Дополнительные ссылки:
-
Сетевые протоколы для профессионалов безопасности, Йорам Орзач, Дипаншу Ханна, Packt Publishing, октябрь 2022
-
JavaScript для хакеров. Научитесь думать как хакер, Гарет Хейс, Leanpub, декабрь 2022
-
Как заниматься взломом словно легенда. Прорываемся в Windows, Спарк Флоу, No Starch Press, октябрь 2022
-
Управление оперативной памятью в реляционных системах баз данных, Педро Мехия Альварес, Марсело Леон Айяла, Сусана Ортега Сиснерос, Springer, август 2022
-
Атакующий код запуска оболочки с нуля, Ришалин Пиллэй, май 2022
-
Ускоренное продвижение PowerShell: хакерство для не- программистов, Викас Сухиджа, ноябрь 2021
-
Книга рецептов автоматизации Windows Server при помощи PowerShell, 4е изд., Томас Ли, июль 2021
-
Linux подсистема Windows (WSL) для профессионалов, Хайден Барнс, Apress, июнь 2021
-
Изучаем подсистемы Windows для Linux, Прэйтик Сингх, Apress, сентябрь 2020
-
Active Directory Полное руководство. 2е изд., частичный перевод, Дишан Франсис, Packt Publishing, август 2019
-
Полное руководство Ansible. 3е изд., Джеймс Фриман и Джесс Китинг, Packt Publishing, март 2019
-
PowerShell и Python сообща - настроены на цифровые расследования Чет Хосмер, Apress, Октябрь 2018
-
Windows Server 2019. Полное руководство - 2е изд Джордан Краузе, Packt Publishing, март 2019
-
Docker для разработчиков Rails Роб Айзенберг, The Pragmatic Programmers, LLC., февраль 2019, с дополнениями по настройкам Django и 100Gb IB
-
Глава 11. SQL Server и контейнеры (включая Kubernetes) Боб Вордс, "Профессиональный SQL Server поверх Linux", Apress, октябрь 2018
-
Windows Server 2016 Administration Fundamentals Bekim Dauti, ISBN: 978-1-78862-656-9
-
Windows Server 2016 Hyper- V. Полное руководство, Джон Сэйвиль
-
SQL Server 2016 с высокой доступностью. Выпущенный на волю., Поль Бертуччи, Раджу Шривастава
-
Внутреннее устройство Windows, Часть 1, 7е изд., Павел Йосифович, Алекс Ионеску, Марк Э. Руссинович, Дэвид А. Соломон
-
Windows Server 2016 наизнанку, Оурин Томас
-
Exam Ref 70-743. Обновление ваших навыков MCSA: Windows Server 2016, Чарли Плута
-
Exam Ref 70-740. Установка, хранение и вычисления с Windows Server 2016., Крейг Заккер
-
Windows Server 2016 Hyper-V Книга рецептов. 2е изд, Патрик Лоундс, Чарбел Немном, Леанардо Карваль
-
Windows Server 2016. Книга рецептов, Джордан Краузе
-
Hyper-V 2016 Практический опыт. 2е изд., Бенедикт Бергер, Ромейн Серре
-
Zabbix. Полное руководство. 2е изд., Андреа Далле Ваккье
Дополнительные ссылки:
Перевод: Copyright © 2020 ![]() All rights reserved. Ссылки обязательны (Refs and links are obligatory). | http://www.mdl.ru портфолио SD DC |
HPE DL360 G10 since 4300$ |