Windows IoT CoreのPower ShellでRaspberry Pi2に接続

前回はRaspberry Pi2のセットアップに関する手順などをメモした。今回は開発端末からPower Shellを使って接続してユーザ追加などの基本操作を行ってみる。

参考サイト

リモート処理の準備とリモートホストの登録

まずIoTツールのWindowsIoTCoreWatcher.exeを起動する。これを起動すると、ネットワーク内に接続されたWindows IoT Coreが稼働している端末のリストが表示されるので、対象のRaspberry Pi2のIPアドレスを覚えておく。

01

Power Shellを管理者権限で起動する
02

PowerShellでリモート処理を行うための準備を行う。まず開発端末でWindows Remote Managementサービスを起動する。

> net start WinRM
Windows Remote Management (WS-Management) サービスを開始します.
Windows Remote Management (WS-Management) サービスは正常に開始されました。

このまま接続しようとすると、セキュリティがらみのエラーが発生する。RaspberryPi2を信頼されたホストとして登録する必要がある。

> Set-Item WSMan:\localhost\Client\TrustedHosts -Value minwinpc
WinRM セキュリティの構成。
このコマンドは WinRM クライアントの TrustedHosts の一覧を変更します。TrustedHosts
の一覧内にあるコンピューターは認証されない可能性があります。クライアントはこれらの
コンピューターに資格情報を送信する可能性があります。この一覧を変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): (そのままEnter)

ちなみにWSManはWebサービス・マネジメントのことで、URLパスのように設定対象を記述して、目的の設定を行うプロトコルである。WinRMサービスが稼働していると、ネットワーク上で WS-Management要求待ちして処理する。WMIと似た役割だが、WMIがWindows固有機能であるのに対し、WSManはISOで規格化された共通インタフェースである。

Raspberry Pi2にログインする

PowerShellのEnter-PsSessionコマンドを使って、AdministratorでRaspberry Pi2にログインする。 認証パネルが表示されたら、パスワードにp@ssw0rdを入力する(初期パスワード)。実際にログインするまでに15secほどかかるのでしばらく待つと、コンソールがminwinpcに変わってログインが完了する。

03

> enter-pssession -cn minwinpc -credential minwinpc\administrator
[minwinpc]: PS C:\Users\Administrator\Documents>

パスワードの変更

初期パスワードから変更するためには、PowerShellでログインした状態で以下を実行する

> net user [user name] [new passowrd]

デバイス名の変更

初期ホスト名はminwinpcだが、以下のコマンドで別名に変更することも可能。特に複数台ある場合は、変更しておいたほうがよい。(変更後は再起動が必要)

> setcomputername [new name]

例) デバイス名をraspi2に変更し、shutdownコマンドで再起動する。

> setcomputername raspi2
Set Computer Name
> shutdown /r /t 0
System will shutdown in 0 seconds...

ちなみに完全にシャットダウンする場合は、

> shutdown /s /t 0

IoT Core Watcherで、新しいホスト名で再起動したことを確認する。
04

ログインするためにもう一度、信頼するホストとして再登録してログインできることを確認する

> Set-Item WSMan:\localhost\Client\TrustedHosts -Value raspi2
> enter-pssession -cn raspi2 -credential raspi2\administrator

新しいユーザを追加する

> net user [user name] [password] /add

特定のグループにユーザを追加する

> net localgroup [group name] [user name] /add

例)ユーザdevを管理者グループに追加し、追加したユーザでログイン

> net user dev [passowrd] /add
The command completed successfully.
> net localgroup administrators dev /add
The command completed successfully.
> exit
> enter-pssession -cn raspi2 -credential raspi2\dev
>

ブートオプション(setbootoption)で起動モード変更する

  • headed

ディスプレイにUWPのUIをスタックさせてGUIアプリケーションを機能させるモードで、デフォルトの設定である。初回起動時にHDMIケーブルでディスプレイに接続しないと起動しないのはこのためである。

  • headless

UIを必要とせずに起動させる場合はこちらを選択する。サーバー的な感じで使用する場合に適している。このモードだとHDMIケーブルでディスプレイに接続する必要がなくなる。

> setbootoption [headed / headless] > shutdown /r /t 0

ブートマネージャ(bcdedit)

ブート項目の追加・削除やブート順の設定など。現状使いどころがわからないので、省略

プロセス一覧(タスクマネージャのCUI版)

get-processコマンドで一覧表示される

> get-process
 
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    232       8     2528      11192    42     0.72   1948 backgroundTaskHost
    151       5      420       1492    12     0.23    360 csrss
    375       7    19280      27392    65     1.02    568 dwm
     52     706      424       1344     9     0.08   1316 ebootpinger
                       <省略>

プロセス終了

> kill [process id]

ほかにもいろいろあるし、基本的にはPowerShellやMS-DOSで使っていた基本的なコマンドが使えそう。個人的には、lsが使えるのがうれしい。

次回は、標準機能として各種webサービスがインストールされているようなので確認してみる。

電子工作版Hello WorldであるLチカは、そのまた次回を予定。