リモートサーバーで動作するスクリプトを実行するユーザーボックスでスクリプトを実行します。ただし、ユーザーはサーバーへのアクセス権を持たないため、アクセス許可を持つ別のユーザーとしてスクリプトを実行します。'query user'を使用してアクティブユーザーのユーザー名を取得する方法
私が問題を抱えているのは、ログオンしたユーザー(ボックスユーザー)のユーザー名とドメインをサーバーに渡す必要があることです。必要なデータを取得するためのさまざまなコマンドがありますが、PowerShell ISEを別のユーザーとして実行すると、それらのユーザーはすべて、ログオンしていないユーザーのデータを返します。
の私が話しているコマンドの一部:
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$env:USERNAME
$env:USERDOMAIN
$(whoami)
私はそれがしたいように動作するように思える唯一のものである:
query user
このリターン形式:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME >user1 sessionName 4 Active . 6/22/2017 2:56 PM
私の二つの質問は以下のとおりです。
- あまりにもこのようにドメインを取得する方法はありますか?このコマンドを実行すると、私はそれを見ない。
- クエリユーザーからユーザー名を取得する方法はありますか?どのような特異性が「アクティブな」ユーザー名ですか?
'$ env:USERNAME'と' $ env:USERDOMAIN'を使用する際の問題は何ですか? – gms0ulman
私の推測では、彼は別のセッションでユーザーのユーザー/ドメインを特定しようとしています。 – thepip3r
@ thepip3r Hmmm ...質問から私は2人のユーザーがいることを理解しています。しかし、私には、ローカル(ボックス)ユーザーの情報を照会するリモート(サーバー)セッションを取得するのは少し後退しているようです。組み込みの環境変数を使用して、リモートで実行しているコードにスクリプトや関数のパラメータとして渡すのがより理にかなっています(免責事項:私はリモーティングで多くのことをしていないので、何かが欠けている可能性があります) – gms0ulman