2017-09-28 14 views
0

IStorageContext을 매개 변수로 허용하는 Cmdlet을 만들려고합니다. 이 cmdlet을 실행할 때, 그것은 내용의 TypeNotFound 예외가 발생합니다 :IStorageContext를 Cmdlet의 매개 변수로 전달 - 유형 [IStorageContext]을 찾을 수 없습니다.

유형 [IStorageContext 여기서

이 cmdlet입니다 찾을 수 없습니다 : 사실

Function SomeCmdlet { 
    param(
    [parameter(Mandatory=$true)] 
    [IStorageContext]$storageContext 
) 
    New-AzureStorageContainer -Name "ContainerName" -Context $storageContext -Permission Off 
} 

, 나는했습니다 New-AzureRmStorageAccount을 사용하여 저장소 계정을 만들고 해당 Context 속성 값을 내 방법 및 내 방법으로 전달하려면 New-AzureStorageContainer을 사용하여 컨테이너를 만들고 싶습니다.

-Context 
Specifies a context for the new container. 

Type:      IStorageContext 
Position:     Named 
Default value:    None 
Accept pipeline input:  True (ByPropertyName, ByValue) 
Accept wildcard characters: False 

내가 찾은 아웃 IStorageContext의 전체 이름입니다 :

  • Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext

그러나 심지어 매개 변수 유형으로 유형 이름 위에 사용하여 여기에 Context 매개 변수에 대한 설명서입니다 같은 오류가 발생했습니다.

답변

0

대신 [IStorageContext] 당신은 다음과 같은 유형 중 하나를 사용할 수 있습니다 [object]

  • [Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext]
  • 그래서 방법은 다음과 같습니다

    Function SomeCmdlet { 
        param(
        [parameter(Mandatory=$true)] 
        [object]$storageContext 
    ) 
        New-AzureStorageContainer -Name "ContainerName" -Context $storageContext -Permission Off 
    } 
    
0

Import-Module Azure.Storage 모든 관련을로드해야합니다 ~에 유형 gether를 모듈과 함께 현재 Powershell 세션에 추가합니다. 특정 스크립트에서

, 당신은 명시 적 Import-Module 호출하지 않고로드 모듈을 얻을 수 #Requires -Modules Azure.Storage를 사용해야합니다. 경우

당신은 특정 라이브러리의 특정 유형을 필요로 Add-Type cmdlet을 사용합니다. Azure SDK를 기본 위치에 설치했다면 다음 형식으로로드하십시오 :

+0

Alex. 내가 공유 한 코드를 사용하여 문제를 재현 할 수 있습니다. 제안 된 솔루션을 테스트 했습니까? –

+0

어떤 버전의'Azure.Storage' 모듈을 사용하고 있습니까? –