1

すでに別のスレッドで問題について言及しましたが、エラーの根本は別のものだと思いました。今、私は本当のエラーを知っていますが、それを解決できず、理解していません。

Azure インスタンスに Visual Studio Test Controller をインストールしたいと考えています。私はスタートアップ タスクを介してそれを実行しようとしています。このタスクはバッチ ファイルを実行し、テスト コントローラーのインストール ファイルをダウンロードしてインスタンスにインストールします。

問題は、スタートアップ タスクを介してインストールを実行すると機能しないことです。RDP 経由でマシンにログインし、まったく同じバッチ ファイルをダブルクリックすると、すべて正常に動作します。

追加情報を次に示します。

これは私が実行する私のバッチファイルです:

powershell $command = "set-executionpolicy Unrestricted"
powershell $command = ".\setupController.ps1" -NonInteractive >; out.txt
echo Setup TestController >> %~dp0out.txt
cd E:\approot
timeout /T 60
"E:\approot\testcontroller.exe" /full /q /Log %~dp0install.log
echo Setup has been executed! >> %~dp0out.txt
net user vstestagent MyPassword! /add
net localgroup Administrators vstestagent /add
REM Create a task that will run with full network privileges.
net start Schedule
schtasks /CREATE /TN "Configure Test Controller Service" /SC ONCE /SD 01/01/2020 /ST 00:00:00 /RL HIGHEST /RU vstestagent /RP MyPassword! /TR e:\approot\configcontroller.cmd /F
schtasks /RUN /TN "Configure Test Controller Service"

これは、ロールのスタートアップ タスクです。

<Task executionContext="elevated" taskType="background" commandLine="setupController.cmd"></Task>

テスト コントローラーのバッチ ファイルとインストール ファイルは、E:\approot フォルダーにあります。

testcontroller のインストール ログファイルには次のように書かれています。

0A88:0ABC][2013-04-12T10:36:04]: Creating a system restore point.    
[0A88:0ABC][2013-04-12T10:36:04]: System restore disabled, system    restore point not created. 
[0A88:0ABC][2013-04-12T10:36:04]: Caching    bundle from:    'C:\Resources\temp\48c0ec5daf5846cab7f53f6b5c80dc6f.TestController\RoleTemp\{44f19fb6-98e0-4462-886c-c5e56d82dfd3}\.be\vstf_testcontroller.exe'    to: 'D:\ProgramData\Package    Cache\{44f19fb6-98e0-4462-886c-c5e56d82dfd3}\vstf_testcontroller.exe'    
[0A88:0ABC][2013-04-12T10:36:04]: Registering bundle dependency    provider: {44f19fb6-98e0-4462-886c-c5e56d82dfd3}, version:
       11.0.51106.1 
[0A40:09EC][2013-04-12T10:36:04]: MUX:  Cache Begin 
[0A40:064C][2013-04-12T10:36:05]: Error 0x80070070: Failed to set end    of file. 
[0A40:064C][2013-04-12T10:36:05]: Error 0x80070070: Failed    to extract all files from container.    
[0A40:09EC][2013-04-12T10:36:05]: Error 0x80070070: Faild to begin    and wait for operation. 
[0A40:09EC][2013-04-12T10:36:05]: Error    0x80070070: Failed to extract payload: a25 from container:    WixAttachedContainer 
[0A40:09EC][2013-04-12T10:36:05]: Failed to    extract payloads from container: WixAttachedContainer to working    path: E:\approot\testcontroller.exe, error: 0x80070070.    
[0A40:0B98][2013-04-12T10:36:05]: Error 0x80070070: Failed while    caching, aborting execution. 
[0A88:0ABC][2013-04-12T10:36:05]:    Removed bundle dependency provider:    {44f19fb6-98e0-4462-886c-c5e56d82dfd3}
... Some Rollback and cleanup
[0A40:0B98][2013-04-12T10:36:06]: Variable: WixBundleTag = vstf_testcontroller,1031
[0A40:0B98][2013-04-12T10:36:06]: Variable: WixBundleVersion = 11.0.51106.1
[0A40:0B98][2013-04-12T10:36:06]: Exit code: 0x643, restarting: No

問題がどこにあるのか本当にわかりません。特に、RDP 経由でバッチ ファイルを実行すると、すべて正常に動作するためです。唯一の違いは、バッチを実行するユーザーのようです: スタートアップ タスクは管理者権限で実行され、私の RDP アカウントは別のものだと思いますが、管理者権限も持っています....

よろしくセバスチャン

4

1 に答える 1

1

なぜそうなのかはまだわかりませんが、スケジュールされたタスクを介してインストールを行うと、インストールは機能します。

おそらく唯一の違いは、ソフトウェアをインストールするアカウントだけだと思ったので、最初に runas コマンドを使用してテスト コントローラーをインストールしようとしましたが、コマンドと共にパスワードを渡すことができませんでした。そこで、テスト コントローラーをインストールするためのスケジュールされたタスクを作成し、コマンドと共にユーザー資格情報を渡すことができました。今、私の setupController.cmd は次のようになります。

powershell $command = "set-executionpolicy Unrestricted"
powershell $command = ".\setupController.ps1" -NonInteractive >; out.txt
echo Setup TestController >> %~dp0out.txt
cd E:\approot
echo Setup has been executed! >> %~dp0out.txt
net user vstestagent MyPassword! /add
net localgroup Administrators vstestagent /add
REM Create a task that will run with full network privileges.
net start Schedule
schtasks /CREATE /TN "Install Test Controller Service" /SC ONCE /SD 01/01/2020 /ST 00:00:00 /RL HIGHEST /RU vstestagent /RP MyPassword! /TR "E:\approot\testcontroller.exe /full /q /Log %~dp0install.log" /F
schtasks /RUN /TN "Install Test Controller Service"
timeout /T 120
schtasks /CREATE /TN "Configure Test Controller Service" /SC ONCE /SD 01/01/2020 /ST 00:00:00 /RL HIGHEST /RU vstestagent /RP MyPassword! /TR e:\approot\configcontroller.cmd /F
schtasks /RUN /TN "Configure Test Controller Service"

それが他の誰かにも役立つことを願っています。

于 2013-04-13T08:45:34.757 に答える