get windowscapability такой запрос не поддерживается
Get-Windows Capability
Gets Windows capabilities for an image or a running operating system.
Syntax
Description
The Get-WindowsCapability cmdlet gets Windows capabilities installed in an image or running operating system, or available for installation from a remote source.
Examples
Example 1: Get the Windows capabilities for an image
This command gets the Windows capabilities installed in the operating system image specified by the Name parameter at the path C:\offline.
Example 2: Get the Windows capabilities for the local operating system
This command gets the Windows capabilities installed on the local host.
Parameters
Specifies the maximum output level shown in the logs. The default log level is 3. The accepted values are as follows:
Type: | String |
Aliases: | LP |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the identity of the capability in an operating system image to get.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Indicates that the cmdlet operates on a running operating system on the local host.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the full path to the root directory of the offline Windows image that you will service. If the directory named Windows is not a subdirectory of the root directory, WindowsDirectory must be specified.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Specifies the path to the Windows directory relative to the image path. This cannot be the full path to the Windows directory; it should be a relative path. If not specified, the default is the Windows directory in the root of the offline image directory.
Get-WindowsCapability : The process cannot access the file because it is being used by another process. #94
Comments
MajkelP commented Jul 4, 2019
Get-WindowsCapability : The process cannot access the file because it is being used by another process.
At C:\Users\Michael\Desktop\Optimize-Offline-master\Optimize-Offline.ps1:699 char:22
Could you please explain what is the problem?
The text was updated successfully, but these errors were encountered:
DrEmpiricism commented Jul 4, 2019
Something else outside of the script is interacting with the image’s mount path.
MajkelP commented Jul 5, 2019
For test I installed on virtual machine fresh Windows 10 Enterprise LTSC and I am getting the same error. I did not install any office, firewall, antivirus.
Get-WindowsCapability : The process cannot access the file because it is being used by
another process.
At C:\Optimize-Offline-master\Optimize-Offline.ps1:699 char:22
DrEmpiricism commented Jul 5, 2019 •
That error happens because some processes will ‘lock’ a file or path if it’s interacting with it. For example, Notepad.exe is notorious for doing this and causing said error. For folders or directories, permission changes or using the ‘Share’ feature can lock them.
I have ran a debugger on this script many times while monitoring processes it’s using and have not encountered any secondary processes interfering with the primary process. The only way I can replicate this error is by querying the registry manually while it attempts to return the image’s capability packages.
KedarWolf commented Jul 10, 2019
I had an issue with a similar script where having Windows Explorer file manager open with Preview and Navigation panes enabled it showed in the Preview pane the mounted wim directories and it caused the script to fail with a DISM access file in use error when mounting and unmounting the wims.
I closed Explorer while the app was running, problem solved. Try closing everything but the script, maybe even CTRL ALT DEL and close anything running.
MajkelP commented Jul 13, 2019
Thank you for all replays, I will try.
MajkelP commented Jul 15, 2019
I closed explorer process and script run smoothly. Thank you for guiding me.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Установка Remote Server Administration Tools (RSAT) в Windows 10 v1903 в Offline-режиме
Ранее мы уже писали об особенностях установки пакета Remote Server Administration Tools (RSAT) в Windows 10. Но время идёт и новые релизы Windows 10 вносят новые правила работы с этим пакетом. В этой заметке мы поговорим об особенностях автономной установки RSAT в актуальной версии Windows 10 1903.
Графический интерфейс «Параметры Windows» и UAC
В рассматриваемой нами версии Windows 10 активацию компонент RSAT можно выполнить через графический интерфейс Windows, пройдя последовательно в Параметры Windows > Приложения > Дополнительные возможности > Добавить компонент
Однако, если с помощью этого графического интерфейса мы попытаемся выполнить добавление компонент на системе, подключенной к локальному серверу WSUS/SCCM SUP, то может получиться так, что мы даже не сможем получить перечень доступных к установке компонент.
Эта проблема будет воспроизводится в том случае, если текущий пользователь системы не имеет прав локального администратора и доступ к интерфейсу добавления компонент выполняется с запросом повышения привилегий UAC. При этом, если войти в систему интерактивно с правами администратора, то список компонент в графическом интерфейсе мы всё же сможем увидеть.
Компоненты RSAT и PowerShell
В качестве альтернативного варианта получения списка опциональных компонент Windows можно использовать оболочку PowerShell, запущенную с правами администратора. Для получения компонент, относящихся к пакету RSAT можно выполнить команду:
Установку той или иной компоненты можно выполнить командой типа:
Feature On Demand и проблема Offline-клиентов
И ошибка эта будет воспроизводиться как при использовании PowerShell, так и при использовании графического интерфейса. Правда, в графическом интерфейсе, опять же, это может быть не так очевидно.
Как я понял, связано это с тем, что для установки опциональных компонент требуется наличие доступа к комплекту пакетов установки Feature On Demand (FOD) для нашей «модной» версии Windows 1903. Именно в этот комплект включаются компоненты RSAT, начиная с обновления Windows 10 1809 от Октября 2018 года. Об этом, в частности, гласит примечание на странице загрузки Remote Server Administration Tools for Windows 10
Known issues affecting various RSAT versions:
Issue: RSAT FOD installation fails with error code 0x800f0954
Impact: RSAT FODs on Windows 10 1809 (October 2018 Update) in WSUS/SCCM environments
Resolution: To install FODs on a domain-joined PC which receives updates through WSUS or SCCM, you will need to change a Group Policy setting to enable downloading FODs directly from Windows Update or a local share.
И в этой ситуации администраторы используют разные пути. Некоторые идут по пути наименьшего сопротивления, не заморачиваясь при этом вопросами удобства и безопасности, и отключают на время установки RSAT нацеливание клиента на WSUS с последующей организацией прямого доступа к Windows Update.
На мой взгляд, этот метод «так себе», так как далеко не всегда и не во всех ситуациях возможно, или даже временно допустимо, обеспечивать прямой доступ на внешние интернет-узлы. К тому же решение с временной правкой реестра и последующим перезапуском службы клиента Windows Update назвать удобным язык не повернётся. При этом ведь ещё нужно помнить про том, что нигде в групповых политиках не должно быть настроено явных запретов на до-загрузку контента Windows c Windows Update.
Feature On Demand и WSUS
Не найдя нигде в открытых источниках вменяемого развёрнутого описания этой позиции (…впрочем, как и многих других…) мы решили включить её и проверить, что она нам даст. По итогу могу сказать, что среди метаданных о более, чем тысячи обновлений, прилетевших после синхронизации WSUS с Windows Update, я увидел только некоторые компоненты FOD, большинство из которых применимы только для старых версий Windows 10. Ну и в придачу мы получили целый ворох языковых пакетов на всех мыслимых и немыслимых языках, невзирая на то, что в настройках сервера WSUS у нас включены только английский и русский языки. В общем и целом эта позиция на WSUS для нас оказалась бесполезной и даже вредительской.
Раздача Feature On Demand для Offline-клиентов
В результате проведённых экспериментов стало очевидно, что единственным приемлемым в нашей ситуации вариантом, позволяющим выполнять Offline-установку RSAT, является вариант с развёртыванием специального сетевого каталога с компонентами Feature On Demand с нацеливанием клиентов на этот каталог через групповые политики.
Для начала нам потребуется получить образы дисков с компонентами FOD для нашей версии Windows 10. Загрузить эти образы можно вручную с сайта Volume Licensing Service Center (VLSC)
Распакованный контент будет представлять из себя множество *.cab файлов, среди которых есть и интересующие нас опциональные компоненты RSAT.
Теперь на любом Offline-клиенте c Windows 10 1903 мы можем попытаться выполнить установку компонент RSAT c помощью PowerShell, указывая в качестве источника получения подготовленный сетевой каталог:
Имейте в виду, что командлет Add-WindowsCapability работает довольно специфично. То есть он может отработать без ошибки, но если в указанном источнике не будут найдены файлы, подходящие для данной системы, никакой установки на самом деле не произойдёт… Разумеется, «это не баг, а фича»… Поэтому после выполнения командлета установки всех нужных компонент, лучше повторно проверять установленные компоненты:
После этого установленные компоненты RSAT можно будет видеть в уже «горячо полюбившейся» нам графической оболочке Windows 10 1903 в ранее упомянутом перечне дополнительных компонент Windows
И отсюда же их можно будет удалить при необходимости.
Таким образом все администраторы в организации смогут с помощью PowerShell вручную установить нужные им компоненты RSAT на свои системы Windows 10 1903, не имея прямого доступа в интернет. Однако Offline-установку можно сделать ещё удобней, если дополнительно настроить специальный параметр групповой политики, указывающий клиентам расположение сетевого каталога с компонентами FOD. Описан этот параметр GPO, например, в документе: How to make Features on Demand and language packs available when you’re using WSUS/SCCM.
Переходим в консоль управления групповыми политиками и в разделе политик Administrative Templates > System находим параметр «Specify settings for optional component installation and component repair«
Включаем этот параметр и указываем путь к сетевому каталогу с компонентами FOD в поле «Alternate source file path«.
Этот параметр групповой политики фактически принесёт на клиентские системы параметр реестра » LocalSourcePath » в ключе HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing
После этого Offline-установка компонент FOD станет доступна и через графический интерфейс Windows без использования танцев с PowerShell
Однако при этом стоит помнить про ранее обозначенный нюанс с пустым списком компонент в случае использования графического интерфейса в связке с UAC. То есть выполнять установку компонент FOD через графический интерфейс окна «Параметры Windows» нужно только при интерактивном входе в систему из под административной учётной записи. Если по какой-то причине заходить в систему администратором интерактивно нет желания/возможности, то можно использовать выше описанный метод с установкой через PowerShell.
При этом опять же стоит отметить то, что приятным плюсом использования настройки пути к компонентам FOD через групповую политику станет и то, что теперь при использовании PowerShell не потребуется явно указывать путь для установки нужных компонент:
И вроде бы теперь всё здорово, результат достигнут, то есть Offline-установка работает и через графический интерфейс и через PowerShell. Но дивные «фичи» на этом не кончаются.
Обработка «LocalSourcePath» с несколькими путями
Ещё одной странной штукой, которая была обнаружена при работе с выше обозначенным параметром групповой политики, это то, что, судя по описанию в GPO, значение опции «Alternate source file path» может принимать несколько путей с разделителем в виде точки с запятой. Однако практические эксперименты с Windows 10 1903 показали, что при считывании значения » LocalSourcePath » из реестра система заглядывает только в первый по счёту каталог (указанный до точки с запятой), а остальные игнорирует. Такое поведение вполне вписывается в рамки обработки значения ключа -Source командлета Add-WindowsCapability, в описании которого есть соответствующее примечание
If you specify multiple Source arguments, the files are gathered from the first location where they are found and the rest of the locations are ignored.
Вариантом выхода из этой ситуации может быть отказ от использования классического параметра из административных шаблонов GPO и настройка пути в реестре средствами Group Policy Preferences (GPP) с использованием таргетинга по версии и разрядности клиентской операционной системы.
По крайней мере именно на таком варианте мы и остановились, как на наиболее гибком и работоспособном.
Финиш
В итоге квест под названием «Выполнить Offline-установку RSAT в Windows 10 и не слететь с катушек» пройден, и теперь все административные пользователи, работающие на новой Windows 10 1903, могут устанавливать компоненты RSAT, как через графический интерфейс Windows, так и через PowerShell фактически в Offline-режиме и без дополнительных сложностей и манипуляций по аналогии с Online-клиентами.
Как в Powershell установить роли и компоненты используя Install-WindowsFeature и Add-WindowsCapability
Для установки ролей и компонентов в Powershell есть 3 основные команды Install-WindowsFeature, Enable-WindowsOptionalFeature и Add-WindowsCapability. Каждая из этих команд имеет свое применение и может отличаться в разных релизах Windows. В этой статье будет рассмотрен процесс установки ролей и компонентов используя обе команды на примерах.
Навигация по посту
Типы команд устанавливающие роли с Powershell
Командлеты, которые относятся только к Powershell разделяются на 3 типа:
Вывести все командлеты можно посмотреть так:
Если вы пользуетесь старыми версиями ОС, то какие-то модули могут быть не доступны. 2019 сервер одинаков с 2016:
Буква А обозначает алиас. Add-WindowsFeature, в 2016+ эта та же команда, что и Install-WondowsFeature.
Сама установка ролей не обозначает и ее настройку. После установки, обычно, появляется множество команд для настройки роли.
Получение списка ролей и их установка с Powershell Install-WindowsFeature
Что бы получить список ролей можно использовать Get-WindowsFeature. Эта команда, как и все ‘WindowsFeature’, может работать локально и удаленно. По умолчанию она возвращает роли и компоненты. Несколько примеров выполнения командлета:
Сам пакет WindowsFeature (модуль ServerManager) может быть установлен на Windows 10 с RSAT.
Базовая установка роли, но не совсем верная, на примере Active Directory Domain Services, будет следующей:
Перед использованием командлета обратите внимание на 2 параметра, которые вы можете указать:
Если вы забудете указать параметры указанные выше, то команду можно будет выполнить повторно с их включением.
Так же доступны следующие параметры:
Если бы я устанавливал Active Directory на обычный GUI сервер, удаленно, то это бы выглядело так:
Если удаленный сервер работает под другими учетными данными, то передать их можно использовав команду ‘Get-Credential’. В ‘ComputerName’ можно указывать как DNS имя, так и IP адрес.
Пример установки нескольких ролей подряд, удаленно и под другими учетными данными:
Удалить роль можно так:
Если добавить параметр ‘Remove’, то роль будет удалена еще и с папки ‘WinSxS’. Остальные параметры аналогичны.
Установка компонентов с Enable-WindowsOptionalFeature
Список компонентов, с которыми можно работать команда группы ‘WindowsOptionalFeature’ аналогичны следующем окну:
Учитывая, что это окно уже является наследием более старых систем (до Windows 10), вы можете не найти все компоненты. Например RSAT, который раньше можно было найти в этом окне, теперь доступен через интерфейс ‘Приложения и возможности’ Windows 10. Команды в этих случаях тоже отличаются.
Для получения всех компонентов нужно выполнить следующую команду:
Параметр ‘-Online’ говорит, что пакеты будут искаться на этом же компьютере. Можно поставить ‘-Path’, с указанием пути до образа Windows, что бы увидеть какие компоненты доступны там.
Несколько вариантов выполнения команды:
Учитывая, что команды относятся к модулю ‘DISM’, мы можем работать с образами используя параметры ‘PackagePath’ и ‘Path’. Такая возможность есть во всех командах ‘WindowsOptionalFeature’.
Для того, что бы включить компонент нужно выполнить следующую команду:
В следующей команде указано, что нам нужно собрать все логи (а не только ошибки) и сохранить их по указанному пути:
Отключение приложения выполняется следующим образом:
WindowsOptionalFeature так же используется для подготовки Nano сервера т.к. там нет WindowsFeature и пакеты с ролями сначала импортируются, а затем включаются.
Установка компонентов с Add-WindowsCapability
В предыдущем разделе было упомянуто о переезде многих компонентов в интерфейс Windows 10. Командлеты ‘WindowsCapability’ работают именно с ними. Если мы выполним следующую команду, которая очень похожа на предыдущую, то мы увидим совершенно разные пакеты:
Эти компоненты соответствуют следующему окну в Windows 10:
Некоторый варианта выполнения программы:
DenTNT.trmw.ru
Записная книжка
Windows 10: Ошибка сервера OpenSSH
Для удалённого доступа к компу на Windows 10 я установил AnyDesk. Но, иногда его было мало, т.к. нужно было что-то делать в фоне, не отвлекая пользователя. Для этой цели я поставил OpenSSH. В процессе тестирования выяснилось, что я не могу у нему подключиться с другого компа, т.к. получаю ошибку «Connection timed out»:
PuTTY мне выдавал нечто подобное
Поехали по порядку (часть инструкций с MSDN)…
Установка сервера SSH
Проверим, установлен ли компонент SSH, для этого в PowerShell выполним:
Будет примерно такой вывод:
Если включены SRP — Software Restriction Policies, при этом запуск dismhost.exe не разрешён явно и блокируется, то можно получить такую ошибку:
Если после проверки выяснилось, что компонент не установлен, поставим его (серверную часть и клиентскую, я выбрал сразу всё):
Запуск и настройка
Запускаем службу SSH (под админом):
Если планируем пользоваться SSH постоянно, то лучше выставить режим запуска службы в автоматический:
При установке SSH должно было быть создано правило в firewall, проверим:
Должен получиться такой вывод:
Если правило по каким-то причинам не было создано или было случайно удалено, можно создать новое:
Подключение к OpenSSH Server
Если подключаться через PowerShell, то нужно запускать PS с правами админа. Здесь я указываю номер порта, т.к. потом сменю его с 22 на какой-то другой:
Если система не найдёт компонент, получим ошибку:
Ничего страшного, просто перейдём в папку c OpenSSH:
Если в этот раз мы получим ошибку о которой писал в самом начале статьи ( Connection timed out ), то переходим к следующему разделу.
Исправление ошибок
Ошибка Connection timed out может означать, что служба OpenSSH SSH Server (sshd) не запущена. Если её запустить, то ошибки быть не должно.
Это было просто и мне не помогло, т.к. у меня она была запущена, но ошибка всё равно присутствовала.
Я сейчас не стал разбираться и закапываться ещё глубже, но у меня проблема была не в этом и даже не в firewall (брандмауэре), хотя я думал на него. Проблема была в роутере Wi-Fi! Для подключения этого ноутбука я выделил гостевую сеть:
MGTS роутер ▶ Настройки ▶ Wi-Fi ▶ Гостевая сеть Wi-Fi
Здесь я добавил новую гостевую сеть, чтобы в случае необходимости её было проще отключать так, чтобы не прерывать доступ в интернет остальным клиентам. Переключатель «Блокировать связь между WiFi» в решении проблемы не помог.
Если будет время и желание покопаться, может потом дополню заметку новым решением.