簡體   English   中英

MSDeploy.exe可以作為管理員連接,但不能以任何其他Windows帳戶連接

[英]MSDeploy.exe can connect as Administrator, but not any other Windows account

我正在將MSDeploy集成到我的構建過程中,並且在進行身份驗證時遇到問題。 以下命令工作正常:

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=Administrator,password=secret -dest:package=c:\DeployTest\KPC.zip

但是,這不起作用:

msdeploy -verb:sync -source:appHostConfig="KitchenPC",computerName=192.168.0.3,userName=kpcpublish,password=secret -dest:package=c:\DeployTest\KPC.zip

並產生錯誤:

Error Code: ERROR_USER_NOT_ADMIN
More Information: Connected to '192.168.0.11' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administ
rator on '192.168.0.11'.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN.
Error: The remote server returned an error: (401) Unauthorized.
Error count: 1.

我按照上面鏈接中的說明和我能找到的任何其他文檔 ,幾乎都說同樣的事情:

  1. 我創建了一個名為kpcpublish的帳戶
  2. 我將此帳戶添加到名為MSDepSvcUsers的組中 - Heck,我甚至將該帳戶添加到管理員
  3. 我右鍵單擊該站點並選擇Deploy-> Configure Web Deploy Publishing並將kpcpublish添加到列表中。 它說如下:

 Publish enabled for 'SERVER\\kpcpublish' Granted 'SERVER\\kpcpublish' full control on 'C:\\Website' Successfully created settings file 'C:\\Users\\Administrator\\Desktop\\SERVER_kpcpublish_KitchenPC.PublishSettings' 

必須有一些我缺少的步驟,但我無法弄清楚可能是什么。

更新:

使用computerName屬性的完整HTTP路徑,我收到錯誤:

錯誤代碼:ERROR_DESTINATION_NOT_REACHABLE更多信息:無法連接到遠程計算機(“192.168.0.3”)。 在遠程計算機上,確保已安裝Web Deploy並且已啟動所需的進程(“Web管理服務”)。 有關詳情,請訪問: http//go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_DES TINATION_NOT_REACHABLE。 錯誤:無法連接到遠程服務器錯誤:連接嘗試失敗,因為連接方在一段時間后未正確響應,或已建立的連接因為連接的主機未能響應而失敗192.168.0.3:8192錯誤計數:1 。

我已經檢查過,Web管理服務確實正在運行。

另一個更新:

我已經完全鋪設了系統,並從頭開始重新設置。 我沒有做任何與眾不同的事情,只是安裝了IIS角色,並確保檢查管理工具下的“管理服務”,這是WMSVC運行所必需的。 然后我安裝了Web PI,並安裝了“Hosting Providers的推薦配置”,它將安裝Web Deploy 3.0。 但是,我確實注意到安裝時出現了錯誤(我相信我最后一次也遇到了這個錯誤)。 看起來像:

在此輸入圖像描述

我還在這里附加了日志文件。

然后我嘗試手動安裝Web Deploy 3.0,但它說已經安裝了。 接下來,我直接從http://www.iis.net/download/webdeploy下載了MSI,並以“修復”模式運行它。 這似乎有效。 我還注意到WMSVC服務已啟動並正在運行。 所以這看起來不錯。

仍然,MSDeploy將無法連接。 我認為這可能是某種防火牆問題,所以我在本地運行它。 我嘗試過使用HTTPS和HTTP連接。 HTTPS給我一個錯誤,HTTP在2-3分鍾后就會超時。

HTTPS:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'f3a54096-adc4-4f54-9e4f-ad8fde12edb6' for connections to the remote server.
Error Code: ERROR_CERTIFICATE_VALIDATION_FAILED
More Information: Connected to the remote computer ("staging") using the specified process ("Web Management Service"), but could not verify the server's certifi
cate. If you trust the server, connect again and allow untrusted certificates.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED.
Error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
Error: The remote certificate is invalid according to the validation procedure.
Error count: 1.

