New-Object : "PSCredential" 및 인수 개수 "2"에 대한 오버로드를 찾을 수 없습니다.
저는 윈도우 8.1 기계에 파워쉘 스크립트를 쓰고 있습니다.New-Object cmdlet을 사용하여 PSC redential 개체를 생성하려고 하면 다음과 같은 오류가 나타납니다.
새 개체 : "PSCredential" 및 인수 개수 "2"에 대한 오버로드를 찾을 수 없습니다.
저는 다른 윈도우 8.1 컴퓨터에서 똑같은 스크립트를 실행해도 괜찮습니다.또한 두 시스템 모두 동일한 버전의 PowerShell 4.0을 실행하고 있음을 확인했습니다.
두 기계가 다 똑같습니다.NET Framework 4.0 설치.
왜 이런 일이 일어나고 있는지 그리고 이 문제를 어떻게 해결할 수 있는지 아세요?
$userPassword = ConvertTo-SecureString -String "MyPassword" -AsPlainText -Force
$userCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "myUserName", $userPassword
몇 번 더 테스트를 해본 결과 문제를 발견했습니다.제 기능을 위해 사용자로부터 사용자 이름과 비밀번호를 가져오되, 사용자가 입력 파라미터를 생략하기로 결정할 경우 기본값을 제공하려고 했습니다.
이를 위해 parameters 섹션에 다음 행을 추가하여 달성하였습니다.
[string][ValidateNotNullOrEmpty()] $userPassword = "myPassword",
파라미터에서 [String]으로 정의했는데 나중에 SecureString이 되려고 해서 문제가 생긴 것 같습니다.
내 파라미터에서 [String] 속성을 제거하면 문제가 해결되었습니다.
이와 같은 상황에서는 파라미터 유형을 확인해 보는 것이 좋습니다.이 예에서는 입력 매개 변수가 String으로 선언되었습니다.그러나 ConvertTo-SecureString의 결과는 SecureString을 반환합니다.
이런 상황에서는 오류 메시지가 조금 오해의 소지가 있습니다.문제는 인수가 2개인 컨스트럭터가 없어서가 아니라 a로 선언되었으나 나중에 로 변경되었기 때문입니다.
[string][ValidateNotNullOrEmpty()] $userPassword = "myPassword",
$userPassword = ConvertTo-SecureString -String $userPassword -AsPlainText -Force
$userCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "myUserName", $userPassword
보안 문자열 개체를 인용하는 경우에도 이러한 상황이 발생합니다.
실행 중
$secPassword = ConvertTo-SecureString "mypassword" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("myusername", "$secPassword")
는 언급된 오류를 반환합니다.
반면에.
$secPassword = ConvertTo-SecureString "mypassword" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("myusername", $secPassword)
성공할 것입니다.
또한 명령어(또는 스크립트)를 실행 중인 사용자의 현재 자격 증명이 아닌 특정 자격 증명이 필요하지 않을 경우 원라이너로 이 모든 것을 건너뛸 수 있습니다.
$Cred = Get-Credential
그러면 사용자 이름과 비밀번호를 입력하라는 팝업 메시지가 나타납니다.마찬가지로 명령줄에서 사용할 수 있는 변수에 자격 증명을 캡처했거나 스크립트에서 이를 사용하여 사용자에게 자격 증명을 입력하라는 메시지를 표시할 수 있습니다.
언급URL : https://stackoverflow.com/questions/22970505/new-object-cannot-find-an-overload-for-pscredential-and-the-argument-count
'programing' 카테고리의 다른 글
| 두 개의 열이 포함된 각 그룹에서 마지막 레코드를 가져오는 MySQL 쿼리 (0) | 2023.10.29 |
|---|---|
| .htaccess rewrite url에 변수 2개 포함 (0) | 2023.10.29 |
| 아바다 테마에 jQuery 코드를 삽입하는 방법은? (0) | 2023.10.29 |
| detach(), hide() 및 remove()의 차이점 - jQuery (0) | 2023.10.29 |
| 플렉스박스 : 1열 4개 (0) | 2023.10.29 |