Azure PowerShell bağlam nesneleri

Azure PowerShell abonelik ve kimlik doğrulaması bilgilerini tutmak için Azure PowerShell bağlam nesneleri (Azure bağlamları) kullanır. Birden fazla aboneliğiniz varsa, Azure bağlamları Azure PowerShell cmdlet'lerinin üzerinde çalıştırılacağı aboneliği seçmenizi sağlar. Azure bağlamları birden fazla PowerShell oturumunda oturum açma bilgilerini depolamak ve arka plan görevlerini çalıştırmak için de kullanılır.

Bu makalede aboneliklerin veya hesapların yönetimi değil Azure bağlamlarının yönetimi açıklanır. Kullanıcıları, abonelikleri, kiracıları veya diğer hesap bilgilerini yönetmek istiyorsanız Microsoft Entra Id belgelerine bakın. Arka plan veya paralel görevleri çalıştırmak için bağlamları kullanma hakkında bilgi edinmek için bkz . Azure bağlamlarını öğrendikkten sonra PowerShell İşlerinde Azure PowerShell cmdlet'lerini çalıştırma.

Azure bağlam nesnelerine genel bakış

Azure bağlamları, üzerinde komutların çalıştırılacağı etkin aboneliğinizi ve Azure bulutuna bağlanmak için gereken kimlik doğrulama bilgilerini temsil eden PowerShell nesneleridir. Azure bağlamlarıyla, Azure PowerShell'in her abonelik değiştirdiğinizde kimliğinizi yeniden doğrulaması gerekmez. Azure bağlamı şunlardan oluşur:

  • Connect-AzAccount ile Azure'da oturum açarken kullanılmış olan hesap. Azure bağlamları, hesap açısından kullanıcıları, uygulama kimliklerini ve hizmet sorumlularını aynı şekilde değerlendirir.
  • Kiracı ile ilişkilendirilmiş Azure kaynaklarını oluşturmak ve çalıştırmak için Microsoft'la yapılan bir hizmet sözleşmesi olan etkin abonelik. Belgelerde ve Active Directory ile çalışırken kiracılardan genellikle kuruluşlar olarak söz edilir.
  • Azure bulutuna erişmek için depolanan kimlik doğrulama belirteci olan belirteç önbelleği başvurusu. Bu belirtecin nerede depolandığı ve ne kadar süreyle kalıcı olacağı bağlam otomatik kaydetme ayarları tarafından belirlenir.

Bu terimler hakkında daha fazla bilgi için bkz . Microsoft Entra Terminolojisi. Azure bağlamları tarafından kullanılan kimlik doğrulama belirteçleri, kalıcı bir oturumun parçası olan diğer depolanmış belirteçlerle aynıdır.

Connect-AzAccount ile oturum açtığınızda varsayılan aboneliğiniz için en az bir Azure bağlamı oluşturulur. Connect-AzAccount tarafından döndürülen nesne, PowerShell oturumunun kalanında kullanılan varsayılan Azure bağlamıdır.

Azure bağlamlarını alma

Kullanılabilir Azure bağlamları Get-AzContext cmdlet'iyle alınır. ListAvailable parametresiyle kullanılabilir bağlamları listeleyin :

Get-AzContext -ListAvailable

İsterseniz bağlamı adını belirterek de alabilirsiniz:

Get-AzContext -Name 'mycontext'

Bağlam adları, ilişkili aboneliğin adından farklı olabilir.

Önemli

Kullanılabilir Azure bağlamları her zaman sizin kullanılabilir abonelikleriniz olmayabilir. Azure bağlamları yalnızca yerel olarak depolanan bilgileri temsil eder. Aboneliklerinizi Get-AzSubscription cmdlet'iyle alabilirsiniz.

Abonelik bilgilerinden yeni Azure bağlamı oluşturma

Hem yeni Azure bağlamlarını oluşturmak hem de bunları etkin bağlam olarak ayarlamak için Set-AzContext cmdlet'i kullanılır. Yeni Azure bağlamı oluşturmanın en kolay yolu mevcut abonelik bilgilerini kullanmaktır. Cmdlet, çıkış nesnesini Get-AzSubscription cmdlet'inden yönlendirilmiş değer olarak alacak ve yeni Azure bağlamını yapılandıracak şekilde tasarlanmıştır:

Get-AzSubscription -SubscriptionName 'MySubscriptionName' |
  Set-AzContext -Name 'MyContextName'

Gerekirse abonelik adını veya kimliğini ve kiracı kimliğini de verebilirsiniz:

Set-AzContext -Name 'MyContextName' -Subscription 'MySubscriptionName' -Tenant '00000000-0000-0000-0000-000000000000'

Ad parametresi atlanırsa abonelik adı ve kimliği, Abonelik Adı (abonelik-kimliği) biçiminde bağlam adı olarak kullanılır.

Etkin Azure bağlamını değiştirme

Etkin Azure bağlamını değiştirmek için hem Set-AzContext hem de Select-AzContext kullanılabilir. Yeni Azure bağlamı oluşturma bölümünde açıklandığı gibi, Set-AzContext yoksa abonelik için yeni bir Azure bağlamı oluşturur ve etkin bağlamı buna geçirir.

Select-AzContext yalnızca mevcut Azure bağlamlarıyla kullanılmak üzere tasarlanmıştır ve kullanımına Set-AzContext -Contextbenzer şekilde çalışır, ancak piping ile kullanılmak üzere tasarlanmıştır:

Set-AzContext -Context $(Get-AzContext -Name 'mycontext') # Set a context with an inline Azure context object
Get-AzContext -Name 'mycontext' | Select-AzContext # Set a context with a piped Azure context object