HTTP:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=http://STAGING:8172/msdeploy.axd,userName=Administrator,password=Khorf123 -dest:package=c:\DeleteMe.zip
Info: Using ID 'ebee66f0-08e5-4d9d-98ea-0c2e59784895' for connections to the remote server.
Error: Could not complete the request to remote agent URL 'http://staging:8172/msdeploy.axd'.
Error: The operation has timed out
Error count: 1.

2016-03-07更新 - 注意:非管理員部署在msdeploy.axd之后還需要?site=IIS_SITE_NAME msdeploy.axd ,否則連接將被視為全局並需要管理員訪問權限)

不知道最初錯過了什么,但你的問題是computerName參數。 僅在使用WMSVC時才支持非管理員部署,您需要為其指定完整的URL。

請嘗試以下方法

msdeploy -verb:sync ^
  -source:appHostConfig="KitchenPC",computerName=https://192.168.0.3:8172/MsDeploy.axd,userName=kpcpublish,password=secret,authType=Basic ^ 
  -dest:package=c:\DeployTest\KPC.zip 

來自文檔

計算機名稱將轉換為默認的Web部署URL。 例如, computerName = Server1將成為http:// Server1 / MsDeployAgentService 如果遠程服務使用自定義端口或URL運行,則必須指定完整URL

從安裝說明

如果未安裝Web管理服務,MSI將不會安裝Web管理服務處理程序組件; 處理程序組件是非管理員部署所必需的

(我找不到更明確的規范來源,將WMSVC描述為非管理員部署的要求)

弄清楚了!

因此,似乎(至少在默認情況下),WMSVC只監聽HTTPS,而HTTP只會超時。 但是,由於我的證書是自簽名的,因此我必須使用-allowUntrusted命令行選項。

幾乎就夠了。 我還必須像Richard最初建議的那樣指定authType = Basic 因此,將它們放在一起,這是實際工作的MSDeploy命令行:

msdeploy -verb:sync -source:appHostConfig="Default Web Site",computerName=https://192.168.0.3:8172/msdeploy.axd,authType=Basic,userName=Publish,password=secret -dest:package=c:\DeployTest\KPC.zip -allowUntrusted

嘗試在目標計算機上重新啟動wmsvc服務

配置Web部署我的服務器后,如下所示 我繼續得到HTTP 404連接失敗。 在可能對我有用的是以下額外的努力......

  1. 卸載現有的所有以前版本的Web Deploy。 我甚至都不知道他們存在; 但是,以前的版本似乎與完成與最新Web Deploy服務的連接沖突。 較新的版本不會卸載它們的前輩。 在最后一部分,我得到HTTP 401.7 - File Extension Denied
  2. 為了更好地衡量,修復了當前版本的Web Deploy,目前是Microsoft Web Deploy 3.6
  3. 為了更好地衡量,請重新創建並導入我的Visual Studio 2013部署配置文件...
    1. 使用IIS ManagerConnections面板中目標網站的“ Deploy上下文菜單選項中的“ Configure Web Deploy Publishing對話框重新創建publish settings file (注意,當您按下Setup作為在對話框條目中Specify a location to save the publish settings file完整路徑的文件時,將重新創建publish settings fileSpecify a location to save the publish settings file
    2. 復制或以其他方式使publish settings file可用於Visual Studio並從項目的上下文菜單中選擇“ Publish通過導入publish settings file創建Visual Studio發布配置publish settings file

如上所述,請確保您通過HTTPS進行連接。 如果您嘗試以管理員身份進行連接,但未使用SSL,則會收到以下錯誤:

錯誤代碼:ERROR_USER_NOT_ADMIN

更多信息:使用Web部署代理服務連接到“主機”,但無法授權。 確保您是“主持人”的管理員。

('主機'是您的服務器名稱)

對我來說,問題是我的密碼已過期...我在注銷時注意到它,然后嘗試登錄遠程桌面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM