2017-03-15 9 views
2

파워 쉘 스크립트 작성 이 그림과 같이 내 빌드 단계 :패스 비밀 변수는 내 빌드 정의에 비밀 변수라는 암호를 추가 한

Build Step

내 PowerShell 스크립트는이

처럼 보인다
Param 
(
    [Parameter(Mandatory=$true)] 
    [string]$UserName, 
    [Parameter(Mandatory=$true)] 
    [string]$Password 
) 

$appPool = New-WebAppPool -Name "test" 
$appPool.processModel.userName = $userName 
$appPool.processModel.password = $password 
$appPool.processModel.identityType = "SpecificUser" 
$appPool | Set-Item 

그러나 암호 유형이 문자열이 아닌 것 같습니다. 나는 PSCredential을 시도했지만 작동하지 않았습니다. 누군가 나를 도울 수 있습니까? 빌드 단계에서 PowerShell 스크립트와 보안 변수 유형에 암호를 어떻게 전달합니까? 대상 컴퓨터에서 PowerShell 스크립트를 실행하고 있기 때문에 직접 환경 변수를 읽을 수 없습니다. 암호 만 입력하면됩니다.

+0

시도'$ appPool.processModel.password = (를 ConvertTo-SecureString -Force -AsPlainText $ 암호)' – 4c74356b41

+0

비밀 변수는 빌드 단계에서 액세스를 해독한다. 암호 인수에 사용할 수 있습니다. 빌드하는 동안 오류가 발생합니까? 나는 당신의 스크립트를 테스트했지만 문제는 발생하지 않았다. –

+0

하지만이 문은 작동하지 않습니다. $ appPool.processModel.password = (ConvertTo-SecureString -Force -AsPlainText $ password). 이 값은 System.Security.SecureString이지만 실제 암호는 아닙니다. 그래서 apppool은 올바른 암호를 설정하지 않습니다. 암호 해독 방법을 알지 못합니다. – user1856918

답변

6

마침내 나는 그것을 해결할 수있었습니다.

powershell 스크립트 인수를 통해 보낼 때 내 암호 주위에 큰 따옴표를 넣었습니다. 팔!! 그것은 일하기 시작했습니다. 해독 된 암호를 보냅니다.

-username $ (사용자 이름) -Password "$ (암호)"

내 파워 쉘 스크립트는 상기와 동일하게 유지됩니다.

Param 
(
    [Parameter(Mandatory=$true)] 
    [string]$UserName, 
    [Parameter(Mandatory=$true)] 
    [string]$Password 
) 

$appPool = New-WebAppPool -Name "test" 
$appPool.processModel.userName = $userName 
$appPool.processModel.password = $password 
$appPool.processModel.identityType = "SpecificUser" 
$appPool | Set-Item