Aracılığıyla paylaş


Azure PowerShell bağlam nesneleri

Azure PowerShell, abonelik ve kimlik doğrulama bilgilerini tutmak için Azure PowerShell bağlam nesnelerini (Azure bağlamları) kullanır. Birden çok aboneliğe erişiminiz varsa Azure bağlamları, Azure PowerShell cmdlet'lerini çalıştırmak için aboneliği seçmenize olanak sağlar. Azure bağlamları, oturum açma bilgilerini birden çok PowerShell oturumunda depolamak ve arka plan görevlerini çalıştırmak için de kullanılır.

Bu makale, aboneliklerin veya hesapların yönetimini değil Azure bağlamlarını yönetmeyi kapsar. 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ı, komutları çalıştırmak için etkin aboneliğinizi temsil eden PowerShell nesneleri ve bir Azure buluta bağlanmak için gereken kimlik doğrulama bilgileridir. Azure bağlamları ile Azure PowerShell'in abonelikleri her değiştirdiğinizde hesabınızı yeniden doğrulaması gerekmez. Azure bağlamı şunlardan oluşur:

  • ile Azure'da oturum açmak için kullanılan Connect-AzAccount. Azure bağlamları, hesap açısından kullanıcılara, uygulama kimliklerine ve hizmet sorumlularına aynı şekilde davranır.
  • Etkin abonelik, kiracıyla ilişkilendirilmiş Azure kaynaklarını oluşturmak ve çalıştırmak için Microsoft ile yapılan bir hizmet sözleşmesidir. Kiracılar genellikle belgelerde veya Microsoft Entra ile çalışırken kuruluşlar olarak adlandırılır.
  • Azure buluta erişmek için depolanan kimlik doğrulama belirteci olan belirteç önbelleğine başvuru. Bağlam otomatik kaydetme ayarları belirtecin nerede depolandığını ve ne kadar süre kalıcı olduğunu belirler.

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.

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

Azure bağlamlarını alma

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

Get-AzContext -ListAvailable

Veya ada göre bir bağlam elde edin:

Get-AzContext -Name MyContextName

Bağlam adları ilişkili aboneliğin adından farklı olabilir. Bağlam adını belirlemek için Name özelliğinin varsayılan olarak görüntülenmeyen değerini kullanın.

Get-AzContext -ListAvailable | Select-Object -Property *

Önemli

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

Abonelik bilgilerinden yeni bir Azure bağlamı oluşturma

Set-AzContext Cmdlet, yeni Azure bağlamlarını oluşturmak ve etkin bağlam olarak ayarlamak için kullanılır. Yeni bir Azure bağlamı oluşturmanın en kolay yolu mevcut abonelik bilgilerini kullanmaktır. Set-AzContext cmdlet, çıkış nesnesini Get-AzSubscription kanallı değer olarak alacak ve yeni bir Azure bağlamı 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 belirtebilirsiniz:

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

Name parametresi atlanırsa, biçiminde Subscription Name (subscription-id)bağlam adı olarak aboneliğin adı ve kimliği kullanılır.

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

Hem hem Set-AzContext de Select-AzContext etkin Azure bağlamını değiştirmek için 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 MyContextName) # Set a context with an inline Azure context object
Get-AzContext -Name MyContextName | 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-AzContext ne 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 MyContextName | 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 MyContextName
New-AzVM -Name ExampleVM -AzContext $context

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

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

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

  • ile -Scope Processkullanarak Connect-AzAccount 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.

  • Cmdlet'iyle Azure PowerShell'de bağlam otomatik kaydetmeyi Disable-AzContextAutosave devre dışı bırakın. Bağlam otomatik kaydetmeyi devre dışı bırakmak, depolanan belirteçleri temizlemez. Depolanan Azure bağlam bilgilerini temizlemeyi öğrenmek için bkz. Azure bağlamlarını ve depolanan kimlik bilgilerini kaldırma.

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

  • ile bağlamları el ile Save-AzContext kaydederek gelecekte powershell oturumlarında kullanılabilir ve burada ile Import-AzContextyüklenebilirler:

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

Uyarı

Bağlam otomatik kaydetmeyi devre dışı bırakmak, kaydedilen hiçbir depolanmış bağlam bilgisini temizlemez. Depolanan bilgileri kaldırmak için cmdlet'ini Clear-AzContext kullanın. Kaydedilen bağlamları kaldırma hakkında daha fazla bilgi için bkz. Azure bağlamlarını ve depolanan 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 oturumuna çıktıktan sonra kaydedilmediğinden emin olmak için:

Disable-AzContextAutosave -Scope Process
Set-AzContext -Subscription 'Subscription ID or Name' -Tenant 00000000-0000-0000-0000-000000000000

Bağlam bilgileri ve belirteçler Windows'daki dizinde $env:USERPROFILE\.Azure ve $HOME/.Azure diğer platformlarda 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. Azure bağlamlarını ve depolanan kimlik bilgilerini kaldırma.

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

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

  • ile Disconnect-AzAccountbir hesabın oturumunu kapatın. Herhangi bir 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 MyContextName # Disconnect by context name
    
    $context = Get-AzContext
    Disconnect-AzAccount -AzureContext $context # Disconnect using context object information
    

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

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

  • ile Remove-AzContextbağlamı kaldırma:

    Remove-AzContext -Name MyContextName # Remove by name
    Get-AzContext -Name MyContextName | Remove-AzContext # Remove by piping an 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 bakınız