多くのユーザーは、PowerShellで現在のユーザーネームを取得する方法を存じていません。あなたもそのやり方をお探しでしょうか?MiniTool Partition Wizardのこの記事では、Windows 11/10/8/7のPowerShellでユーザー名を取得する詳しい手順を解説します。

ご存じの通り、PowerShellはWindowsの強力なコマンドラインシェル・スクリプト環境ツールです。PowerShellは、ディレクトリの変更ユーザーグループのメンバーシップの取得ファイルのコピーSSHのインストール.exeファイルの実行など、さまざまな作業に利用できます。

しかし、多くのユーザーはもちろんのこと、経験豊富なベテランでさえもPowerShellコマンドレットの使い方をよく存じていません。PowerShellでログイン中のユーザーを取得するにはどうすれば良いでしょうか?stackoverflow.comフォーラムには、このような実例が投稿されています。

Windows 10にログインしているユーザー名を知りたいです。Windows PowerShellで現在のユーザー名を取得するにはどうすれば良いですか?助けて下さい。https://stackoverflow.com/questions/2085744/how-do-i-get-the-current-username-in-windows-powershell

PowerShellで現在のユーザー名を取得するために使用できるコマンド

まず、Windows 10/11でログイン中のユーザーを取得するためのコマンドについて知っておきましょう。フォーラムや投稿を調査した結果、Windows 11/10/8/7のPowerShellで現在のユーザー名を取得する方法がたくさんあることが判明したので、次のようにまとめました。

  • Windows環境変数: 環境変数を操作するコマンドレットには、Env PowerShellドライブ、$env変数、.NET環境クラスの3種類があります。
  • Win32_ComputerSystemクラス: このクラスでは、Get-WMIObjectやGet-CimInstanceコマンドレットを使用してユーザー名を取得できます。
  • .NET WindowsIdentityクラス: GetCurrentNameコマンドレットを使用して、Windowsの現在のユーザー名を取得します。
  • Whoamiコマンド: System32フォルダ内でユーザー名を見つけるために使用できる実行可能ファイルです。
  • Queryコマンド: リモートデスクトッププロトコルを介して、リモートコンピューターでログオン中のすべてのユーザー名を一覧表示するために使用します。

これで、PowerShellでユーザー名を取得するコマンドレットについて一通りご理解いただけたかと思います。では、これらのコマンドレットを実行する方法を見ていきましょう。

Windows 11/10/8/7のPowerShellで現在のユーザー名を取得する方法

上記の情報に基づいて、Windows 11/10/8/7のPowerShellでユーザー名を取得するために実行できる方法を5つまとめました。好きなものを1つ選んで下さい。

提示:
一部のコマンドレットはPowerShell v5.1以降のバージョンを必要とするため、PowerShellのバージョンを最新に保つことをおすすめします。詳しくはこちらの記事「Windows 10/11でPowerShellのバージョンをv7.2.5に更新する方法」をご覧下さい。

#1.環境変数クラスで現在のユーザー名を取得する

Windows環境変数は、次の3つの方法でシステムからユーザー名とログインユーザーを検出します。

方法1: Env PowerShellドライブを使用する

  1. 検索ボックスに「PowerShell」と入力し、「Windows PowerShell」を右クリックして「管理者として実行」を選択します。次に、「はい」をクリックして確定します。
  2. 次のコマンドを入力してEnterを押すと、現在ログオン中のユーザー名が表示されます。

Get-ChildItem Env:USERNAME

または

(Get-ChildItem Env:USERNAME).Value(文字列としてユーザー名の値のみを返す)

env PowerShell を使用してユーザー名を取得する

方法2: $Env変数を使用する

$Env変数も、PowerShellでユーザー名を取得できる簡単な方法です。それには、PowerShellで「$env:username」コマンドを実行するだけです。

env 経由でユーザー名 PowerShell を取得する

方法3: .NET環境クラスを使用する

$env変数と同様に、.NET環境クラスを使用することでも現在のユーザー名の値を見つけることができます。最後にログインしたすべてのユーザーを取得するには、PowerShellで以下のコマンドを実行します。

[System.Environment]::UserName

環境クラスでGetEnvironmentVariableコマンドレットを使用することでも、現在のユーザー名を取得できます。

[System.Environment]::GetEnvironmentVariable(‘username’)

NET 環境を使用してユーザー名 PowerShell を取得する

#2.Win32_ComputerSystemクラスで現在のユーザー名を取得する

Win32_ComputerSystemクラスでは、Get-WMIObjectコマンドレットやGet-CimInstanceコマンドレットを使ってログオンしているユーザーを取得します。これらのコマンドレットは、Windows Management Instrumentationを通じて、ローカルコンピューターやリモートコンピューターのユーザー名に関する情報を取得するのに役立ちます。

ローカルコンピューターで現在のドメインとユーザー名を取得するには、PowerShellウィンドウを開き、以下のコマンドを実行します。

(Get-WMIObject -ClassName Win32_ComputerSystem).Username

または

(Get-CimInstance -ClassName Win32_ComputerSystem).Username

現在のユーザー名のみをドメインなしで取得したい場合は、split()パラメータを使用します。

((Get-WMIObject -ClassName Win32_ComputerSystem).Username).Split(“)[1]

Win32 ComputerSystem クラス経由でユーザー名 PowerShell を取得する

#3..NET WindowsIdentityクラスで現在のユーザー名を取得する

.NET WindowsIdentityクラスは、GetCurrentNameコマンドレットでユーザー名を取得します。それには、PowerShellで次のコマンドを実行するだけです。

[System.Security.Principal.WindowsIdentity]::GetCurrent()

WindowsIdentity 経由でユーザー名 PowerShell を取得する

ユーザー名の値だけを取得するには、Split(‘\’)パラメータを使用します。

([System.Security.Principal.WindowsIdentity]::GetCurrent().Name).Split(‘\’) [1]

#4.Whoamiコマンドで現在のユーザー名を取得する

単にwhoamiコマンドを実行するだけでも、現在のユーザー名とドメインを取得できます。ユーザー名のみを取得するには、 (whoami).Split(‘\’)[1]コマンドを実行します。

Whoami 経由でユーザー名 PowerShell を取得する

#5.Queryコマンドで現在のユーザー名を取得する

管理者やドメインユーザーは、リモートコンピューターでログオン中のユーザー名を取得できます。例えば、PC1という名前のコンピューターにログオンしているすべてのユーザーを取得するには、PowerShellでqwinsta /server:pc1コマンドを実行します。現在のログオンセッションに存在するすべてのユーザーを表示するには、quser /server:pc1コマンドを実行します。

関連情報: Windowsのファイルシステムが破損したり、ディスクの空き容量が足りなくなったりしても、心配はいりません。MiniTool Partition Wizardは、ファイルシステムエラーのチェック、パーティションの拡張・サイズ変更、ディスク容量の分析、大容量ハードディスクへのアップグレードなどにより、このような問題を簡単に解決できます。

  • reddit