CUI(Character User Interface) とは、ざっくりと説明すると、コマンドラインやターミナルのように、
キーボードで文字を入力してコマンドを実行する操作方法です。
表示されるウィンドウをマウスなどで操作する操作方法は、 GUI(Graphical User Interface) といいます。
Windows標準では「リモート デスクトップ接続」というGUI操作のリモート操作方法が提供されていますが、 今回は、PowerShellのコマンドラインシェルでリモート操作を行う方法を説明します。 この方法を使うと、コンピュータにログオンしない状態でリモート操作が行えます。
ログオン時に動作するソフトウェアが動作する前にログなどを確認したいとき等に使っていました。
手順
1.リモートしたい端末のPowerShellを管理者権限で実行します。
Windows 11だと、スタートボタン右クリックして「ターミナル(管理者)」を実行してください。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows
PS C:\WINDOWS\system32>
2.接続コマンドを入力します。
ドメインのコンピュータからドメインのサーバーに接続してみます。
ドメイン:Domain111
ユーザー:Administrator
サーバー:Server111
Enter-PSSession -ComputerName Server111 -Credential domain111\Administrator
指定したユーザーで認証します。
-Credential オプションを付けないと、PowerShellを管理者権限で起動したユーザーで認証されます。
3.成功すると、左側に接続したサーバー名が表示されます。
PS C:\WINDOWS\system32> Enter-PSSession -ComputerName Server111 -Credential domain111\Administrator
[Server111]: PS C:\Users\Administrator\Documents>
※以下のエラーが出る場合は
PS C:\Users\Administrator> Enter-PSSession -ComputerName Client115 -Credential domain111\Administrator
Enter-PSSession : リモート サーバー Client115 への接続に失敗し、
次のエラー メッセージが返されました: WinRM は処理を完了できません。
接続先で、PowerShellを管理者権限で起動し、以下のコマンドを実行してください。
Enable-PSRemoting -Force
実行すると以下のように設定が行われます。
PS C:\Users\Administrator> Enable-PSRemoting -Force
WinRM は要求を受信するように更新されました。
WinRM サービスの種類を正しく変更できました。
WinRM サービスが開始されました。
WinRM はリモート管理用に更新されました。
WinRM ファイアウォールの例外を有効にしました。
4.これで接続した端末を CUI で操作できます。
プログラムを実行すると、リモート先で実行されます。
メモ帳でファイルを開こうとしても、メモ帳はリモート先で実行されます。
そして、非表示で実行されるので、ウィンドウ表示されるソフトウェアは起動しない方がいいです。
コマンドを実行してみます。
ログオンユーザーを確認するコマンド query user
[Server111]: PS C:\Users\Administrator\Documents> query user
query : * に対するユーザーは存在しません。
+ CategoryInfo : NotSpecified: (* に対するユーザーは存在しません。:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
誰もログオンしていないとこういう回答になります。
接続先にログオンして再度実行すると、コンソールに入っているユーザーがわかります。
[Server111]: PS C:\Users\Administrator\Documents> query user
アイドル
ユーザー名 セッション名 ID 状態 時間 ログオン時刻
administrator console 2 Active none 2025/04/01 18:00
type もしくは Get-Content コマンドレットでログファイルを確認したり、 コマンドでできることがリモートで行えます。