programing

Invoke-Command 오류 "지정된 명명된 매개 변수를 사용하여 매개 변수 집합을 확인할 수 없습니다.

skycolor 2023. 8. 15. 10:58
반응형

Invoke-Command 오류 "지정된 명명된 매개 변수를 사용하여 매개 변수 집합을 확인할 수 없습니다.

로컬 컴퓨터에서 대체 자격 증명을 사용하여 스크립트 블록을 실행하는 데 문제가 발생하면 도와주십시오.포럼을 철저히 검색하고 구글 검색을 통해 문제를 해결할 수 있는 두 가지 방법을 찾았습니다.

  1. 호출-명령 사용
  2. 시작 작업 사용

#1 접근법을 사용하여 다음 코드를 얻었습니다.

$res = Invoke-Command -Credential $migratorCreds -ScriptBlock {param($one, $two) Get-LocalUsers -parentNodeXML $one -migratorUser $two } -ArgumentList $xmlPRE,$migratorCreds

어디에Get-LocalUsers는 사용자 지정 모듈(*.psm1)에 저장된 사용자 지정 함수입니다.

문제는 이 코드를 실행할 때마다 다음 오류가 발생한다는 것입니다.

지정된 명명된 매개 변수를 사용하여 매개 변수 집합을 확인할 수 없습니다.

그래서 제가 뭔가 빠진 게 분명한데, 이 주제에 대해 도와주실 수 있나요?

당신이 가지고 있는 오류는-credential없이.-computername존재할 수 없습니다.

다음 방법을 사용할 수 있습니다.

Invoke-Command -Credential $migratorCreds  -ScriptBlock ${function:Get-LocalUsers} -ArgumentList $xmlPRE,$migratorCreds -computername YOURCOMPUTERNAME

Invoke-Command cmdlet과 관련하여 허용된 답변은 맞지만, 더 넓게 말하면 cmdlet에는 입력 매개 변수 그룹이 정의된 매개 변수 집합이 있을 수 있으므로 동일한 매개 변수 집합의 멤버가 아닌 두 매개 변수를 사용할 수 없습니다.

다른 cmdlet에서 이 오류가 발생하는 경우 해당 Microsoft 설명서를 찾아 페이지 상단에 고유한 매개 변수 집합이 나열되어 있는지 확인합니다.예를 들어 Set-Azure Deployment에 대한 설명서는 페이지 맨 위에 세 개의 세트를 정의합니다.

PowerShell을 사용하는 것이 처음이라 도움이 될 것 같습니다.이것 좀 드셔보시겠어요?

스크립트 블록에 대한 올바른 매개 변수가 없습니다.

param([string]$one, [string]$two)
$res = Invoke-Command -Credential $migratorCreds -ScriptBlock {Get-LocalUsers -parentNodeXML $args[0] -migratorUser $args[1] } -ArgumentList $xmlPRE, $migratorCreds

저는 최근에 같은 문제를 풀고 있었습니다.는 자막 모듈을 위한 쓰기 cmdlet을 설계하고 있었습니다.6가지 사용자 사례가 있었습니다.

  • 자막만
  • 부제 및 경로(원래 파일 이름 사용)
  • 부제 및 새 파일 이름(원래 경로 사용)
  • 부제 및 이름 접미사가 사용됩니다(원래 경로 및 수정된 이름 사용).
  • 하위 파일, 새 경로 및 새 파일 이름이 사용됩니다.
  • 부제, 새 경로 및 접미사가 사용됩니다.

4개의 파라미터로 충분하다고 생각했기 때문에 큰 좌절감에 빠집니다.대부분의 경우와 마찬가지로 좌절은 제 잘못이기 때문에 무의미했습니다.파라미터 세트에 대해 충분히 알지 못했습니다.

문서화에 대한 약간의 조사 후, 저는 어디가 문제인지 깨달았습니다.매개 변수 세트가 어떻게 사용되어야 하는지에 대한 지식을 바탕으로, 저는 이 문제를 해결하는 일반적이고 간단한 접근법을 개발했습니다.연필과 종이가 필요하지만 스프레드시트 편집기가 더 좋습니다.

  1. cmdlet 사용 방법을 모두 적어주세요 => 사용자 사례.
  2. 의미 있는 이름을 가진 매개변수를 계속 추가하고 고유한 집합 집합 => 매개변수의 반복적인 조합이 없을 때까지 매개변수의 사용을 표시합니다.
  3. 코드에 매개 변수 집합을 구현합니다.
  4. 가능한 모든 사용자 스토리에 대한 테스트를 준비합니다.
  5. 테스트를 실행합니다(놀랍죠?).IDE는 매개 변수 집합 충돌을 확인하지 않으며, 테스트는 나중에 많은 문제를 줄일 수 있습니다.

예:

Unique parameter binding resolution approach.

실제 사례는 이쪽에서 확인할 수 있습니다.

내 은 BTW: 매 변 집 합 매 개 변 은 고 이 니 입 다 유 같 은 과 다 음 성 유 수 개 의 수 내 니 다 ▁why queness ▁is ▁the ▁b ▁parameter ▁within ▁sets ▁the ▁the 입 ▁reason ▁uni ▁parameter ▁b 이 유 tw 매 은ParameterSetName이 지원하지 .[String[]]그건 정말 말이 안 돼요.

언급URL : https://stackoverflow.com/questions/18144016/invoke-command-error-parameter-set-cannot-be-resolved-using-the-specified-named

반응형