New-AzStorageContext

Creates an Azure Storage context.

Syntax

New-AzStorageContext
   [-StorageAccountName] <String>
   [-UseConnectedAccount]
   [-Protocol <String>]
   [-Endpoint <String>]
   [-EnableFileBackupRequestIntent]
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   [-StorageAccountKey] <String>
   [-Protocol <String>]
   [-Endpoint <String>]
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   [-StorageAccountKey] <String>
   [-Protocol <String>]
   -Environment <String>
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   [-Anonymous]
   [-Protocol <String>]
   [-Endpoint <String>]
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   [-Anonymous]
   [-Protocol <String>]
   -Environment <String>
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   -SasToken <String>
   [-Protocol <String>]
   [-Endpoint <String>]
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   -SasToken <String>
   -Environment <String>
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   [-UseConnectedAccount]
   [-Protocol <String>]
   -Environment <String>
   [-EnableFileBackupRequestIntent]
   [<CommonParameters>]
New-AzStorageContext
   [-StorageAccountName] <String>
   [-StorageAccountKey] <String>
   -BlobEndpoint <String>
   [-FileEndpoint <String>]
   [-QueueEndpoint <String>]
   [-TableEndpoint <String>]
   [<CommonParameters>]
New-AzStorageContext
   -SasToken <String>
   [-BlobEndpoint <String>]
   [-FileEndpoint <String>]
   [-QueueEndpoint <String>]
   [-TableEndpoint <String>]
   [<CommonParameters>]
New-AzStorageContext
   -ConnectionString <String>
   [<CommonParameters>]
New-AzStorageContext
   [-Local]
   [<CommonParameters>]
New-AzStorageContext
   [-Anonymous]
   [-BlobEndpoint <String>]
   [-FileEndpoint <String>]
   [-QueueEndpoint <String>]
   [-TableEndpoint <String>]
   [<CommonParameters>]
New-AzStorageContext
   [-UseConnectedAccount]
   [-BlobEndpoint <String>]
   [-FileEndpoint <String>]
   [-QueueEndpoint <String>]
   [-TableEndpoint <String>]
   [-EnableFileBackupRequestIntent]
   [<CommonParameters>]

Description

The New-AzStorageContext cmdlet creates an Azure Storage context. The default Authentication of a Storage Context is OAuth (Microsoft Entra ID), if only input Storage account name. See details of authentication of the Storage Service in https://learn.microsoft.com/rest/api/storageservices/authorization-for-the-azure-storage-services.

Examples

Example 1: Create a context by specifying a storage account name and key

New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >"

This command creates a context for the account named ContosoGeneral that uses the specified key.

Example 2: Create a context by specifying a connection string

New-AzStorageContext -ConnectionString "DefaultEndpointsProtocol=https;AccountName=ContosoGeneral;AccountKey=< Storage Key for ContosoGeneral ends with == >;"

This command creates a context based on the specified connection string for the account ContosoGeneral.

Example 3: Create a context for an anonymous storage account

New-AzStorageContext -StorageAccountName "ContosoGeneral" -Anonymous -Protocol "http"

This command creates a context for anonymous use for the account named ContosoGeneral. The command specifies HTTP as a connection protocol.

Example 4: Create a context by using the local development storage account

New-AzStorageContext -Local

This command creates a context by using the local development storage account. The command specifies the Local parameter.

Example 5: Get the container for the local developer storage account

New-AzStorageContext -Local | Get-AzStorageContainer

This command creates a context by using the local development storage account, and then passes the new context to the Get-AzStorageContainer cmdlet by using the pipeline operator. The command gets the Azure Storage container for the local developer storage account.

Example 6: Get multiple containers

$Context01 = New-AzStorageContext -Local 
$Context02 = New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >"
($Context01, $Context02) | Get-AzStorageContainer

The first command creates a context by using the local development storage account, and then stores that context in the $Context01 variable. The second command creates a context for the account named ContosoGeneral that uses the specified key, and then stores that context in the $Context02 variable. The final command gets the containers for the contexts stored in $Context01 and $Context02 by using Get-AzStorageContainer.

Example 7: Create a context with an endpoint

New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Endpoint "contosoaccount.core.windows.net"

This command creates an Azure Storage context that has the specified storage endpoint. The command creates the context for the account named ContosoGeneral that uses the specified key.

Example 8: Create a context with a specified environment

New-AzStorageContext -StorageAccountName "ContosoGeneral" -StorageAccountKey "< Storage Key for ContosoGeneral ends with == >" -Environment "AzureChinaCloud"

This command creates an Azure storage context that has the specified Azure environment. The command creates the context for the account named ContosoGeneral that uses the specified key.

