Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PowerShell 7在Azure中获取任何Blob属性_Azure_Powershell_Azure Storage Blobs_Powershell 7.0 - Fatal编程技术网

如何使用PowerShell 7在Azure中获取任何Blob属性

如何使用PowerShell 7在Azure中获取任何Blob属性,azure,powershell,azure-storage-blobs,powershell-7.0,Azure,Powershell,Azure Storage Blobs,Powershell 7.0,我正在使用下面的代码访问和检索Azure中的blob属性。我希望将此函数设置为通用函数,这样我就可以使用任何“属性”名称调用它,而不是像下面硬编码的那样仅检索“IsServerEncrypted”属性: function GetBlobProperty { Param( [parameter(Mandatory = $true)] [String] $blobProperty, # <<<<<=I want to retrieve

我正在使用下面的代码访问和检索Azure中的blob属性。我希望将此函数设置为通用函数,这样我就可以使用任何“属性”名称调用它,而不是像下面硬编码的那样仅检索“IsServerEncrypted”属性:

function GetBlobProperty   {
    Param(   
        [parameter(Mandatory = $true)] [String] $blobProperty, # <<<<<=I want to retrieve any property
        [parameter(Mandatory = $true)] [String] $storageAccountName,
        [parameter(Mandatory = $false)] [String] $storageAccountKey,
        [parameter(Mandatory = $false)] [String] $containerName,
        [parameter(Mandatory = $false)] [String] $blobName
    )    
    $ctx = GetStorageContext $storageAccountName $storageAccountKey
    $Blobs = Get-AzStorageBlob -Container $containerName -Context $ctx
    $retValue = ""

    ForEach ($Blob in $Blobs){
        #Write-Host $Blob.Name  
        if($Blob.Name.IndexOf($blobName) -ge 0)
        {
            Write-Host $Blob.Name
            $retValue = $Blob.ICloudBlob.Properties.IsServerEncrypted #I want to pass $blobProperty here
            break;
        }


    }
    return $retValue
}
函数GetBlobProperty{
参数(

[parameter(Mandatory=$true)][String]$blobProperty,#您可能只需执行
$Blob.ICloudBlob.Properties.$blobProperty
并检查属性是否存在(非空)

函数获取BlobProperty{
参数(
[参数(必需=$true)][字符串]$blobProperty,
[参数(必需=$true)][字符串]$storageAccountName,
[参数(必需=$false)][字符串]$storageAccountKey,
[参数(必需=$false)][字符串]$containerName,
[参数(必需=$false)][字符串]$blobName
)    
$ctx=New-AzStorageContext-StorageAccountName$StorageAccountName-StorageAccountKey$StorageAccountKey
$Blobs=Get-AzStorageBlob-Container$containerName-Context$ctx
$retValue=$null
ForEach($Blob中的Blob){
#写入主机$Blob.Name
if($Blob.Name.IndexOf($blobName)-ge 0)
{
写入主机$Blob.Name
if($null-ne$Blob.ICloudBlob.Properties.$blobProperty){
$retValue=$Blob.ICloudBlob.Properties.$blobProperty
打破
}
}
}
返回$retValue
}
虽然我更喜欢使用检查属性是否存在:

函数获取BlobProperty{
参数(
[参数(必需=$true)][字符串]$blobProperty,
[参数(必需=$true)][字符串]$storageAccountName,
[参数(必需=$false)][字符串]$storageAccountKey,
[参数(必需=$false)][字符串]$containerName,
[参数(必需=$false)][字符串]$blobName
)    
$ctx=New-AzStorageContext-StorageAccountName$StorageAccountName-StorageAccountKey$StorageAccountKey
$Blobs=Get-AzStorageBlob-Container$containerName-Context$ctx
$retValue=$null
ForEach($Blob中的Blob){
#写入主机$Blob.Name
if($Blob.Name.IndexOf($blobName)-ge 0)
{
写入主机$Blob.Name
if(获取成员-InputObject$Blob.ICloudBlob.Properties-Name$blobProperty-MemberType属性){
$retValue=$Blob.ICloudBlob.Properties.$blobProperty
打破
}
}
}
返回$retValue
}

您可能只需执行
$Blob.ICloudBlob.Properties.$blobProperty
并检查属性是否存在(不为null)

函数获取BlobProperty{
参数(
[参数(必需=$true)][字符串]$blobProperty,
[参数(必需=$true)][字符串]$storageAccountName,
[参数(必需=$false)][字符串]$storageAccountKey,
[参数(必需=$false)][字符串]$containerName,
[参数(必需=$false)][字符串]$blobName
)    
$ctx=New-AzStorageContext-StorageAccountName$StorageAccountName-StorageAccountKey$StorageAccountKey
$Blobs=Get-AzStorageBlob-Container$containerName-Context$ctx
$retValue=$null
ForEach($Blob中的Blob){
#写入主机$Blob.Name
if($Blob.Name.IndexOf($blobName)-ge 0)
{
写入主机$Blob.Name
if($null-ne$Blob.ICloudBlob.Properties.$blobProperty){
$retValue=$Blob.ICloudBlob.Properties.$blobProperty
打破
}
}
}
返回$retValue
}
虽然我更喜欢使用检查属性是否存在:

函数获取BlobProperty{
参数(
[参数(必需=$true)][字符串]$blobProperty,
[参数(必需=$true)][字符串]$storageAccountName,
[参数(必需=$false)][字符串]$storageAccountKey,
[参数(必需=$false)][字符串]$containerName,
[参数(必需=$false)][字符串]$blobName
)    
$ctx=New-AzStorageContext-StorageAccountName$StorageAccountName-StorageAccountKey$StorageAccountKey
$Blobs=Get-AzStorageBlob-Container$containerName-Context$ctx
$retValue=$null
ForEach($Blob中的Blob){
#写入主机$Blob.Name
if($Blob.Name.IndexOf($blobName)-ge 0)
{
写入主机$Blob.Name
if(获取成员-InputObject$Blob.ICloudBlob.Properties-Name$blobProperty-MemberType属性){
$retValue=$Blob.ICloudBlob.Properties.$blobProperty
打破
}
}
}
返回$retValue
}