3

カスタム インストーラー プロセスの一部としてリモート コマンドを実行するために msdeploy をテストするためにスパイクを実行していますが、どのように構成しても、通常のユーザーで runCommand を使用できるようにすることはできません。

私が使用している呼び出しは(わかりやすくするためにラップされています):

"C:\program Files\IIS\Microsoft Web Deploy\msdeploy.exe" 
    -verb:sync 
    -source:runCommand="testcommand.bat" 
    -dest:auto,wmsvc="https://server:8172/msdeploy.axd?site=Default Web Site",authType=basic,userName=server\username,password=xxxxxx 
    -allowUntrusted

ユーザーはサーバー上のローカル ユーザーであり、"既定の Web サイト" の "IIS マネージャーのアクセス許可" に追加されています。testcommand.bat は、「dir」を含む通常のバッチ ファイルです。

Management Service Delegation で runCommand プロバイダーをセットアップしました (アクション = "*"、パス タイプ = "パス プレフィックス"、パス = "{userScope}"、ID タイプ = "特定のユーザー")。

ユーザーをローカル管理者グループに追加すると、正常に機能します。

有効になっているログの一部が原因で、イベント ログに次のように表示されます。

Tracing deployment agent exception. Request ID '97beb70b-33da-4445-b3be-d3cf3e6db8b7'. 
Request Timestamp: '08/31/2012 18:05:25'. 
Error Details:
    Microsoft.Web.Deployment.DeploymentUnauthorizedAccessException: Attempted to perform an unauthorized operation. runCommand http://go.microsoft.com/fwlink/?LinkId=178034
    at Microsoft.Web.Deployment.DelegationHelper.ImpersonateForOperation(String deploymentAction, String deploymentProvider, String deploymentPath, DelegationContextCache cache)
    at Microsoft.Web.Deployment.DelegationHelper.ImpersonateForOperation(String deploymentAction, DeploymentObject deploymentObject)/>
    at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)

http://technet.microsoft.com/en-us/library/ee619740(WS.10).aspxにある 2 つのアクセス許可ベースの修正を試みましたが、違いはありませんでした。

何か提案をいただければ幸いです - 私はここで私の髪を引き裂くことにかなり近づいています!

4

1 に答える 1

7

同じことで2日間過ごしました。「Web Management Service Failed Request Tracing」を有効にすると、次のようなメッセージが表示されます。

Uri="/msdeploy.axd", eventData="承認されていません。詳細: ユーザー 'WebDeploy'、プロバイダー 'runCommand'、操作 'Read'、パス 'echo HI!' を承認できるルールが見つかりませんでした。"

ご覧のとおり、msdeploy はコマンドをパスとして使用してルールを照合するためPath = "{userScope}"、委任ルールを次のように置き換えるだけです。Path = "testcommand.bat"

これが Web 上の記事で指定されていない理由は不明です。おそらく、これは WebDeployV3 にとって新しいことです。

于 2012-09-02T07:49:32.147 に答える