Использование PowerShell для Интернета вещей Windows

Примечание

Добавьте открытый код версию PowerShell с помощью import-PSCoreRelease (importps). Вам по-прежнему потребуется IOT_POWERSHELL функция для включения двоичных файлов WinRM

Удаленная настройка и управление любым Windows 10 IoT Базовая устройством с помощью Windows PowerShell. PowerShell — это оболочка командной строки на основе задач и язык сценариев, специально предназначенный для системного администрирования.

Выполните следующие действия, чтобы правильно настроить устройство под управлением Windows 10 IoT Базовая для работы с Visual Studio 2017.

Инициализация сеанса PowerShell

  1. Чтобы запустить сеанс PowerShell на устройстве Windows 10 IoT Базовая, сначала необходимо создать отношение доверия между главным компьютером и устройством. После запуска устройства Windows IoT Базовая IP-адрес будет отображаться на экране, подключенном к устройству.

    DefaultApp в Windows 10 IoT Базовая

    Те же сведения можно найти на панель мониторинга Windows 10 IoT Базовая.

  2. Откройте консоль PowerShell администратора на локальном компьютере. Введите powershell в поле Поиск в Интернете и Windows рядом с меню "Пуск" Windows. Windows найдет PowerShell на вашем компьютере.

    Поиск PowerShell

  3. Чтобы запустить PowerShell от имени администратора, щелкните правой кнопкой мыши Windows PowerShell и выберите Запуск от имени администратора.

    Запуск PowerShell от имени администратора

    Теперь вы увидите консоль PowerShell.

    Консоль PS

  4. Для включения удаленных подключений может потребоваться запустить службу WinRM на рабочем столе. Для этого в консоли PowerShell введите следующую команду:

        net start WinRM
    
  5. В консоли PowerShell введите следующую команду, заменив <machine-name or IP address> соответствующим значением (проще всего использовать имя компьютера, но если устройство не имеет уникального имени в сети, попробуйте IP-адрес ):

          Set-Item WSMan:\localhost\Client\TrustedHosts -Value <machine-name or IP Address>
    
  6. Введите Y , чтобы подтвердить изменение.

        Set-Item WSMan:\localhost\Client\TrustedHosts -Value "<machine1-name or IP Address>,<machine2-name or IP Address>"
    

    Примечание

    Если вы хотите подключить несколько устройств, можно использовать запятые и кавычки для разделения каждого устройства.

  7. Теперь вы можете запустить сеанс с устройством Windows IoT Базовая. В консоли PowerShell администратора введите:

         Enter-PSSession -ComputerName <machine-name or IP Address> -Credential <machine-name or IP Address or localhost>\Administrator
    
  8. В диалоговом окне учетных данных введите следующий пароль по умолчанию: p@ssw0rd

Примечание

Процесс подключения не является немедленным и может занять до 30 секунд.

Если вы успешно подключились к устройству, перед запросом отобразится IP-адрес устройства.

консоль PowerShell;

  1. Обновите пароль учетной записи. Настоятельно рекомендуется обновить пароль по умолчанию для учетной записи администратора. Для этого выполните следующие команды в подключении PowerShell:

    а. Замените [new password] надежным паролем:

    net user Administrator [new password]
    

    b. Затем создайте новый сеанс PowerShell с помощью Exit-PSSession и Enter-PSSession с новыми учетными данными.

    Exit-PSSession
    
    Enter-PSSession -ComputerName <machine-name or IP Address> -Credential <machine-name or IP Address or localhost>\Administrator
    

Часто используемые команды PowerShell

Устранение неполадок с помощью Удаленный отладчик Visual Studio

Чтобы иметь возможность развертывать приложения из Visual Studio 2017, необходимо убедиться, что Удаленный отладчик Visual Studio работает на устройстве Windows IoT Базовая. Удаленный отладчик должен открываться автоматически при запуске компьютера. Чтобы удвоить проверка, используйте tlist команду , чтобы получить список всех запущенных процессов из PowerShell. На устройстве должно быть два экземпляра msvsmon.exe.

