リモートからサインアウトする

スポンサーリンク

はじめに

PowerShellのコマンドレット「Invoke-Command」とWindowsの標準コマンド「quser」、「logoff」を使用してサインアウトします。

quserコマンドは、現在のPCにログオンしているすべてのユーザーを表示します。logoffコマンドはその名の通りログオフするコマンドです。

ドメイン環境であれば、Windowsの標準コマンドを使用した方が良いです。
quser /server:<サーバー名>
tsdiscon /server:<サーバー名> /V
logoff /server:<サーバー名> /V

環境

  • Windows Server 2019 Datacenter Evaluation
  • Windows Server 2016 Datacenter Evaluation
  • Windows Server 2012 R2 Datacenter
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2003 Standard Edition SP2
  • Windows 10 Enterprise Evaluation

各サーバとクライアントはドメインに参加しており、Windows10から各種コマンドを操作するものとします。

サインアウト

Windows10のPCからリモートでサインアウトを実行します。

ドメイン環境

Windows Server 2019/2016/2012/2008/2003でユーザーをサインアウトする

Windows Server 2019にサインインしているユーザーを確認します。「Invoke-Command」でリモートサーバ上で「quser」コマンドを実行し結果を取得しています。

Invoke-Command -ComputerName ホスト名(IPアドレス) -ScriptBlock {quser}
                                                      アイドル

 ユーザー名            セッション名       ID  状態    時間       ログオン時刻

 user1                 console             2  Active      none   2019/12/15 17:50

上記の結果からuser1アカウントでローカルにサインインしていることがわかります。user1をサインアウトします。ID番号の2を使用します。

Invoke-Command -ComputerName ホスト名(IPアドレス) -ScriptBlock {logoff 2}

ワークグループ環境

Windows Server 2019/2016/2012/2008/2003でユーザーをサインアウトする

Windows Server 2019にサインインしているユーザーを確認します。「Invoke-Command」でリモートサーバ上で「quser」コマンドを実行し結果を取得しています。

Invoke-Command -ComputerName ホスト名(IPアドレス) -ScriptBlock {quser} -Credential (New-Object System.Management.Automation.PSCredential("ユーザー名", (ConvertTo-SecureString –String "パスワード" –AsPlainText -Force)))
                                                     アイドル

 ユーザー名            セッション名       ID  状態    時間       ログオン時刻

 administrator         console             1  Active      none   2019/10/23 20:12
 user1                 rdp-tcp#3           2  Active          .  2019/10/23 20:24

上記の結果からAdministratorアカウントでローカルにサインインしていることがわかります。user1はリモートデスクトップで接続していることがわかります。user1をサインアウトします。ID番号の2を使用します。

Invoke-Command -ComputerName ホスト名(IPアドレス) -ScriptBlock {logoff 2} -Credential (New-Object System.Management.Automation.PSCredential("ユーザー名", (ConvertTo-SecureString –String "パスワード" –AsPlainText -Force)))