DirectoryServices 쿼리를 호출하려는 PowerShell 스크립트에 많은 어려움이 있습니다. 내가 할 경우 현재,powershell SecureString을 매개 변수 또는 콘솔 항목으로 처리
$password = read-host "Password" -asSecureString
및 이후
$credential = New-Object System.Management.Automation.PSCredential $username,$password
모든 것이 잘 작동합니다. 나는 다음 PARAM ($ 암호)로 문자열 매개 변수를 전달하고 시도 할 경우이 코드에 보안 문자열로 변환 :
$password = ConvertTo-SecureString -AsPlainText -Force $password
광범위한 디버깅 후 나는 이것이 변환의 관점에서 잘 작동 볼 수 있습니다 string을 securestring으로 바꾸지 만, 매개 변수를 사용할 때 DirectoryServices에서 잘못된 사용자/암호를 얻습니다. 콘솔에서 읽을 때 모든 것이 잘 작동합니다. 매개 변수를 수락하기 위해 내가 할 수있는 것에 대한 아이디어 나 매개 변수가없는 경우 콘솔 입력을 얻는 방법에 대한 아이디어가 있습니까?
이 내가 일을 바라고 있었는지,하지만하지 않습니다
if($password -eq $null) {
$password = read-host "Password" -asSecureString
} else {
$password = ConvertTo-SecureString -AsPlainText -Force $password
}
$credential = New-Object System.Management.Automation.PSCredential $username,$password
허 : 내 경우에 발견 주위 작품은 다음을이었다? 암호를 입력하고 securestring을 만들고 자격 증명을 만들고 암호를 추출합니다. 왜? 비밀 번호는 변경되지 않습니다 .. –
죄송합니다, 당신이 언급하고있는 마지막 라인을 생략/주석 처리해야합니다, 그것은 디버깅 목적이었습니다. – jackwmc4
몇 가지 추가 디버깅 후, 그것도 보안 문자열 문제가 나타납니다 - 어떤 이유로 디렉토리 서비스는 param에서 왔을 때 문자열을받지 않을 것이지만, 프롬프트가 나타나면 않습니다. 무슨 일이 계속 벌어지고 있는지 아직도 모르겠다. – jackwmc4