特定のユーザーを検索するターミナルサーバーを反復処理するために、バッチファイル(SUで質問した)を作成しています。それで、私は自分がやろうとしていることの基本的なスタートを切りました。
- ユーザー名を入力
- ターミナルサーバーを繰り返す
- ユーザーが見つかったサーバーを表示します(接続が失われた方法に応じて、複数のサーバーで何度も見つけることができます)
- オプションのメニューを表示する
私が持っているターミナルサーバーの反復:
for /f "tokens=1" %%Q in ('query termserver') do (set __TermServers.%%Q)
今、私はエラーが発生しています...
Environment variable __TermServers.SERVER1 not defined
...ターミナルサーバーごとに。現時点では、これが私のバッチファイルにある唯一のものです。このエラーが発生している理由について何か考えはありますか?明らかに、変数は定義されていませんが、SETコマンドがまさにそれを行うことを理解しました。
また、イテレーション(各ターミナルサーバー)で作業を続けるには、次のようなことを行う必要があると考えています。
:Search
for /f "tokens=1" %%Q in ('query termserver') do (call Process)
goto Break
:Process
for /f "tokens=1" %%U in ('query user %%username%% /server:%%Q') do (set __UserConnection = %%C)
goto Search
ただし、これについて私を悩ませていることが2つあります。
- プロセスを呼び出すときに%%Q値はまだ生きていますか?
- 検索に移動すると、forループが最初からやり直されますか?
私は自分が自由に使えるツールを使ってこれを行っているので、PowerShellやその他の方法について聞きたいのですが、それは無駄です。私はメモ帳を持っていて、それだけです。
注:プログラミングの詳細について詳しく説明しているように見えることを除いて、SuperUserでこの一連の質問を続けます。