継続的インテグレーション サーバーのテスト ノードをセットアップしています。アプリケーションの GUI テストを実行します。したがって、生成されたセットアップ パッケージを取得し、他の対話型テストを実行する前にアプリケーションをサイレント インストールします。ただし、問題が 1 つあります。UAC です。
現実的なテスト環境を維持するために UAC を無効にしたくないため、アプリケーションをセットアップするために一度バイパスする必要があります。これにはいくつかの方法がありますが、一般的な方法では Windows タスク スケジューラを使用しているようです。タスクを通常のユーザーとして追加し、追加の確認なしで管理者として実行するように構成できます。そのためにコマンドを使用できますschtasks /create
が、そのパラメーターは不明です。また、/?
ヘルプのパラメーター値は私のシステムではドイツ語に翻訳されているようですが、これはバグであり、値は実際には英語で指定されると思います (希望します)。
また、タスクを作成してすぐに一度だけ実行し、それを削除して他のアクティビティを続行したい (すべてバッチ ファイル内)。この場合、schtasks 呼び出しはどのようになりますか? 私はこのようなものから始めますが、不完全です:
schtasks /create /tn "Testaufgabe" /tr "setup.exe" /sc EINMAL /it /np /z /rl /f
PS: ああ、他のタスクを続行できるようになるまで、開始したアプリケーションが終了するまで待つ必要があります。したがって、プログラムの呼び出しは、バックグラウンドではなく同期である必要があります。私は何時間もウェブを検索しましたが、これを達成する方法を見つけることができないようです. UAC は、このシナリオでは使用できないようです。しかし、それはユーザーが持つものであるため、テストケースで必要です。
更新: タスク スケジューラ API を使用して、最高の特権で実行されるタスクを登録することはできません。これは、タスクの作成時に管理者権限を持っている場合にのみ可能であり、私の状況では役に立ちません。したがって、具体的には schtasks.exe を使用する必要があると思います。