1

セッションごとのユーザーごとのメモリ使用量を調べるために、ターミナル サーバーに対してクエリを実行する必要があります。ユーザーごとのメモリ使用量をテキスト ファイルに出力する、1 時間ごとに実行できる単純なバッチ ファイルを作成したいと考えています。メモリ使用量を表示する QUSER に似たコマンドはありますか? 私はこれを行う方法を探していましたが、これまでのところ何も思いつきませんでした。次のような情報を返すものを探しています。

ユーザー名 00.00mb

前もって感謝します

4

1 に答える 1

0

いくつかの基本的な統計情報は、WMIのWin32_Processクラス(セッションIDを含む)から入手できます。

これを拡張するには、ここでPowerShellを使用します。

  1. Win32_ProcessWorkingSetSizeやSessionIdなどのプロセスの詳細を取得するために使用します。

  2. 各セッションの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を除外することをお勧めします。

于 2013-01-30T16:11:36.877 に答える