PowerShell を使用してリモート コンピューターからサービス ステータスを取得する
この記事では、リモート コンピューターへの接続、そのサービスへのアクセス、および PowerShell を使用したサービスの状態について説明します。
PowerShell を使用してリモート コンピューターからサービス ステータスを取得する
リモート コンピュータに接続してそのサービスにアクセスするには、さまざまな方法があります。 Windows PowerShell は、Get-WmiObject コマンドレットによってこれを容易にします。
リモート コンピューター上のリソースを簡単に管理するために使用できます。 Get-WmiObject コマンドを WMI クラス名で実行して、ローカル コンピューター サービスにアクセスできます。
このコマンドは、デフォルトでローカル マシンに対して実行されます。
Get-WmiObject Win32_Bus
出力:

Get-WmiObject コマンドレットは、リモート コンピューターを指定する -ComputerName パラメーターを提供します。 リモート マシンの NetBIOS 名または IP アドレスを指定できます。
一部のシナリオでは、完全修飾ドメイン名も提供する必要がある場合があります。 このパラメーターは、Windows PowerShell リモート処理メカニズムに依存しません。
したがって、WS-Management プロトコルに依存しません。 ユーザーは、自分のコンピューターが WM-Management リモート コマンドを実行するように構成されているかどうかについて心配する必要はありません。
Get-WmiObject -Class Win32_Bus -ComputerName 100.34.35.10
これにより、100.34.35.10 IP アドレスで識別されるリモート コンピューターに接続され、Win32_Bus リソース情報が取得されます。
一部のシナリオでは、リモート ホストに接続するためにユーザー名とパスワードを指定する必要があります。 Get-WmiObject コマンドレットには、リモート マシンへのログイン情報を指定する -Credential パラメーターがあります。
-Credential パラメーターに引数を渡す方法は 2つあります。
- ユーザー名を入力してください
PsCredentialオブジェクトを提供する
ユーザー名を入力してください
以下に示すように、Get-WmiObject コマンドレットの -Credential パラメーターは、ユーザー名またはユーザー アカウント名のみをテキストとして受け入れます。
Get-WmiObject Win32_Service -Credential user001 -ComputerName 100.43.10.11
このコマンドは、100.43.10.11 IP アドレスで識別されるホストへの接続を試みます。 接続は、指定されたユーザー名 (user001) をログ ユーザーとして使用します。
このコマンドは、ユーザーにパスワードの入力を求めるプロンプトを出します。 正しいパスワードが提供されると、接続が確立され、Win32_Service WMI インスタンスの情報が取得されます。
PSCredential オブジェクトを提供する
Get-WmiObject コマンドレットの -Credential パラメーターは、PSCredential オブジェクトを引数として受け入れます。 これは、資格情報を任意のコマンドに渡すための非常に安全な方法です。
以下に示すように、PSCredential オブジェクトを簡単に作成できます。
$credentialObj = Get-Credential
Get-Credential コマンドレットは PSCredential オブジェクトを返し、$credentialObj 変数に格納します。 上記のコマンドを Windows PowerShell で実行すると、このオブジェクトのユーザー名とパスワードの値を入力するダイアログが表示されます。

以下のようにユーザー名とパスワードを入力しましょう。

ユーザー名: user01
パスワード: user01
$credentialObj に格納されている値を確認してみましょう。
$credentialObj
出力:

Username は user01 として表示でき、Password は PowerShell SecureString です。 パスワードをプレーンテキスト形式で保存することはお勧めしません。
したがって、PSCredential オブジェクトは、より安全な SecureString としてパスワードを保存します。
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.
