セッションごとのユーザーごとのメモリ使用量を調べるために、ターミナル サーバーに対してクエリを実行する必要があります。ユーザーごとのメモリ使用量をテキスト ファイルに出力する、1 時間ごとに実行できる単純なバッチ ファイルを作成したいと考えています。メモリ使用量を表示する QUSER に似たコマンドはありますか? 私はこれを行う方法を探していましたが、これまでのところ何も思いつきませんでした。次のような情報を返すものを探しています。
ユーザー名 00.00mb
前もって感謝します
いくつかの基本的な統計情報は、WMIのWin32_Process
クラス(セッションIDを含む)から入手できます。
これを拡張するには、ここでPowerShellを使用します。
Win32_Process
WorkingSetSizeやSessionIdなどのプロセスの詳細を取得するために使用します。
各セッションの1つのプロセス(どちらでも構いません)でユーザーアカウントを取得するには、WMIの関連付けをたどる必要があります(RDBMSのリレーションに少し似ていますが、WQL(WMIのクエリに使用されるSQLのような言語)はそうではありません参加しないでください)。
だから次のようなもの:
$processes = Get-WmiObject -class Win32_Proces
# For example pick the first process in session 1
$sessionProcess = $processes | Where-Object { $_.SessionId -ne 0 } | Select-Object -first 1
# Get the session for the process, and then the user account for that session:
$logon = get-wmiobject -Query "associators of{$($sessionProcess.__RELPATH)} where resultclass=Win32_LogonSession"
$user = get-wmiobject -Query "associators of{$($logon.__RELPATH)} where resultclass=Win32_UserAccount"
インスタンスを$user
保持しWin32_UserAccount
ます。
NB。Windowsのすべての組み込み部分が含まれないように、セッション0を除外することをお勧めします。