1

Windows Server ターミナル/コンソールを使用して一連のバッチ スクリプトを起動しているコンピューターの背後に人がいるかどうか、またはそれらのスクリプトを起動している自動化されたバックグラウンド タスクがあるかどうかを検出する方法を知りたいです。簡単なバッチ スクリプトを使用してこれを検出する必要があります。

これら 2 種類の「ユーザー」の違いについてインターネットで調べてみましたが、役立つ情報が見つかりません。キーストローク キャプチャ、リダイレクトされた標準入力、ターミナル/コンソール セッション ID など、あらゆる解決策を歓迎します。これらすべてを試しましたが、今まで成功しませんでした。

このソリューションは、Windows Server 2003、2008、および 2008 R2 で動作する必要があります。しかし、まずは WS 2003 だけで動作することを嬉しく思います。

回答ありがとうございます。

4

2 に答える 2

1

「パソコンの後ろに人がいるかどうかをどうやって検出するか」とはどういう意味かよくわからないと思います。ただし、この投稿では、 STDINがディスクファイルにリダイレクトされたかどうかを検出する方法があります。これは、このバッチファイルへの入力を入力している人がいないことを意味する場合がありますが、これは自動化された方法で開始されます。例えば:

TypeOfHandle 0
if %errorlevel% geq 128 (
    rem STDIN redirected to disk file
    echo This program must be executed in interactive (not predefined-input) way^!
    goto :EOF
)
set /P input=Enter input please: 
etc...

お役に立てば幸いです...

于 2012-05-06T19:05:24.687 に答える
0
If /i "%cmdcmdline:~0,6%"=="cmd /c" pause

これは通常、ダブルクリックされたバッチ ファイルに当てはまります。

@for /f "tokens=10* delims=," %A in ('tasklist /fi "SESSION ne 1" /fi "imagename eq cmd.exe" /v /nh /fo CSV') do echo %A

他のセッションで実行されているコマンド タイトルを一覧表示します。

于 2014-09-25T07:49:21.327 に答える