カスタム インストーラー プロセスの一部としてリモート コマンドを実行するために 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 つのアクセス許可ベースの修正を試みましたが、違いはありませんでした。
何か提案をいただければ幸いです - 私はここで私の髪を引き裂くことにかなり近づいています!