Это может быть время ожидания Удаленный отладчик Visual Studio после длительных периодов бездействия. Если Visual Studio не удается подключиться к устройству Windows IoT Базовая, попробуйте перезапустить устройство.

Настройка устройства Windows IoT Базовая

При необходимости можно переименовать устройство.

  1. Чтобы изменить имя компьютера, используйте служебную setcomputername программу:

    setcomputername <new-name>
    
  2. Перезапустите устройство, чтобы изменения вступили в силу. Команду можно использовать shutdown следующим образом:

    shutdown /r /t 0
    
  3. Так как имя компьютера было изменено, после перезагрузки потребуется повторно выполнить следующую команду, чтобы подключиться к устройству с новым именем:

        Set-Item WSMan:\localhost\Client\TrustedHosts -Value <new-name>

Устройство Windows IoT Базовая теперь должно быть правильно настроено и готово к использованию.

Часто используемые служебные программы

Список команд и служебных программ, которые можно использовать с PowerShell, см. на странице Программ командной строки.

Известные проблемы и их решения

ПРОБЛЕМА. Известная ошибка в политиках безопасности PowerShell приводит к возникновению следующих проблем в удаленном сеансе:

  • Get-Help возвращает непредвиденные совпадения.
  • Get-Command в указанном модуле возвращает пустой список команд.
  • Выполнение командлета из любого из этих модулей вызывает исключение CommandNotFoundException: Appx, NetAdapter, NetSecurity, NetTCPIP, PnpDevice.
  • Import-Module в любом из указанных выше модулей вызывает исключение PSSecurityException с UnauthorizedAccess. Автоматическая загрузка модуля также не работает.

Обходной путь. Измените политику выполнения в удаленном сеансе PowerShell на RemoteSigned. Дополнительные сведения о различных политиках выполнения см. в разделе Использование командлета Set-ExecutionPolicy.

ПРОБЛЕМА. Командлеты из некоторых модулей, таких как NetAdapter, иногда не видны. Например, Get-Module NetAdapter возвращает пустой список.

Обходной путь. Используйте параметр -Force с Import-Module. Например, Import-Module NetAdapter -Force.

ПРОБЛЕМА. Установка политики выполнения "AllSigned" нарушает удаленное взаимодействие PowerShell. Последующие попытки создать удаленный сеанс завершаются сбоем с загрузкой SecurityException Typesv3.ps1xml.

Обходной путь. Используйте winrs.exe для восстановления политики выполнения PowerShell:

  • Изменение кодовой страницы консоли Chcp 65001
  • Вход в удаленную оболочку cmd.exe Winrs.exe -r:<target> -u:<username> -p:<password> cmd.exe
  • В удаленном cmd.exe измените соответствующий раздел реестра. reg add HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell /v ExecutionPolicy /d RemoteSigned /f
  • Выход из сеанса удаленного cmd.exe exit

Другие известные проблемы

  • В скриптах PowerShell атрибуты класса или перечисления PowerShell не работают. Добавление атрибутов приводит к возникновению следующего исключения: Type должен быть объектом типа среды выполнения.

  • Удаленное взаимодействие CIM и PowerShell для исходящего трафика не поддерживается. Соответствующие функции в проверяющих командлетах не будут работать. К ним относятся Enter-PSSession, Get-Job, Receive-Job, Import-Module, Invoke-Command и Copy-Item.

  • Команды SecureString ConvertFrom-SecureString и ConvertTo-SecureString не работают, если сеанс не создан с использованием проверки подлинности CredSSP. В противном случае необходимо указать параметр -Key. Дополнительные сведения о настройке проверки подлинности CredSSP см. в статье Включение функции второго прыжка PowerShell с помощью CredSSP.