Azure PowerShell'deki diğer birçok hesap ve bağlam yönetimi komutu gibi bağlamın Set-AzContextSelect-AzContextne kadar süre etkin olduğunu denetleyebileceğiniz Scope parametresini de destekler. Kapsam , varsayılan ayarınızı değiştirmeden tek bir oturumun etkin bağlamını değiştirmenize olanak tanır:

Get-AzContext -Name 'mycontext' | Select-AzContext -Scope Process

PowerShell oturumlarının tamamında bağlamların değiştirilmesini önlemek için AzContext parametresine sahip Azure PowerShell komutları belirli bir bağlama göre çalıştırılabilir:

$context = Get-AzContext -Name "mycontext"
New-AzVM -Name ExampleVM -AzContext $context

Azure PowerShell cmdlet'lerinde bağlamların diğer önemli kullanım şekli arka plan komutlarını çalıştırmaktır. Azure PowerShell kullanarak PowerShell İşlerini çalıştırma hakkında daha fazla bilgi edinmek için bkz. PowerShell İşlerinde Azure PowerShell cmdlet'lerini çalıştırma.

PowerShell oturumları arasında Azure bağlamlarını kaydetme

Azure bağlamları varsayılan olarak PowerShell oturumları arasında kullanılmak üzere kaydedilir. Bu davranışı aşağıdaki yollarla değiştirebilirsiniz:

  • Connect-AzAccount cmdlet'iyle -Scope Process kullanarak oturum açın.

    Connect-AzAccount -Scope Process
    

    Bu oturum açma işleminin bir parçası olarak döndürülen Azure bağlamı yalnızca geçerli oturum için geçerlidir ve Azure PowerShell bağlamı otomatik kaydetme ayarından bağımsız olarak otomatik olarak kaydedilmez.

  • Disable-AzContextAutosave cmdlet'iyle Azure PowerShell'de bağlam otomatik kaydetmeyi devre dışı bırakın. Bağlam otomatik kaydetme ayarı devre dışı bırakıldığında depolanmış olan belirteçler temizlenmez. Depolanan Azure bağlam bilgilerini temizlemeyi öğrenmek için bkz. Azure bağlamlarını ve kimlik bilgilerini kaldırma.

  • Azure bağlamı otomatik kaydetme ayarını Enable-AzContextAutosave cmdlet'iyle açıkça etkinleştirin. Otomatik kaydetme etkinleştirildiğinde, kullanıcının bağlamları sonraki PowerShell oturumları için yerel olarak depolanır.

  • Bağlamları gelecekteki PowerShell oturumlarında kullanılmak üzere Save-AzContext cmdlet'iyle el ile kaydedin. Bunlar sonraki oturumlarda Import-AzContext cmdlet'iyle yüklenebilir:

    Save-AzContext -Path current-context.json # Save the current context
    Save-AzContext -Profile $profileObject -Path other-context.json # Save a context object
    Import-AzContext -Path other-context.json # Load the context from a file and set it to the current context
    

Uyarı

Bağlam otomatik kaydetme ayarı devre dışı bırakıldığında, daha önce kaydedilmiş olan depolanan bağlam bilgileri temizlenmez. Depolanan bilgileri kaldırmak için Clear-AzContext cmdlet'ini kullanın. Kaydedilmiş bağlamları kaldırma hakkında daha fazla bilgi için bkz. Bağlamları ve kimlik bilgilerini kaldırma.

Bu komutların her biri, değerinin yalnızca geçerli çalışan işleme uygulanmasını sağlayan Process Scope parametresini destekler. Örneğin, yeni oluşturulan bağlamların PowerShell oturumundan çıkarken kaydedilmemesini sağlamak için:

Disable-AzContextAutosave -Scope Process
$context2 = Set-AzContext -Subscription 'sub-id' -Tenant 'other-tenant'

Bağlam bilgileri ve belirteçler Windows'da $env:USERPROFILE\.Azure dizininde ve diğer platformlarda $HOME/.Azure konumunda depolanır. Abonelik kimlikleri ve kiracı kimlikleri gibi hassas bilgiler depolanmış bilgiler, günlükler veya kaydedilmiş bağlamlar aracılığıyla kullanıma sunulmaya devam edebilir. Depolanan bilgileri temizlemeyi öğrenmek için bkz. Bağlamları ve kimlik bilgilerini kaldırma.

Azure bağlamlarını ve depolanan kimlik bilgilerini kaldırma

Azure bağlamlarını ve kimlik bilgilerini temizlemek için:

  • Disconnect-AzAccount ile bir hesabın oturumunu kapatın. Hesabın oturumunu hesaba veya bağlama göre kapatabilirsiniz:

    Disconnect-AzAccount # Disconnect active account
    Disconnect-AzAccount -Username 'user@contoso.com' # Disconnect by account name
    
    Disconnect-AzAccount -ContextName 'subscription2' # Disconnect by context name
    Disconnect-AzAccount -AzureContext $contextObject # Disconnect using context object information
    

    Bağlantının kesilmesi her zaman depolanan kimlik doğrulama belirteçlerini kaldırır ve bağlantısı kesilmiş kullanıcıyla veya bağlamla ilişkili kaydedilmiş bağlamları temizler.

  • Clear-AzContext cmdlet'ini kullanın. Bu cmdlet her zaman depolanan bağlamları, kimlik doğrulama belirteçlerini kaldırır ve oturum kapatmanızı sağlar.

  • Bağlamı Remove-AzContext ile kaldırın:

    Remove-AzContext -Name 'mycontext' # Remove by name
    Get-AzContext -Name 'mycontext' | Remove-AzContext # Remove by piping Azure context object
    

    Etkin bağlamı kaldırırsanız Azure bağlantınız kesilir ve ile Connect-AzAccountyeniden kimlik doğrulaması yapmanız gerekir.

Ayrıca bkz.