2017-12-07 20 views
0

Jenkinsを使用して、アプリケーションのインストールとリモートマシンでのテストケースの実行というセットアップの自動化テストが行​​われます。このプロセスはバッチファイルを使用して実行されます。それはWindowsアプリケーションであるので、セッションをアクティブにしておくシステムのログアウト(リモートマシン)が必要です。そのために私は以下のスクリプトを使用しました。Jenkins:32ビットモードでWindowsバッチコマンドを実行する

for /F "skip=1 tokens=3" %%s in ('query user testuser') do 
(C:\Windows\system32\tscon.exe %%s /dest:console) 

リモートマシンでは、このスクリプトを手動で実行すると完全に動作します。同じスクリプト(バッチファイル)はジェンキンスから実行されている場合しかし、私は次のエラーを取得しています:あなたは32ビットプロセスからqueryを実行しているので、

'query' is not recognized as an internal or external command, operable program or batch file.

+0

があなたのジェンキンス32ビットであるquery user testuser%windir%\sysnative\query.exe user testuserに変更する必要がありますか? –

+0

私はジェンキンスを初めて利用しています。 Jenkinsのバージョンを見つけるための手順は何ですか? – Sampath

答えて

0

にです。 64ビットWindows 32ビットプロセスでは64ビット版のWindows queryFile System Redirector

In most cases, whenever a 32-bit application attempts to access %windir%\System32 , the access is redirected to %windir%\SysWOW64 . Access to %windir%\lastgood\system32 is redirected to %windir%\lastgood\SysWOW64 . Access to %windir%\regedit.exe is redirected to %windir%\SysWOW64\regedit.exe

下に置かれますSystem32に

C:\>where query 
C:\Windows\System32\query.exe 

でだから、一般的には32ビットプロセスで見ることができませんさ。あなたは、32ビットのCMDでこれを確認することができます。

C:\Windows\SysWOW64\cmd.exe /c query user testuser 
'query' is not recognized as an internal or external command, 
operable program or batch file. 

あなたが

+0

これは私が探していたものです。出来た。 – Sampath

+0

このソリューションは、リモートデスクトップマシンが開かれていて、マシンをロックしており、テストスクリプトが正常に実行された場合に機能します。しかし、リモートデスクトップマシンが開かれていないときに同じ問題が発生すると、自動化スクリプトが再び失敗します。 – Sampath

+0

システムがどのように設定されているかわかりませんが、query.exeがsystem32またはsysnativeにあるかどうかを確認してパスを変数に保存し、その変数を使用して実行するのは簡単です –

関連する問題