我要创建一个接受Function SomeCmdlet {
param(
[parameter(Mandatory=$true)]
[IStorageContext]$storageContext
)
New-AzureStorageContainer -Name "ContainerName" -Context $storageContext -Permission Off
}
作为参数的Cmdlet。但是在运行cmdlet时,它会引发Context
异常,说明:
无法找到类型[IStorageContext]
这是Cmdlet:
Context
事实上,我已使用New-AzureRmStorageAccount
创建了一个存储帐户,我希望将-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
属性的值传递给我的方法和我的方法,使用New-AzureStorageContainer
i想要创建一个容器。以下是Microsoft.Azure.Commands.Common.Authentication.Abstractions.IStorageContext
参数的文档:
{{1}}
我发现IStorageContext
的全名是:
但即使使用上面的类型名称作为参数类型我也收到了同样的错误。
答案 0 :(得分:0)
您可以使用以下任一类型代替[IStorageContext]
:
[Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext]
[object]
所以方法是:
Function SomeCmdlet {
param(
[parameter(Mandatory=$true)]
[object]$storageContext
)
New-AzureStorageContainer -Name "ContainerName" -Context $storageContext -Permission Off
}
答案 1 :(得分:0)
Import-Module Azure.Storage
应将所有相关类型与模块一起加载到当前的Powershell会话中。
在特定的脚本中,您应该使用#Requires -Modules Azure.Storage
来加载模块而不需要显式Import-Module
调用。
如果您需要特定库中的特定类型,请使用Add-Type
cmdlet。如果您在默认位置安装了Azure SDK,请使用以下命令加载类型:
Add-Type -LiteralPath "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\Storage\Azure.Storage\Microsoft.Azure.Commands.Common.Authentication.Abstractions.dll"