Windows Server 2012 является одним из наиболее распространенных серверных операционных систем от компании Microsoft. Он предлагает широкий спектр возможностей и функций, которые позволяют эффективно управлять инфраструктурой предприятия. Одним из ключевых моментов в поддержке Windows Server 2012 является регулярное обновление операционной системы.
Обновления помогают закрыть уязвимости, исправить ошибки и добавить новые функции в систему. Они необходимы для обеспечения безопасности и стабильности работы сервера. Правильное хранение и установка обновлений Windows Server 2012 играют важную роль в обеспечении надежности и безопасности данной операционной системы.
Местоположение и способы хранения обновлений Windows Server 2012 могут быть различными в зависимости от предпочтений администратора. Одним из распространенных способов является централизованное управление обновлениями с использованием службы Windows Server Update Services (WSUS).
WSUS позволяет администратору контролировать обновления для всех устройств подключенных к сети и устанавливать их автоматически или вручную. Это экономит время и ресурсы, так как администратору не нужно устанавливать обновления на каждое устройство отдельно. Тем не менее, есть и другие способы хранения обновлений Windows Server 2012, такие как местное хранение на сервере или использование облачных служб.
Содержание
- Обновления для Windows Server 2012: где хранить и как организовать
- Где найти свежие обновления для Windows Server 2012
- Оптимальные способы скачивания обновлений для Windows Server 2012
- Нюансы установки обновлений для Windows Server 2012
- Сохранение обновлений для Windows Server 2012 на локальном сервере
Обновления для Windows Server 2012: где хранить и как организовать
Windows Server 2012 имеет важное значение для эффективной работы серверов и обеспечения безопасности системы. Чтобы обеспечить стабильность и защиту вашего сервера, необходимо регулярно устанавливать обновления операционной системы.
Где хранить обновления?
В первую очередь, важно определить место, где будут храниться скачанные обновления. В Windows Server 2012 обновления могут храниться локально на сервере или на центральном сервере обновлений.
- Локальное хранение обновлений позволяет более гибко управлять процессом установки обновлений. Вы сами контролируете, какие обновления будут установлены и когда это произойдет. Благодаря локальному хранению, вы можете предотвратить потерю сетевого соединения во время установки обновлений.
- Центральное хранение обновлений на специальном сервере обновлений позволяет автоматически установить последние обновления на все серверы в вашей сети. Это удобно, когда у вас есть несколько серверов и вы хотите обновить все системы одновременно.
Как организовать обновления?
Организация обновлений — ключевой шаг в поддержке безопасности и стабильности вашего сервера.
- Установите регулярное расписание проверки и установки обновлений. Это может быть еженедельно или ежемесячно. Важно выбрать такое расписание, которое будет наименее влиять на работу сервера и пользователя.
- Используйте функции автоматического обновления Windows Server 2012, чтобы упростить процесс установки обновлений. Запустите службу автоматического обновления на сервере и настройте ее в соответствии с вашими предпочтениями.
- Осуществляйте проверку наличия новых обновлений вручную или с помощью специальных инструментов. Некоторые обновления, особенно важные для безопасности, могут быть выпущены вне расписания и требовать немедленной установки.
Важно помнить, что безопасность и стабильность вашего сервера зависят от правильной установки и организации обновлений. Следуйте этим рекомендациям, чтобы обеспечить безопасную и надежную работу Windows Server 2012.
Где найти свежие обновления для Windows Server 2012
Для обеспечения безопасности и стабильности работы Windows Server 2012 важно устанавливать обновления операционной системы. Microsoft регулярно выпускает новые обновления, исправляющие уязвимости и ошибки, а также добавляющие новые функции и возможности. Ниже приведены несколько способов получить свежие обновления для Windows Server 2012.
Способ | Описание |
---|---|
Windows Update | Самый простой и рекомендуемый способ получения обновлений. Откройте меню «Пуск» и перейдите в раздел «Настройки». В открывшемся окне выберите «Обновление и безопасность» и перейдите на вкладку «Windows Update». Нажмите кнопку «Проверить наличие обновлений», чтобы начать процесс поиска и установки доступных обновлений. |
Центр обновлений Microsoft | Если у вас нет подключения к Интернету на сервере, вы можете скачать обновления с сайта Центра обновлений Microsoft. Откройте браузер и перейдите на официальный сайт компании Microsoft. Затем найдите раздел с обновлениями для Windows Server 2012 и выберите нужные для загрузки. Перед установкой обновлений, убедитесь, что они совместимы с вашей версией операционной системы. |
WSUS (Windows Server Update Services) | WSUS – это служба, позволяющая администраторам серверов Microsoft управлять и распространять обновления в локальной сети. Если вы используете WSUS, обновления для Windows Server 2012 будут автоматически загружаться на сервер WSUS, и вы сможете управлять их установкой и распространением на своих клиентах. Проверьте настройки WSUS, чтобы убедиться, что обновления для Windows Server 2012 включены и активированы. |
Независимо от выбранного способа получения обновлений, рекомендуется устанавливать их регулярно, чтобы обеспечить безопасность сервера и получить новые возможности и исправления.
Оптимальные способы скачивания обновлений для Windows Server 2012
Система Windows Server 2012 активно обновляется с целью обеспечения безопасности и исправления ошибок. Для оптимальной работы сервера необходимо установить все доступные обновления. Ниже представлены несколько способов скачивания обновлений для Windows Server 2012.
1. Центр обновления Windows. В Windows Server 2012 предусмотрена специальная функция, называемая Центром обновления Windows. Он позволяет автоматически загружать и устанавливать все необходимые обновления. Чтобы воспользоваться этой функцией, откройте Центр обновления Windows из панели управления и следуйте инструкциям на экране.
2. Microsoft Update Catalog. Microsoft Update Catalog является официальным сайтом Microsoft, где можно скачивать обновления для всех продуктов компании. На сайте удобно использовать поиск по определенным пакетам или номерам обновлений. Выберите нужные обновления для Windows Server 2012, скачайте их и установите на сервер.
3. WSUS (Windows Server Update Services). WSUS является сервисом, позволяющим администраторам централизованно управлять обновлениями в сети компьютеров. Скачайте и установите WSUS соответствующей версии на Windows Server 2012. После этого настройте WSUS для автоматического скачивания и установки обновлений на сервере. WSUS также позволяет контролировать процесс обновления и предоставлять отчеты о статусе установленных обновлений.
4. PowerShell. PowerShell — это мощный инструмент командной строки для управления и автоматизации задач в Windows. С помощью PowerShell вы можете скачивать и устанавливать обновления для Windows Server 2012. Используя команды Get-WUInstall и Install-WUUpdates, вы можете автоматически загрузить и установить все обновления для сервера.
Выберите оптимальный способ скачивания обновлений, учитывая требования и особенности вашей сети и сервера. Регулярно проверяйте наличие новых обновлений и устанавливайте их для обеспечения безопасности и стабильной работы Windows Server 2012.
Нюансы установки обновлений для Windows Server 2012
Во-первых, перед установкой обновлений рекомендуется сделать резервную копию данных, чтобы в случае проблем можно было быстро восстановить систему. Как правило, обновление системы может потребовать перезагрузки сервера, и без резервной копии можно потерять важную информацию.
Во-вторых, для установки обновлений необходимо иметь доступ к Интернету, чтобы скачать последние версии исправлений и патчей. Если сервер не имеет доступа к сети или это нежелательно по соображениям безопасности, можно использовать Windows Server Update Services (WSUS). WSUS позволяет централизованно управлять обновлениями, загружая их на локальный сервер и распространяя по сети. Это может быть полезно, если у вас несколько серверов и вы хотите минимизировать трафик в сети или контролировать, какие обновления устанавливаются.
Также важно выбрать правильный режим установки обновлений. Windows Server предлагает два основных режима: автоматический и ручной. В автоматическом режиме система будет автоматически загружать и устанавливать обновления, что может быть удобно, но требует доверия к системе. В ручном режиме вы сами контролируете установку обновлений, что дает больше гибкости, но требует дополнительных усилий.
Не менее важно учитывать комбинацию обновлений, которые устанавливаются на сервер. Некоторые обновления могут быть взаимоисключающими или требовать определенного порядка установки. Проанализируйте список предлагаемых обновлений, чтобы избежать проблем и конфликтов, которые могут возникнуть при установке несовместимых обновлений.
Наконец, после установки обновлений рекомендуется провести тестирование, чтобы убедиться, что система осталась стабильной и функциональной. Обновления могут вносить изменения или исправлять ошибки, но иногда они могут вызывать проблемы с совместимостью или работой системы.
В итоге, установка обновлений для Windows Server 2012 может быть достаточно простым процессом, если учесть некоторые нюансы и рекомендации. Не забывайте делать резервные копии данных, проверять наличие доступа к Интернету или использовать WSUS, выбирать правильный режим установки обновлений, а также обращать внимание на совместимость и тестировать систему после установки.
Сохранение обновлений для Windows Server 2012 на локальном сервере
Windows Server 2012 предлагает возможность сохранять обновления на локальном сервере для их дальнейшего использования. Это может быть полезно в случаях, когда ваш сервер не имеет доступа к Интернету или когда вы хотите убедиться в безопасности скачанных обновлений.
Для сохранения обновлений на локальном сервере вам потребуется использовать инструмент Windows Server Update Services (WSUS), который можно установить и настроить на вашем сервере. WSUS позволяет автоматически загружать обновления с сервера Microsoft и сохранять их на вашем локальном сервере.
При установке WSUS вы будете иметь возможность настроить параметры обновлений, которые вы хотите загружать и сохранять. Вы можете выбрать конкретные продукты Microsoft, для которых вы хотите получать обновления, а также выбрать языки и типы обновлений.
После настройки WSUS сервер будет автоматически загружать и сохранять обновления на вашем локальном сервере. Вы сможете управлять этими обновлениями и применять их на других компьютерах или серверах в вашей сети. Это позволит вам легко контролировать процесс обновления системы и убедиться в безопасности получаемых обновлений.
Сохранение обновлений на локальном сервере также может улучшить скорость и производительность обновления, так как вы будете загружать обновления с локальной сети, а не с сервера Microsoft через Интернет. Это особенно полезно в случаях, когда у вас медленное или нестабильное подключение к Интернету.
Использование локального сервера для сохранения обновлений Windows Server 2012 дает вам большую гибкость и контроль над процессом обновления. Вы можете выбрать нужные обновления, контролировать их установку и обновлять вашу систему в удобное для вас время.
В итоге, сохранение обновлений на локальном сервере значительно упрощает процесс обновления Windows Server 2012 и позволяет вам получить все преимущества новых функций и безопасности без необходимости подключения к Интернету.
При работе с операционной системой Windows 2012 важно знать, где находятся файлы обновлений. Корректное обновление операционной системы играет ключевую роль в обеспечении безопасности и стабильности работы сервера. Поэтому необходимо знать, как найти путь к файлам обновлений Windows 2012.
Файлы обновлений Windows 2012 хранятся в специальной папке, которая называется «SoftwareDistribution». Эта папка содержит все файлы, относящиеся к обновлениям операционной системы. Для нахождения пути к этой папке необходимо выполнить несколько простых шагов.
1. Откройте проводник Windows и перейдите в раздел диска, на котором установлена операционная система. Обычно это диск «C:».
2. В адресной строке проводника введите путь «C:\Windows\SoftwareDistribution» и нажмите клавишу Enter.
После выполнения этих действий вы окажетесь в папке «SoftwareDistribution», где можно будет найти все файлы обновлений Windows 2012. Обратите внимание, что доступ к этой папке обычно имеет только системный пользователь, поэтому для ее открытия может потребоваться права администратора.
Содержание
- Где найти файлы обновлений Windows 2012
- Источники обновлений операционной системы
- Путь к файлам обновлений Windows 2012
- Как найти и загрузить обновления операционной системы
Где найти файлы обновлений Windows 2012
Файлы обновлений операционной системы Windows 2012 могут быть найдены в специальной папке, называемой папкой обновлений. Для доступа к этой папке вам потребуется административные права на компьютере.
Путь к папке обновлений будет зависеть от типа установки Windows 2012.
Если у вас установлена полная версия Windows 2012 на сервере, то путь к папке обновлений будет следующим:
C:\Windows\SoftwareDistribution\Download
В этой папке вы найдете все скачанные файлы обновлений для операционной системы Windows 2012.
Если у вас установлена Server Core версия Windows 2012, то путь к папке обновлений будет отличаться:
C:\Windows\WinSxS
В этой папке вы найдете файлы обновлений, включая служебные файлы и информацию о компонентах операционной системы Windows 2012.
Необходимо быть осторожным при работе с этими папками, так как они содержат важные системные файлы. Внесение изменений в эти файлы может привести к сбою операционной системы.
Следует помнить, что регулярное обновление операционной системы Windows 2012 является важным элементом для обеспечения безопасности и оптимальной работы вашего сервера.
Источники обновлений операционной системы
Для операционной системы Windows 2012 существует несколько источников, где можно найти файлы обновлений:
- Windows Update — это сервис, который автоматически загружает и устанавливает обновления на компьютер. Он поддерживается и поддерживается Microsoft, и поэтому является одним из основных источников обновлений для операционной системы Windows 2012. Чтобы воспользоваться этим сервисом, необходимо настроить соответствующие параметры в настройках системы.
- Центр обновления Microsoft — это веб-сайт, где можно найти и загрузить обновления для различных продуктов Microsoft, включая операционную систему Windows 2012. Здесь можно найти как критические обновления безопасности, так и обновления для исправления ошибок и повышения производительности.
- Медиа-установка — вместе с установочным диском операционной системы Windows 2012 поставляется также диск с обновлениями. Этот диск содержит наиболее актуальные и важные обновления, выпущенные на момент создания диска. При установке операционной системы с помощью этого диска эти обновления будут автоматически установлены.
- Центр обслуживания Microsoft — это портал, где можно найти информацию об обновлениях операционной системы Windows 2012, включая критические обновления безопасности и фикс-паки. Здесь можно также загрузить и установить обновления вручную.
Все эти источники предоставляют доступ к обновлениям, которые Microsoft выпускает для операционной системы Windows 2012. Используя эти источники, можно быть уверенным в том, что ваша система будет защищена от уязвимостей и работать с наибольшей эффективностью.
Путь к файлам обновлений Windows 2012
Файлы обновлений операционной системы Windows Server 2012 располагаются в специальной папке. Для доступа к этим файлам необходимо перейти по следующему пути на жестком диске:
C:\Windows\SoftwareDistribution\Download\
Внутри папки «Download» находятся все скачанные файлы с обновлениями для Windows Server 2012. Это может быть полезно, например, в случае необходимости ручной установки обновлений или восстановления файлов.
Если вы хотите узнать, какие файлы нужно обновить, можно также использовать специальные программы, такие как Windows Update или Windows Server Update Services (WSUS), которые автоматически обновляют операционную систему и предоставляют список доступных обновлений.
Знание пути к файлам обновлений Windows Server 2012 может быть полезным при решении проблем с обновлениями, а также для тщательного контроля над процессом обновления операционной системы.
Как найти и загрузить обновления операционной системы
- Откройте «Центр обновления Windows». Для этого щелкните правой кнопкой мыши по кнопке «Пуск» в левом нижнем углу экрана и выберите «Центр обновления Windows».
- Проверьте наличие обновлений. В открывшемся окне «Центра обновления Windows» нажмите на кнопку «Проверить наличие обновлений». Операционная система начнет поиск и загрузку доступных обновлений.
- Выберите обновления для установки. После завершения поиска обновлений система отобразит список доступных обновлений. Отметьте необходимые обновления для установки, а затем нажмите кнопку «Установить обновления».
- Дождитесь завершения установки обновлений. Система начнет загрузку и установку выбранных обновлений. Дождитесь завершения процесса установки.
После завершения установки обновлений операционная система будет обновлена до последней версии, что поможет повысить безопасность и улучшить работу вашего компьютера. Регулярно проверяйте наличие новых обновлений и устанавливайте их, чтобы быть уверенным в надежности и стабильности вашей операционной системы.
Windows Server является известной операционной системой, широко используемой в корпоративной среде. Как и любой другой программный продукт, Windows Server требует постоянного обновления для поддержания безопасности и функциональности. Такие обновления могут включать исправление ошибок, улучшение производительности и добавление новых функций.
Когда речь заходит о файле обновлений Windows Server, важно знать где он хранится и как к нему получить доступ. Файлы обновлений Windows Server размещаются в специальных репозиториях, которые поддерживаются компанией Microsoft. Обновления доступны для загрузки через официальный сайт Microsoft или специальные инструменты обновления операционной системы.
Если вы хотите получить последние файлы обновлений, вам необходимо подключить компьютер к Интернету и запустить Windows Update. Этот инструмент автоматически сканирует вашу систему и предоставляет список доступных обновлений. Вы можете выбрать конкретные обновления, которые хотите установить, или оставить эту работу на автоматическом режиме.
Содержание
- Где находятся файлы обновления Windows Server?
- Местонахождение файлов обновления Windows Server
- Путь к файлам обновлений Windows Server
Где находятся файлы обновления Windows Server?
Файлы обновления Windows Server хранятся в специальной папке на сервере, называемой «Обновления Windows». Эта папка по умолчанию находится в следующем пути:
C:\Windows\SoftwareDistribution\Download
В этой папке содержатся все скачанные файлы обновлений, включая исправления безопасности и новые функции. Файлы обновлений распределены по вложенным папкам, и названия этих папок обычно состоят из случайно сгенерированных букв и цифр.
Размер папки «Обновления Windows» может значительно увеличиваться по мере загрузки новых обновлений. Если вам необходимо освободить место на диске, можно воспользоваться программой для очистки диска или вручную удалить старые файлы обновлений.
Обратите внимание, что удаление файлов обновлений может снизить возможность отката к предыдущей версии Windows или повлечь проблемы при установке новых обновлений.
Важно отметить, что указанный путь может изменяться в зависимости от настроек вашего сервера и версии Windows Server.
Примечание: перед внесением изменений в любые системные файлы, рекомендуется создать резервную копию данных.
Местонахождение файлов обновления Windows Server
Файлы обновлений для Windows Server хранятся в специальной папке на компьютере. Путь к этой папке зависит от версии операционной системы:
- В Windows Server 2008 и Windows Server 2008 R2 файлы обновлений хранятся по пути C:\Windows\SoftwareDistribution\Download.
- В Windows Server 2012 и Windows Server 2012 R2 файлы обновлений хранятся по пути C:\Windows\SoftwareDistribution\Download.
- В Windows Server 2016 и более поздних версиях файлы обновлений хранятся по пути C:\Windows\SoftwareDistribution\Download.
В этой папке находятся файлы с расширением .cab, которые содержат необходимые компоненты для обновления операционной системы. Обновления устанавливаются автоматически через службу Windows Update.
Если требуется ручная установка обновлений, можно использовать инструмент командной строки wusa.exe
, который позволяет установить .cab-файлы.
Важно отметить, что для корректной работы операционной системы необходимо регулярно проверять наличие новых обновлений и устанавливать их для повышения безопасности и стабильности сервера.
Путь к файлам обновлений Windows Server
Файлы обновлений Windows Server сохраняются в определенном пути на жестком диске компьютера. По умолчанию, путь к файлам обновлений выглядит следующим образом:
C:\Windows\SoftwareDistribution\Download
Папка «SoftwareDistribution» находится в директории Windows, а внутри нее создается подпапка «Download». В этой папке хранятся загруженные обновления для Windows Server.
Однако, важно отметить, что путь к файлам обновлений может быть изменен администратором или по умолчанию настройками Windows Server. Если у вас не находится папки «SoftwareDistribution» в директории Windows или вы не можете найти файлы обновлений, обратитесь к документации Microsoft или к администратору системы для получения дополнительной информации.
Примечание: Если вы не знакомы с системными путями или не уверены в своих действиях, рекомендуется обратиться к профессионалу или тщательно изучить документацию, чтобы избежать потери данных или нарушения работоспособности системы.
Вы когда-нибудь задумывались, с помощью чего формируется список установленных обновлений Windows? А через какое API его достать? Ответы на эти и другие возникающие вопросы я постараюсь дать в своём небольшом исследовании.
Предыстория или с чего всё началось.
В нашей компании каждый год проходит конференция молодых специалистов, где каждый участник может решить проблему какого-либо отдела (список тем заранее предлагается).
Раньше на каждое «ТО» с помощью WSUS подтягивались все выпущенные обновления и распространялись на все машины. Также периодически выходили ТСБ (технические сервисные бюллетени), в которых указывалось, что требуется установить необходимые обновления в виде изолированных пакетов. В итоге у нас накапливаются обновления, которые в WSUS отследить нельзя, а можно было увидеть только через панель управления в разделе «Установленные обновления».
Бывают ситуации, когда АРМ или сервер «падает» и приходится его восстанавливать из образа, созданного некоторое время назад. При восстановлении из образа есть вероятность того, что мы можем потерять нужные нам обновления (которые пришли в виде изолированных пакетов), которые устанавливались до падения машины. Объяснил максимально подробно насколько мог, потому что уточнения будут уже коммерческой тайной.
Вот поэтому и возникла идея создать программу, которая бы могла извлечь этот список обновлений (желательно удаленно по локальной сети), записать в файл/базу, сравнить текущий перечень с неким шаблоном и выдать сообщение на SCADA систему через один из протоколов — SNMP, OPC.
Как вы могли догадаться из названия статьи, уже на выборе метода получения списка у меня возникла непростая задача. Я, как обычно, решил поискать нужное в поисковике, задал вопросы на профильных ресурсах (раз, два, на английском stackoverflow почему-то не понравился мой вопрос и его пришлось удалить), но все ответы не давали нужного результата. Поэтому пришлось разбираться самому, о чем и пойдет речь далее.
Консольные команды
Начнем с простого и воспользуемся тем, что предлагает нам Windows без использования сторонних средств. Это можно сделать с помощью следующих команд:
- wmic qfe list
- systeminfo
- dism /online /get-packages
- через PowerShell:
- Get-HotFix
- Get-SilWindowsUpdate (доступно только в серверных редакциях)
- Get-WmiObject -Class win32_quickfixengineering — через доступ к WMI классу win32_quickfixengineering (о WMI чуть позже)
Получить список через графический интерфейс можно через стандартный пункт Панели управления «Установка/удаление программ», но скопировать оттуда мы ничего не можем. Каждый инструмент панели управления представлен файлом .cpl в папке Windows\System. Файлы .cpl в системную папку Windows автоматически загружаются при запуске панели управления. За пункт Программы отвечает файл Appwiz.cpl. Его анализ ни к чему не привел.
Вывод консольной команды можно перенаправить в файл и дальше начать его парсить, но это неправильно, плюс вызов программы (по правилам СБ не пройдет) и об удаленном получении списка речь не идёт. Поэтому предлагаю вам просто вызвать команды, сравнить количество обновлений в каждом списке, со списком через Панель управления и продолжить наше расследование дальше.
Формально все методы получения списка обновлений можно разделить на две группы: локальные и сетевые.
Все методы проверялись на чистых образах систем (Windows 7, 8, Server 2012 R2) с интегрированными обновлениями, после каждого обновления через Центр обновления с официальных серверов Microsoft проводилась дополнительная проверка. Остановимся на каждом из них подробнее.
WUA
WUApi (Windows Update Agent API) — использование API агента обновления Windows. Самый явный вариант, название которого говорит само за себя. Использовать для этого будем библиотеку Wuapi.dll.
Примечание: далее для своего удобства все результаты я буду вставлять в List. Это, возможно, не рационально, но тогда мне это казалось хорошей идеей.
Пример реализации
using WUApiLib;
public static List<string> listUpdateHistory()
{
//WUApi
List<string> result = new List<string>(200);
try
{
UpdateSession uSession = new UpdateSession();
IUpdateSearcher uSearcher = uSession.CreateUpdateSearcher();
uSearcher.Online = false;
ISearchResult sResult = uSearcher.Search("IsInstalled=1 And IsHidden=0");
string sw = "Количество обновлений через WUApi: " + sResult.Updates.Count;
result.Add(sw);
foreach (WUApiLib.IUpdate update in sResult.Updates)
{
result.Add(update.Title);
}
}
catch (Exception ex)
{
result.Add("Что-то пошло не так: " + ex.Message);
}
return result;
}
Есть и вторая вариация этого метода: Update Session — получение информации с помощью подключения к сессии обновления Windows Update Agent (в данном случае работаем не напрямую с библиотекой).
Пример реализации
public static List<string> Sessionlist(string pc)
{
List<string> result = new List<string>(50); //не забудь изменить количество
object sess = null;
object search = null;
object coll = null;
try
{
sess = Activator.CreateInstance(Type.GetTypeFromProgID("Microsoft.Update.Session", pc));
search = (sess as dynamic).CreateUpdateSearcher();
int n = (search as dynamic).GetTotalHistoryCount();
int kol = 0;
//coll = (search as dynamic).QueryHistory(1, n);
coll = (search as dynamic).QueryHistory(0, n);
result.Add("Количество через Update.Session: " + n);
foreach (dynamic item in coll as dynamic)
{
if (item.Operation == 1) result.Add(item.Title);
kol++;
//Console.WriteLine("Количество: " + kol);
}
result.Add("Количество в цикле: " + kol);
}
catch (Exception ex)
{
result.Add("Что-то пошло не так: " + ex.Message);
}
finally
{
if (sess != null) Marshal.ReleaseComObject(sess);
if (search != null) Marshal.ReleaseComObject(search);
if (coll != null) Marshal.ReleaseComObject(coll);
}
return result;
}
Microsoft подсказывает об удаленном использовании API.
Главный минусы этих двух методов — не позволяют найти исправления KB, которые не распространяются через Центр обновления Windows. Можно увидеть только то, что прошло через сам агент обновления, то есть данный вариант нас не устраивает.
DISM
Система обслуживания образов развертывания и управления ими (Deployment Image Servicing and Management) — это средство командной строки, которое может использоваться для обслуживания образа Windows или для подготовки образа среды предустановки Windows (Windows PE). Является заменой диспетчера пакетов (Pkgmgr.exe), PEimg и Intlcfg.
Данная утилита используется для интеграции обновлений, сервис паков в образ системы. Обновления Windows представляют собой отдельные модули, которые могут быть представлены в нескольких вариантах:
- .cab-файлы (Cabinet) — архивы. Предназначены для распространения и установки при помощи модулей Центра обновлений Windows в автоматизированном режиме;
- .msu-файлы (Microsoft Update Standalone Package) — исполняемые файлы. Предназначены для распространения и установки самими пользователями в ручном режиме через каталог обновлений Microsoft. Фактически представляют собой упакованный набор, состоящий из .cab-, .xml, .txt-файлов.
Ранее упомянутая команда dism /online /get-packages отображает основную информацию обо всех пакетах в wim образе/текущей системе. Microsoft позаботилась о нас и предоставляет NuGet packages для удобного использования API.
Пример реализации
using Microsoft.Dism;
public static List<string> DISMlist()
{
List<string> result = new List<string>(220);
try
{
DismApi.Initialize(DismLogLevel.LogErrors);
var dismsession = DismApi.OpenOnlineSession();
var listupdate = DismApi.GetPackages(dismsession);
int ab = listupdate.Count;
//Console.WriteLine("Количество обновлений через DISM: " + ab);
string sw = "Количество обновлений через DISM: " + ab;
result.Add(sw);
foreach (DismPackage feature in listupdate)
{
result.Add(feature.PackageName);
//result.Add($"[Имя пакета] {feature.PackageName}");
//result.Add($"[Дата установки] {feature.InstallTime}");
//result.Add($"[Тип обновления] {feature.ReleaseType}");
}
}
catch (Exception ex)
{
result.Add("Что-то пошло не так: " + ex.Message);
}
return result;
}
Количество обновлений совпадало с количеством из списка Панели управления до первого апдейта через центр управления — после него количество обновлений стало меньше (было 214, стало 209), хотя по логике они должны были увеличиться. Примеры вывода До обновления, После обновления.
С чем это связано я могу только предполагать — возможно, какие-то обновления замещали предыдущие, следовательно, и количество стало меньше.
Чуть позже я наткнулся на утилиту от китайцев DISM++, которая основана не на DISM API или DISM Core API, но имеющиеся в ней библиотеки не имеют нужных мне открытых методов, поэтому я забросил эту идею и продолжил поиски дальше.
WSUS
Windows Server Update Services (WSUS) — сервер обновлений операционных систем и продуктов Microsoft. Сервер обновлений синхронизируется с сайтом Microsoft, скачивая обновления, которые могут быть распространены внутри корпоративной локальной сети. Опять же специальный инструмент, предназначенный для работы с обновлениями.
Распространяется только на серверных редакциях ОС Windows, поэтому был развернут следующий стенд:
- основная система – Windows Server 2016;
- а через систему виртуализации Hyper-V были развернуты две клиентские ОС:
- Windows 8.1
- Windows 7
Все системы соединены в единую виртуальную локальную сеть, но
без выхода в сеть Интернет
.
Немного советов
Чтобы не выделять раздел жесткого диска для новой системы я пользуюсь WinNTSetup и устанавливаю систему в VHD диски — загрузчик, начиная с Windows 7 (редакций Professional/Ultimate), прекрасно справляется с загрузкой с образа диска. Полученные таким образом диски можно спокойно использовать и в Hyper-V — убиваете сразу двоих зайцев. Не забудьте только сделать заранее копию хранилища BCD через команду bcdedit /export e:\bcd_backup.bcd.
Настраивать AD для рассылки обновлений я не захотел, поэтому просто прописал в групповых политиках путь к WSUS серверу:
Обязательно уделите внимание на порт, я из-за опечатки (8350 вместо 8530) не мог получить обновления на клиентских машинах, хотя сделано было всё верно. Так же названия пунктов в групповых политиках на Windows 7 и Windows 8 различаются.
Для получения отчета средствами WSUS необходимо дополнительно установить пакет — система уведомит вас об этом.
А теперь немного кода
//не забудьте добавить ссылку на библиотеку
using Microsoft.UpdateServices.Administration;
public static List<string> GetWSUSlist(params string[] list)
{
List<string> result = new List<string>(200); //не забудь изменить количество
string namehost = list[0]; //имя Пк, на котором будем искать string = "example1";
string servername = list[1]; //имя сервера string = "WIN-E1U41FA6E55";
string Username = list[2];
string Password = list[3];
try
{
ComputerTargetScope scope = new ComputerTargetScope();
IUpdateServer server = AdminProxy.GetUpdateServer(servername, false, 8530);
ComputerTargetCollection targets = server.GetComputerTargets(scope);
// Search
targets = server.SearchComputerTargets(namehost);
// To get only on server FindTarget method
IComputerTarget target = FindTarget(targets, namehost);
result.Add("Имя ПК: " + target.FullDomainName);
IUpdateSummary summary = target.GetUpdateInstallationSummary();
UpdateScope _updateScope = new UpdateScope();
// See in UpdateInstallationStates all other properties criteria
//_updateScope.IncludedInstallationStates = UpdateInstallationStates.Downloaded;
UpdateInstallationInfoCollection updatesInfo = target.GetUpdateInstallationInfoPerUpdate(_updateScope);
int updateCount = updatesInfo.Count;
result.Add("Кол -во найденных обновлений - " + updateCount);
foreach (IUpdateInstallationInfo updateInfo in updatesInfo)
{
result.Add(updateInfo.GetUpdate().Title);
}
}
catch (Exception ex)
{
result.Add("Что-то пошло не так: " + ex.Message);
}
return result;
}
public static IComputerTarget FindTarget(ComputerTargetCollection coll, string computername)
{
foreach (IComputerTarget target in coll)
{
if (target.FullDomainName.Contains(computername.ToLower()))
return target;
}
return null;
}
Так как интернета нет, то ситуация с обновлениями выходит как на скриншоте ниже:
Поведение похоже на WUApi — если обновления не прошли через них, то они не знают об этом. Поэтому данный метод снова не подходит.
WMI
Windows Management Instrumentation (WMI) в дословном переводе — инструментарий управления Windows.
WMI — реализованный корпорацией Майкрософт стандарт управления предприятием
через Интернет
для централизованного администрирования и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. WMI является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы, устройствам и приложениям, которые функционируют в ней.
Данный метод позволяет получить данные как с локальной машины, так и удаленно в пределах локальной сети. Для обращения к объектам WMI используется специфический язык запросов WMI Query Language (WQL), который является одной из разновидностей SQL. Получать список мы будем через WMI класс win32_quickfixengineering.
Пример реализации
using System.Management;
public static List<string> GetWMIlist(params string[] list)
{
List<string> result = new List<string>(200); //не забудь изменить количество
ManagementScope Scope;
string ComputerName = list[0];
string Username = list[1];
string Password = list[2];
int kol = 0;
if (!ComputerName.Equals("localhost", StringComparison.OrdinalIgnoreCase))
{
// Возвращает или задает полномочия, которые используются для проверки подлинности
// указанного пользователя.
ConnectionOptions Conn = new ConnectionOptions();
Conn.Username = Username;
Conn.Password = Password;
//Если значение свойства начинается со строки «NTLMDOMAIN:» аутентификация NTLM будет использоваться, и свойство должно содержать доменное имя NTLM.
Conn.Authority = "ntlmdomain:DOMAIN";
Scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2", ComputerName), Conn);
}
else
Scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2", ComputerName), null);
try
{
Scope.Connect();
ObjectQuery Query = new ObjectQuery("SELECT * FROM Win32_QuickFixEngineering");
ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope, Query);
foreach (ManagementObject WmiObject in Searcher.Get())
{
result.Add(WmiObject["HotFixID"].ToString());
//Console.WriteLine("{0,-35} {1,-40}", "HotFixID", WmiObject["HotFixID"]);// String
//result.Add();
/*result.Add("{0,-17} {1}", "Тип обновления: ", WmiObject["Description"]);
result.Add("{0,-17} {1}", "Ссылка: ", WmiObject["Caption"]);
result.Add("{0,-17} {1}", "Дата установки: ", WmiObject["InstalledOn"]);*/
kol++;
}
result.Add("Количество равно " + kol);
}
catch (Exception ex)
{
result.Add("Что-то пошло не так: " + ex.Message);
}
return result;
}
Количественно всё совпадает (даже после обновлений), поэтому было решено использовать этот метод. Для программного создания WMI запросов советую использовать следующую утилиту — WMI Delphi Code Creator. Благодаря ей я немного по другому взглянул на свой код и решил использовать заготовку из этой программы.
XML
Полученные данные методом WMI меня не остановили, и я решился на „поверхностный реверс-инжиниринг“. Воспользуемся утилитой Process Monitor из сборника программ Sysinternals Suite для выявления файлов и ветвей реестра, которые используются при вызове выше перечисленных консольных команд и обращению к пункту „Установленные обновления“ через Панель управления.
Моё внимание привлек файл wuindex.xml, расположенный в папке C:\Windows\servicing\Packages\. Для его анализа была написана следующая программа:
Пример консольного приложения
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Text.RegularExpressions;
using System.IO;
namespace XMLviewer
{
class Program
{
static void Main(string[] args)
{
string writePath = AppDomain.CurrentDomain.BaseDirectory + "XML Обновлений " + Environment.MachineName + ".txt";
if (!File.Exists(writePath))
{
Console.WriteLine("Создаю пустой txt файл");
}
else
{
Console.WriteLine("Файл XML Обновлений.txt существует, он будет перезаписан");
File.Delete(writePath);
}
//регулярное выражение для поиска по маске KB
Regex regex = new Regex(@"KB[0-9]{6,7}");
//Regex(@"(\w{2}\d{6,7}) ?");
//SortedSet не поддерживает повторяющиеся элементы, поэтому повторяющиеся элементы мы "группируем" ещё на стадии добавления
SortedSet<string> spisok = new SortedSet<string>();
XmlDocument xDoc = new XmlDocument();
string path = "C:\\Windows\\servicing\\Packages\\wuindex.xml"; //путь до нашего xml
xDoc.Load(path);
int kol = 0; //кол-во компонентов
int total = 0; //кол-во дочерних элементов в xml
int total2 = 0; //кол-во полученных обновлений
XmlNodeList name = xDoc.GetElementsByTagName("Mappings");
foreach (XmlNode xnode in name)
{
//Console.WriteLine(xnode.Name);
kol++;
XmlNode attr = xnode.Attributes.GetNamedItem("UpdateId");
//Console.WriteLine(attr.Value);
foreach (XmlNode childnode in xnode.ChildNodes)
{
XmlNode childattr = childnode.Attributes.GetNamedItem("Package");
total++;
//Console.WriteLine(childattr.Value);
MatchCollection matches = regex.Matches(childattr.Value);
if (matches.Count > 0)
{
foreach (Match match in matches)
//Console.WriteLine(match.Value);
spisok.Add(match.Value);
}
else
{
//Console.WriteLine("Совпадений не найдено");
}
}
}
try
{
StreamWriter sw = new StreamWriter(writePath);
foreach (string element in spisok)
{
//Console.WriteLine(element);
sw.WriteLine(element);
total2++;
}
sw.Close();
}
catch (Exception ex)
{
Console.WriteLine("Ошибка: " + ex.Message);
}
//Console.WriteLine("\n");
Console.WriteLine("Количество пакетов: " +kol);
Console.WriteLine("Количество дочерних элементов в xml: " + total);
Console.WriteLine("Количество KB обновлений: " + total2);
Console.WriteLine("Нажмите любую клавишу для выхода.");
Console.Read();
}
}
}
К сожалению, данный файл встречается не на всех системах и принцип его генерирования и обновления остался для меня загадкой. Поэтому снова данный метод нам не подходит.
CBS
Вот мы подошли к тому, с чем связаны все эти методы. Продолжая анализ логов Process Monitor я выявил следующие папки и файлы.
Файл DataStore.edb, расположенный в папке C:\Windows\SoftwareDistribution\DataStore. Это база данных, в которой содержится история всех обновлений установленной версии Windows, включая те обновления, которые только стоят в очереди.
Для анализа файла DataStore.edb использовалась программа ESEDatabaseView. В БД существует таблица tbUpdates, содержимое которой трудно интерпретировать.
После мое внимание привлек процесс TiWorker.exe, который вызывался каждый раз при открытии пункта в Панели управления. Он „ходил“ по многим папкам, одна из которых вывела меня на верный путь.
C:\Windows\SoftwareDistribution — это папка, используемая службой обновления Windows для загрузки обновлений на компьютер с последующей их установкой, а также хранит сведения обо всех ранее установленных обновлениях.
Папка WinSxS, расположенная по адресу C:\Windows\winsxs. Это служебная папка операционной системы Windows служащая для хранения ранее установленных версий системных компонентов. Благодаря ее наличию существует возможность отката к более старой версии обновления в случае необходимости.
C:\Windows\servicing — основная составляющая всей системы, имя которой Component-Based Servicing (CBS).
CBS — обслуживание на основе компонентов, составляющая Windows, интегрированная с службой Windows Update. В противоположность обслуживанию на основе файлов File-Based Servicing (FBS) (для ОС, предшествующих Windows Vista), в котором файлы обновлялись прямо в системных директориях, в CBS появилась целая иерархия директорий и целое семейство (стек) модулей/библиотек обслуживания.
CbsApi.dll — основная библиотека поддержки технологии CBS. Не имеет открытых методов, поэтому напрямую использовать её я не смог. Microsoft использует TrustedInstaller.exe и TiWorker.exe для доступа к методам данной библиотеки и уже через эти процессы выводит нужные нам данные. Записи ведутся в C:\Windows\Logs\CBS\CBS.log.
На момент создания прототипа программы (на скриншотах можете увидеть май 2019) русскоязычной информации о CBS не было, но в конце августа нашлась очень хорошая статья в блоге — http://datadump.ru/component-based-servicing. Очень интересная статья, которая подтвердила мой опыт и собрала в себе нужную информацию. И ещё по теме: http://www.outsidethebox.ms/17988/
Вывод
Microsoft слишком усложнила тривиальную задачу по получению списка обновлений и сделала этот процесс не совсем явным. Всё это сделано для безопасности, но не для простоты использования. Соглашусь с автором статьи — в получении обновлений стали отсутствовать предсказуемость и прозрачность.
В результате исследования была написана следующая программа, демонстрацию работы которой можно увидеть в данном видео:
В планах дописать:
- сравнение списка необходимых обновлений с полученным;
- передать результат по протоколу SNMP/OPC (если у кого есть опыт поделитесь в комментариях);
- организовать установку недостающих „офлайн“ обновлений из указанной папки.
Если вы знаете ещё методы получения списка не только обновлений, но и дополнительных компонентов (Adobe Flash, Acrobat Reader и т.д.) или у вас есть другие интересные предложения, напишите об этом в комментариях или в личные сообщения — буду рад любой обратной связи. И поучаствуйте в опросе к данной статье — так я буду знать, будет ли интересен мой опыт аудитории Habrahabr.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Продолжить тему о том, как всем этим управлять через SNMP/OPC?
12.03%
Нет, не интересно
16
17.29%
Бессмысленное занятие, займись лучше другим
23
Проголосовали 133 пользователя.
Воздержались 50 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
И пользуясь случаем ещё один опрос: рассказать про ЕГИССО — что это какое, как мучаются люди и что люди разрабатывают, чтобы с этим работать?
78.23%
Интересно прочитать про ужасы от Пенсионного фонда (Да)
97
21.77%
Спасение утопающих — дело рук самих утопающих (Нет)
27
Проголосовали 124 пользователя.
Воздержались 44 пользователя.
Windows Server Core 2012, как и любой другой продукт Microsoft необходимо поддерживать в актуальном состоянии, вовремя устанавливая обновления безопасности, выпускаемые компанией Microsoft (список последних обновлений и патчей на продукты Microsoft доступен в разделе Обзор обновлений безопасности Microsoft).
Установка обновлений безопасности на Windows Server Core 2012 несколько отличается от оной для графического варианта установки Windows Server 2012 (Full GUI). Естественно основное отличие в том, что в Core режиме отсутствует графические элементы управления, позволяющие настроить и запустить установку обновлений (всплывающий балон в трее, и соответствующий элемент в консоли Server Manager). Конечно, из Core режима можно переключится в графический, установить обновления и удалить GUI (подробно процедура переключений между режимами описана в статье Переключение между графическим и Core режимами в Windows Server 2012), однако это не очень удобно и требует дополнительных затрат времени администратора.
Разберем стандартные способы установки обновлений на Windows Server 2012:
- Автоматическое обновление с сервера Microsoft Windows Update или WSUS (Как настроить сервер обновлений WSUS на Windows Server 2012)– сервер автоматически скачивает и устанавливает обновления с заданного сервера WSUS или центра обновлений Microsoft . Этот вариант в большинстве случаев не приемлем, т.к. установка обновлений на серверах обычно выполняется в заранее запланированное окно обслуживания.
- Ручной запуск установки обновлений, полученных с сервера обновлений (Windows Update или WSUS). В такой конфигурации сервер автоматически скачивает обновления с сервера обновлений, но запуск установки патчей осуществляется вручную администратором (предпочтительный вариант).
- Ручная установка обновлений. Администратор самостоятельно скачивает обновления и вручную устанавливает их на сервере.
Управление автоматическим обновлением в Sever Core 2012
Текущие настройки службы обновлений можно получить с помощью команды:
Cscript scregedit.wsf /AU /v
Включить автоматическую установке обновлений можно с помощью команд:
Net stop wsuaserv cscript scregedit.wst /AU 4 net start wsuaserv
Отключить автоматическое обновление можно так:
Net stop wsuaserv cscript scregedit.wsf /AU 1 net start wsuaserv
Запустить принудительный поиск доступных обновлений можно с помощью команды:
wuauclt /detectnow
Если сервер должен установить обновления автоматически, но не перезагружаться, можно отключить автоматическую перезагрузку Windows после установки обновлений.
Ручная установка обновлений, полученных с WSUS
Эта методика установки обновлений на Windows Core 2012 является оптимальной в большинстве случаев: с помощью групповой политики или путем ручной модификации реестра указывается WSUS сервер и задается режим ручного запуска установки обновлений, затем в профилактическое окно администратор сервера вручную стартует установку обновлений. Возникает вопрос: как же запустить установку обновлений, полученных со WSUS сервера, на Windows Core 2012? В этом нам поможет утилита sconfig, входящая в стандартную поставку Windows Core.
Запустите утилиту
sconfig
Выберите 6 пункт: Download and Install Updates
На вопрос необходимо ли искать все или рекомендованные обновления, выберем все (A).
Система обнаружит и отобразит список обнаруженных обновлений и предложит их установить (все сразу, по одному) или совсем отказаться от их установки.
Если выбрана установка обновлений, систем приступит к закачке и установке обновлений Windows Server Core 2012.
После установки обновлений, система может потребовать перезагрузки.
Ручная установка обновлений
Обновлений на Server Core можно установить и вручную, хотя это и достаточно трудоемкий и в большой степени ручной процесс. Необходимо сначала вручную скачать нужные обновлений с сайта Microsoft Update, распаковать их, скопировать на сервер и вручную последовательно их установить.
Вручную обновление можно установить командой:
Wusa <kbupdate>.msu /quiet
В случае необходимости удалить установленное обновление можно так:
Wusa /uninstall <kbupdate>.msu /quiet
Если необходимо узнать, какие обновлений уже установлены, можно вывести их список по методике, описанной в статье Как в Windows вывести список всех установленных обновлений.