Example 9: Create a context by using an SAS token

$SasToken = New-AzStorageContainerSASToken -Name "ContosoMain" -Permission "rad"
$Context = New-AzStorageContext -StorageAccountName "ContosoGeneral" -SasToken $SasToken
$Context | Get-AzStorageBlob -Container "ContosoMain"

The first command generates an SAS token by using the New-AzStorageContainerSASToken cmdlet for the container named ContosoMain, and then stores that token in the $SasToken variable. That token is for read, add, update, and delete permissions. The second command creates a context for the account named ContosoGeneral that uses the SAS token stored in $SasToken, and then stores that context in the $Context variable. The final command lists all the blobs associated with the container named ContosoMain by using the context stored in $Context.

Example 10: Create a context by using the OAuth Authentication

Connect-AzAccount
$Context = New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount

This command creates a context by using the OAuth (Microsoft Entra ID) Authentication.

Example 11: Create a context by specifying a storage account name, storage account key and custom blob endpoint

New-AzStorageContext -StorageAccountName "myaccountname" -StorageAccountKey "< Storage Key for myaccountname ends with == >" -BlobEndpoint "https://myaccountname.blob.core.windows.net/"

This command creates a context for the account named myaccountname with a key for the account, and specified blob endpoint.

Example 12: Create a context for an anonymous storage account with specified blob endpoint

New-AzStorageContext -Anonymous -BlobEndpoint "https://myaccountname.blob.core.windows.net/"

This command creates a context for anonymous use for the account named myaccountname, with specified blob enpoint.

Example 13: Create a context by using an SAS token with specified endpoints

$SasToken = New-AzStorageContainerSASToken -Name "MyContainer" -Permission "rad"
New-AzStorageContext -SasToken $SasToken -BlobEndpoint "https://myaccountname.blob.core.windows.net/" -TableEndpoint "https://myaccountname.table.core.windows.net/" -FileEndpoint "https://myaccountname.file.core.windows.net/" -QueueEndpoint "https://myaccountname.queue.core.windows.net/"

The first command generates an SAS token by using the New-AzStorageContainerSASToken cmdlet for the container named MyContainer, and then stores that token in the $SasToken variable. The second command creates a context that uses the SAS token and a specified blob endpoint, table endpoint, file endpoint, and queue endpoint.

Example 14: Create a context by using the OAuth Authentication with a specified blob endpoint

New-AzStorageContext -UseConnectedAccount -BlobEndpoint  "https://myaccountname.blob.core.windows.net/"

This command creates a context by using the OAuth authentication with a specified blob endpoint.

Example 15: Create a context by using the OAuth Authentication on File service

New-AzStorageContext -StorageAccountName "myaccountname" -UseConnectedAccount -EnableFileBackupRequestIntent

This command creates a context to use the OAuth (Microsoft Entra ID) authentication on File service. Parameter '-EnableFileBackupRequestIntent' is required to use OAuth (Microsoft Entra ID) Authentication for File service. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories.

Parameters

-Anonymous

Indicates that this cmdlet creates an Azure Storage context for anonymous logon.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-BlobEndpoint

Azure storage blob service endpoint

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionString

Specifies a connection string for the Azure Storage context.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-EnableFileBackupRequestIntent

Required parameter to use with OAuth (Microsoft Entra ID) Authentication for Files. This will bypass any file/directory level permission checks and allow access, based on the allowed data actions, even if there are ACLs in place for those files/directories.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Endpoint

Specifies the endpoint for the Azure Storage context.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Environment

Specifies the Azure environment. The acceptable values for this parameter are: AzureCloud and AzureChinaCloud. For more information, type Get-Help Get-AzEnvironment.

Type:String
Aliases:Name, EnvironmentName
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-FileEndpoint

Azure storage file service endpoint

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Local

Indicates that this cmdlet creates a context by using the local development storage account.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Protocol

Transfer Protocol (https/http).

Type:String
Accepted values:Http, Https
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-QueueEndpoint

Azure storage queue service endpoint

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SasToken

Specifies a Shared Access Signature (SAS) token for the context.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-StorageAccountKey

Specifies an Azure Storage account key. This cmdlet creates a context for the key that this parameter specifies.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-StorageAccountName

Specifies an Azure Storage account name. This cmdlet creates a context for the account that this parameter specifies.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TableEndpoint

Azure storage table service endpoint

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseConnectedAccount

Indicates that this cmdlet creates an Azure Storage context with OAuth (Microsoft Entra ID) Authentication. The cmdlet will use OAuth Authentication by default, when other authentication not specified.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

String

Outputs

AzureStorageContext