iis-7 - later - windows 2012 web management service




401 비 관리자 사용자를 사용하는 WebDeploy에 대한 권한없는 오류 (3)

<TLDR>
ms 웹 배포를 사용하여 관리자아닌 사용자와 함께 명령 줄 에서 원격 호스트에 웹 응용 프로그램을 배포 할 수 있습니까?
</ TLDR>

웹 배포 설치 및 구성에 대한 Microsoft의 모든 지침을 준수했습니다. 나의 목표는 IIS 사용자 / 관리자가 아닌 사용자와 원격 웹 배포를 수행하는 것입니다.

비 관리자 배포를위한 웹 배포 설치 및 구성에 설명 된대로 모든 단계를 수행 한 후에 다음과 같은 로그 메시지가 표시됩니다 (모든 사항이 정상임을 나타냄).

Publish enabled for 'deploy_user'
Granted 'deploy_user' full control on 'C:\inetpub\wwwroot'
Successfully created settings file 'C:\Users\...\Desktop\deploy_user_Default Web Site.PublishSettings'

다음으로, 내가 로컬 컴퓨터에서 다음 명령을 실행하려고 할 때 :

.\my_deploy_package.cmd /M:https://machine_name:8172/msdeploy.axd -allowUntrusted /U:deploy_user /P:deploy_password /A:Basic /T

오류 : 다음 과 같은 오류 메시지가 나타납니다. 오류 : 원격 서버에서 오류를 반환했습니다 : (401) Unauthorized.

대상 컴퓨터의 이벤트 뷰어> 사용자 지정보기> Administratove 이벤트로 이동하면이 메시지와 "일치하는"오류가 표시됩니다.

IISWMSVC_AUTHORIZATION_SERVER_NOT_ALLOWED

Windows 관리자 만 서버 연결을 사용하여 연결할 수 있습니다. 연결할 수 있으려면 다른 사용자가 '사이트 또는 응용 프로그램에 연결'작업을 사용해야합니다.

프로세스 : WMSvc User = deploy_user

이 오류는 이 질문 에서 설명한 것과 동일합니다. 그리고 받아 들여진 대답 은 내가 한 일이 올바른 접근법이라는 것을 암시합니다.

제안 된 몇 가지 해결 방법을 시도했지만 도움이 될 것 같지는 않습니다. 관리 서비스는 원격 연결 (Windows 및 IIS 관리자)을 허용하도록 설정되어 있으며 기본 제공 Windows 사용자 (비 관리자)와 IIS 관리자 사용자 모두에 대해 구성을 실행했지만 여전히 동일한 오류가 발생했습니다. 그러나 관리자 권한으로 deploy 명령을 실행하면 성공합니다.

필요한 권한과 규칙이 구성되었음을 나타내는 비 관리자 deploy_user 사용자 (IIS의 경우 : 사이트 연결 [서버 URL] / [사이트 이름]> deploy_user / deploy_password )와 IIS GUI를 통해 원격으로 연결할 수 있습니다. 그러나 같은 사용자가 배포 스크립트 명령 줄을 실행하려고하면 실패합니다.

실제로 오류 메시지가 나타내는대로 관리자가 아닌 사용자는 IIS 관리자를 통해 사이트 또는 응용 프로그램에 연결 사용할 수 있습니다. 그런 다음 명령 줄 / 빌드 서버에서 이와 같은 방법으로 배포하는 것이 좋습니다. 난 정말 빌드 사용자 서버의 설정에 일반 텍스트로 관리 사용자의 사용자 이름 / 비밀 번호를 입력 wan't ...

필자가 발견 한 한 가지 옵션은 일반적인 Active Directory (또는 다른 사용자 공유 방법)를 사용하기 위해 배포 서버와 컴퓨터를 구축하려고하면 /A:Basic 플래그를 건너 뛸 수 있으며 사용자 이름과 비밀 번호 모두. 배포를 실행하는 사용자에게 배포 대상에 대한 관리자 권한도 있는지 확인해야합니다. 그러나 우리에게있어 빌드 서버 및 배포 대상 에는 공통된 사용자 기반이 없기 때문에이 옵션이 없으며 일반 텍스트의 사용자 이름 / 암호로 돌아갑니다. 이는 전혀 바람직하지 않습니다 .


MSI를 사용하여 설치하지 않았다고 가정하고 아래에서 언급 한 단계를 올바르게 설치 및 구성한 경우 WMSvc가 서버에 올바르게 구성되어 있는지 확인하십시오. 승인 된 답변이 도움이되는지 확인하십시오. https://.com/a/4834248/463478

2. 웹 관리 서비스가 설치되어 있지 않은 경우 MSI는 웹 관리 서비스 처리기 구성 요소를 설치하지 않습니다. 비 관리자 배포의 경우 처리기 구성 요소가 필요합니다 . 관리 서비스를 포함하여 Windows 구성 요소 IIS가 먼저 설치되어 처리기 구성 요소를 설치할 수 있어야합니다.

PowerShell v2가 설치되어 있지 않은 경우 MSI는 비 관리자 배포를 허용하도록 웹 관리 서비스를 구성하지 않습니다. 이 설치 단계에는 관리자가 아닌 사용자가 Web Deploy를 사용할 수 있도록하는 IIS 서버 Administration.config 파일에 위임 규칙을 만드는 단계가 포함됩니다 . PowerShell v2는 Windows Server 2008 R2에 기본 제공되지만 Windows Server 2008 용 Windows Update가 필요할 수 있습니다 . 또는 설치 후 수동으로 위임 규칙을 추가 할 수 있습니다 .


명령 줄에서 직접 실행 해보십시오.

msdeploy.exe
  -source:package='…\DemoProject.zip'
  -dest:auto,
        computerName='https://TESTWEB1:8172/MSDeploy.axd?site=DemoSite',
        userName='FABRIKAM\User',
        password='Pa$$w0rd',
        authtype='Basic'
  -verb:sync
  -setParamFile:"…\DemoProject.SetParameters.xml"  
  -allowUntrusted

DemoProject.zip 을 서버의 TESTWEB1 패키지로 TESTWEB1 . 또한 username, password, DemoSiteDemoProject.SetParameters.xml 적절하게 변경하십시오.

here 에서 인용 함


이 게시물에서 두 가지 사실이 정말 도움이되었습니다.

  1. 사이트 이름 지정하기
  2. 인증 유형을 기본으로 설정.

또한 내 웹 응용 프로그램 이름에 공백이 https://machine_name:8172/msdeploy.axd?site=my%20web%20app 와 같은 서비스 URL을 지정하려고하면 오류가 계속 발생했습니다 https://machine_name:8172/msdeploy.axd?site=my%20web%20app

추가 msdeploy.exe 플래그 "-setParam:name='IIS Web Application Name',value='my web app'" 사용하여 사이트 이름을 설정하는 것을 해결할 수있었습니다 "-setParam:name='IIS Web Application Name',value='my web app'"

내 작업 명령은 :

my_deploy_package.cmd / M : https://machine_name:8172/msdeploy.axd / U : 배포 _ 사용자 / P : 배포 _ 암호 / A : 기본 -allow 신뢰할 수 없음 "-setParam : name = 'IIS 웹 응용 프로그램 이름', 값 = '내 웹 응용 프로그램 ''





webdeploy