- PVSM.RU - https://www.pvsm.ru -
Шлюзы Intel для интернета вещей могут работать под управлением различных операционных систем. Одна из них – Windows 10 IoT. Сегодня мы поговорим о модуле для PowerShell IntelIoTGatewaySetup, который создан специально для поддержки IoT-шлюзов в среде Microsoft Windows.
Официально этот модуль называется «Intel IoT Gateway Module for Microsoft Windows PowerShell». Он помогает настроить операционную систему шлюза на заданный уровень безопасности (Security SKU [1]).
Модуль входит в состав пакета Windows Configuration Software for Intel IoT Gateway. Пакет можно найти по вышеприведённому названию и скачать в Центре загрузки Intel [2]. В настоящее время поддерживаются операционные системы Windows 10 IoT Enterprise и Windows 10 IoT Core.
IntelIoTGatewaySetup позволяет настраивать следующие функции безопасности Windows, указанные в описании [3] уровней безопасности. Предусмотрено три уровня безопасности. В частности, это, в порядке возрастания обеспечиваемого уровня защиты, Basic SKU, Medium SKU, и High SKU. Каждый следующий уровень расширяет возможности предыдущего. Итак, вот список настраиваемых функций.
Хотя модуль IntelIoTGatewaySetup и настраивает множество параметров в соответствии с заданным уровнем безопасности, он не касается следующих возможностей:
В папке IntelIoTGatewaySetup находятся следующие основные компоненты:
Если у вас имеется шлюз, оснащённый дисплеем и клавиатурой, команды PowerShell, необходимые для установки модуля, можно исполнять непосредственно на шлюзе. После установки команды PowerShell, которые предоставляет модуль, так же можно исполнять прямо на шлюзе. Мы называем это локальной установкой и локальным исполнением команд.
Шлюз может быть расположен вне пределов физической досягаемости, кроме того, у него могут отсутствовать монитор и устройства ввода. В таком случае нужно воспользоваться другим компьютером, назовём его компьютером разработчика, который позволит организовать удалённое управление шлюзом и его настройку. Ниже мы будем рассматривать именно такой сценарий. Мы называем его удалённой установкой и удалённым исполнением команд.
Для того, чтобы установить модуль PowerShell на шлюз с компьютера разработчика, эти две системы должны быть в одной и той же подсети. Кроме того, этот процесс включает в себя временное сопоставление сетевого диска на компьютере и шлюза.
Итак, для удалённой установки модуля нужно выполнить следующие шаги.
Для начала – вот список операций, которые нужно произвести на шлюзе для того, чтобы обеспечить удалённый доступ к PowerShell.
#Получим индекс NIC активного NIC
Get-NetAdapter
#$index – это полученный индекс.
#Переключим целевое активное соединение в приватный режим.
#В качестве разделителя в строке команды используется комбинация пробел + обратная галочка.
Set-NetConnectionProfile -InterfaceIndex $index `
-NetworkCategory Private
#Включим удалённый доступ
Enable-PSRemoting -Force
Теперь, когда шлюз готов к работе, займёмся компьютером, выполнив следующие шаги с использованием окружения PowerShell.
1. Убедитесь в том, что две следующих учётных записи, созданные на соответствующих устройствах, имеют административные полномочия. А именно:
2. Запустите интерпретатор командной строки PowerShell от имени администратора.
3. Для того, чтобы запустить скрипт ModuleInstallation.ps1 нужно, чтобы в PowerShell использовалась политика выполнения скриптов AllSigned
или RemoteSigned
. Взгляните на следующие командлеты: Get-ExecutionPolicy
и Set-ExecutionPolicy
. Они позволяют, соответственно, узнавать и задавать политику выполнения. Например, с помощью такой команды можно задать использование политики RemoteSigned
.
Set-ExecutionPolicy RemoteSigned
4. Воспользуйтесь точечной нотацией при вызове скрипта ModuleInstallation.ps1. Для того, чтобы это сделать, введите символ точки «.» и пробел перед путём к запускаемому скрипту. Этот подход позволяет запустить скрипт в текущей области действия [7].
. .ModuleInstallation.ps1
5. Затем взгляните на справку по модулю, о котором мы здесь говорим, ознакомьтесь с примерами его использования. Для этого воспользуйтесь такой командой Get-Help Install-IntelIoTGatewaySetup –Full
6. Выполните команду Install-IntelIoTGatewaySetup
для установки модуля с компьютера разработчика на шлюз. Правила использования этой команды можно найти в справочных материалах из предыдущего шага. Например, можно воспользоваться следующей последовательностью действий:
#$path это путь к папке, в которой находится загруженный модуль,
# например: ‘C:IntelIoTGatewaySetup’
#$remoteip это IP-адрес удалённого шлюза,
#например: ‘192.168.2.5’
#$remoteaccount это учётная запись на шлюзе,
#например, ‘Tester’ или ‘DomainTester’
#В качестве разделителя в строке команды используется комбинация пробел + обратная галочка.
Install-IntelIoTGatewaySetup –ModuleLocalPath $path `
-RemoteGateway $remoteip `
-RemoteAccount $remoteaccount –Verbose
Обратите внимание на то, что при локальной установке можно исполнить команду Install-IntelIoTGatewaySetup
непосредственно на шлюзе. Для деинсталляции модуля предусмотрена команда Uninstall-IntelToTGatewaySetup
. Подробности об этом можно найти в справочных материалах к модулю.
7. После установки воспользуйтесь PowerShell для выполнения команд нашего модуля на шлюзе. Об особенностях использования PowerShell на удалённых системах можно почитать здесь [8]. Например, выполните, по порядку, нижеприведённые команды.
if ((Get-Service WinRM).Status.ToString() -ne 'Running') {
# Запуск службы WinRM
Write-Verbose "Start WinRM service."
net start WinRM
}
#Эта команда удалит исходный TrustedHosts и приведет к использованию $remoteip.
#Кроме того, она может добавить новое значение к списку TrustedHosts.
#Справку можно вызвать командой Get-Help Set-Item.
#$remoteip это IP-адрес удалённого шлюза.
#В качестве разделителя в строке команды используется комбинация пробел + обратная галочка.
Set-Item WSMan:localhostClientTrustedHosts `
-Value $remoteip –Force
#$remoteip это IP-адрес удалённого шлюза.
#$remoteaccount это учётная запись с административными полномочиями
#на удалённом шлюзе.
#В качестве разделителя в строке команды используется комбинация пробел + обратная галочка.
$s = New-PSSession -ComputerName $remoteip `
-Credential "localhost$remoteaccount"
#Запустите удалённый скрипт для тестирования
Invoke-Command -Session $s -ScriptBlock {
#В этом блоке можете запустить желаемые команды PowerShell.
#Эти команды будут запущены на удалённом шлюзе.
#взглянем на сведения о нашем модуле
Get-Command -Module IntelIoTGatewaySetup
Get-Module IntelIoTGatewaySetup
}
Remove-PSSession -Session $s
Здесь мы, так же, как в предыдущем разделе, исходим из предположения, что для работы со шлюзом используется компьютер. Расскажем о том, как пользоваться модулем. Для начала, если вы этого ещё не сделали, включите использование удалённого PowerShell на шлюзе. Теперь, на компьютере разработчика, выполните следующие шаги.
Invoke-Command
.
Get-Help
с параметром –Full
для того, чтобы узнать подробности о командах модуля. Например, выполните следующую команду для того, чтобы получить список всех команд, доступных в модуле:
Get-Command -Module IntelIoTGatewaySetup
Enable-IoTWinSecurities
и Disable-IoTWinSecurities
. Они, в свою очередь, вызывают другие команды модулей. Полезно будет взглянуть на справку по ним (Get-Help Enable-IoTWinSecurities –Full
). Вот примеры работы с ними.
#$RecoveryPW это пароль восстановления для BitLocker,
# который вы хотите использовать.
#Например: $RecoveryPW =
# '099825-222222-607607-626285-132319-115621-083204-229482'
#В качестве разделителя в строке команды используется комбинация пробел + обратная галочка.
Enable-IoTWinSecurities -SKU "Basic" `
-BitLockerRecoveryPW $RecoveryPW `
-AddPowerShellRemotingFirewallRule -ErrorLog –Verbose
Взгляните на сообщения о результатах работы команд для того, чтобы выяснить, нет ли среди них предупреждений или сообщений об ошибках, которые касаются включаемых функций безопасности.
Например, предупреждение может содержать рекомендацию о том, что сначала надо перезагрузить систему для того, чтобы завершить установку необходимых средств Windows, а потом снова выполнить команду установки.
Для того, чтобы отключить / удалить настройки уровня безопасности, выполните следующую команду:
Disable-IoTWinSecurities -ErrorLog -Verbose
Отдельные команды, используемые в Enable-IoTWinSecurities
и Disable-IoTWinSecurities
, можно применять и самостоятельно, для настройки отдельных функций безопасности.
Если TPM «не готов к использованию», его, сначала, нужно установить [9]. В противном случае не получится включить BitLocker.
Если AppLocker настроен в соответствии с высоким уровнем безопасности («High» SKU), пользователи не смогут использовать PowerShell для добавления новых функций Windows. В соответствии с архитектурой системы, файл DISMHOST.EXE, который используется PowerShell, находится во временной папке, в директории, соответствующей учётной записи пользователя, а этот файл окажется заблокированным. В результате пользователи не смогут использовать наши команды для включения VBS, так как эта команда попытается установить необходимую ей функцию Windows. При выполнении команды Enable-IoTWinSecurities
мы сначала выполняем установку VBS. Если нужно установить функции Windows, выполните перезагрузку системы для того, чтобы завершить их установку, а затем снова запустите команду.
Для функционирования системы User Mode Code Integrity нам нужно установить ключ реестра для того, чтобы разрешить размещению нашего модуля войти в режим Full Language Mode для Code Integrity Policy. В частности, рассматриваемый здесь модуль, по умолчанию, устанавливается по адресу %Program Files%WindowsPowerShellModule
. Если это не так, соответствующий ключ реестра нужно настроить самостоятельно. Для этого нужно поместить путь, по которому установлен модуль (например, %Program Files%WindowsPowerShellModule
) в запись типа REG_MULTI_SZ
, которая называется «TestPath» и расположена в разделе реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCITRSData
.
Сегодня мы рассказали вам о новом средстве для настройки IoT-шлюзов Intel, которые работают под управлением Microsoft Windows. Рассмотренный здесь модуль для PowerShell, IntelIoTGatewaySetup, позволяет взаимодействовать со шлюзами как локально, так и удалённо, а собранные в нём команды помогают упростить и ускорить процедуры настройки шлюзов.
Автор: Intel
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/powershell/142472
Ссылки в тексте:
[1] Security SKU: https://software.intel.com/ru-ru/node/622255
[2] Центре загрузки Intel: https://downloadcenter.intel.com/
[3] описании: https://software.intel.com/ru-ru/node/622255#A84AC2D2-DC9B-4C2D-94F6-80AE843EFA4B
[4] Remote Attestation: https://software.intel.com/ru-ru/node/622254#AC6A8430-8475-46A9-807F-A0FF3A4AE873
[5] эту: https://technet.microsoft.com/en-us/magazine/ff700227.aspx
[6] эту: https://technet.microsoft.com/en-us/library/hh849694.aspx
[7] текущей области действия: https://technet.microsoft.com/ru-ru/library/hh847849.aspx
[8] здесь: http://blogs.technet.com/b/heyscriptingguy/archive/2013/11/26/remoting-week-remoting-sessions-in-powershell.aspx
[9] установить: https://technet.microsoft.com/en-us/library/cc755108.aspx
[10] Источник: https://habrahabr.ru/post/304046/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.