3

現在、CruiseControl.NETを使用してビルドを自動化しています。私のビルド環境でソリューションをビルドするには、2 つの異なる方法があります。1 つはKeil uVision4 IDE を使用する方法で、もう 1 つは Visual Studio 2008 を使用する方法です。

CruiseControl.NET を使用して Visual Studio ソリューションを適切にビルドすることに成功し、Keil の uVision コマンド ライン インターフェイスを適切に使用して uvproj プロジェクトをコンパイルするバッチ ファイルを作成しました (コンパイルの詳細はこちら)。

問題の説明

1) 管理者権限でコマンド プロンプトを作成すると、Windows 2008 サーバーでビルド スクリプトを正常に実行し、プロジェクトをビルドできます (手動で実行しています - 開始 -> 実行 -> ctrl-shift-enter で cmd を実行して実行します)。管理者として)。

2) ただし、管理者権限なしでコマンド プロンプトを作成し、バッチ ファイルを実行しようとすると、バッチ スクリプトを実行するには管理者権限が必要であることを確認するプロンプトを受け入れない限り、バッチ ファイルは機能しません。

CruiseControl を使用して、管理者としてバッチ ファイルを自動的に実行するにはどうすればよいですか?

これは、 RunAsコマンドを使用して自動化できるものですか?


技術的な詳細

1) 実行されるバッチ ファイルは非常に単純です。古い出力を削除して出力を再作成し、以下の場所にビルド ログ ファイルを作成します。

set BuildLogLocation=BuildLog\BuildLog.txt

echo on
cd ../..
cd PTM
rmdir /s /q output
mkdir output
mkdir BuildLog
C:\Keil\UV4\UV4.exe -r myProj.uvproj -o %BuildLogLocation%

echo ErrorLevel of build is %ERRORLEVEL%
echo build complete, see %BuildLogLocation%

2) 現在、Exec 機能を使用して上記の Keil ビルド スクリプトを実行しようとしています。

<Exec>
    <Command>C:\myProject\Build\KeilBuild\BuildScript.bat<Command/>
    <buildTimeoutSeconds>600<buildTimeoutSeconds/>
    <!-- Details about error codes can be found here:
    http://www.keil.com/support/man/docs/uv4/uv4_commandline.htm -->
    <successExitCodes>0,1</successExitCodes>
<Exec/>

関連する質問:

4

4 に答える 4

1

管理者権限を持つユーザーとして、CruiseControl.NET WindowsサービスであるCCServiceを実行できますか?私は最初にそれを試してみます。

それがうまくいかない場合は、runasを使用してスクリプトを実行します。runasを呼び出すスクリプトに管理ユーザーのパスワードを埋め込む必要があります。

于 2012-06-07T21:39:29.627 に答える
1

私はこれが古いことを知っていますが、クルーズコントロールを介してそれを行う公式の方法を手に入れましたか?

通常、これを作成して呼び出して、他のプロセスを「As Admin」として呼び出します。

内容にこれを含む「.VBS」スクリプトを作成します。

Dim strBatchPath

strBatchPath = " PATH-TO-FILE.EXE"

runBatch = CreateObject("shell.application") を設定します

runBatch.shellexecute strBatchPath,,,"runas",1

それは、公式の方法を見つけることができない人々へのオプションになる可能性があります

于 2016-11-03T15:07:21.560 に答える
0

PSEXECを使用して-hスイッチを使用すると、宛先で「管理者として実行」されることがわかりました

例えば

psexec -h \ServerToRunOn /accepteula -u ドメイン\ユーザー -p パスワード "PATH-TO-FILE"

CC.Net を使用して、上記のバッチ ファイルを呼び出しています。これにより、そのファイルが管理者として実行されます。

于 2016-11-04T16:27:03.233 に答える
0

sysinternals から psExec を試すことができます。nt-authority アカウントとして実行する必要がない場合は、これを runas と同じ方法で使用できるはずです。ユーザー名/パスワードをスイッチとして渡すことができます(メモリが機能する場合)

于 2012-06-07T15:46:21.987 に答える