Remote PowerShell ile Exchange Sunucularına ve Microsoft 365'e Bağlanın


Bu makalede, PowerShell konsolundan şirket içi bir Exchange Server'a veya Microsoft 365'e (Exchange Online) uzaktan nasıl bağlanılacağını göstereceğiz.

Uzak PowerShell (EMS'siz) Üzerinden Exchange Sunucularına Nasıl Bağlanırsınız?

Şirket içi Exchange kuruluşunuzu (Exchange Server 2010, 2013, 2016 veya 2019) yönetmek için Exchange Yönetim Kabuğu (EMS) cmdlet'lerini kullanabilirsiniz. EMS, Exchange Yönetim Araçları'nın bir parçası olarak kurulur. Bilgisayarınızda Exchange Yönetim Kabuğu yüklü değilse, Exchange sunucunuza uzaktan bağlanabilir ve Exchange ana bilgisayarındaki cmdlet'leri yerel PowerShell oturumunuza aktarabilirsiniz.

Exchange Server'daki uzak bağlantılar, PowerShell adlı ayrı bir sanal IIS (İnternet Bilgi Hizmetleri) dizini aracılığıyla kurulur. Varsayılan olarak, Kerberos kimlik doğrulaması kullanılır ve iletişim için WinRM kullanılır.

İpucu. Bazı EMS cmdlet'lerinin uzak bir PowerShell oturumunda tam olarak desteklenmediğini unutmayın. Örneğin, Get-ExchangeCertificate. Kullanmak için, bilgisayarınıza Exchange Management Shell'i kurmanız gerekecek.

Başlamadan önce, yerel PowerShell Yürütme ilkenizin yerel PS betiklerini çalıştırmanıza izin verdiğinden emin olun. Aşağıdaki komut, geçerli kullanıcı için yerel komut dosyalarının çalıştırılmasına izin verir.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Bilgisayarınızda PowerShell konsolunu açın ve aşağıdaki komutu çalıştırın:

$UserCredential = Get-Credential

Exchange'e bağlanmak için kullanacağınız hesabın kullanıcı adını ve şifresini girin.

Exchange sunucunuzla uzak bir PowerShell oturumu oluşturun:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-mbex1.a-d.site/PowerShell/ -Authentication Kerberos -Credential $UserCredential

Dikkat

http

yerine

https

Web PowerShell'e erişmek için kullanılır.

Oturumun oluşturulduğundan ve şimdi Açıldı durumunda olduğundan emin olun:

Get-PSSession

Uzak PowerShell oturumunu yerel oturumunuza aktarın:

Import-PSSession $Session

Ardından, yerel PowerShell oturumunuzdaki tüm Exchange yönetimi cmdlet'lerini kullanabilirsiniz.

Uzak PowerShell oturumlarını düzgün bir şekilde sonlandırmayı unutmayın. Oturumunuzun bağlantısını kesmeden yalnızca Windows PowerShell konsolunu kapatırsanız, uzak PowerShell oturumlarının sınırını aşabilirsiniz.

Oturumunuzu sonlandırmak için aşağıdaki komutu çalıştırın:

Remove-PSSession $Session

Çalışan uzak PowerShell oturumu kalmadığından emin olun:

Get-PSSession

PowerShell cmdlet'lerini uzak Exchange'den oturumunuza otomatik olarak aktarmak için bir PowerShell profili kullanabilirsiniz.

Bir profil dosyası oluşturun:

New-Item -Path $profile -ItemType file -force

Microsoft.PowerShell_Profile.ps1'i Not Defteri ile açın:

notepad $profile

Exchange'e bağlanmak ve uzak bir oturumdaki cmdlet'leri yerel bir PowerShell oturumuna aktarmak için dosyaya komutlar ekleyin:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-mbex1.a-d.site/PowerShell/ -Authentication Kerberos -Credential (Get-Credential)
Import-PSSession $Session

Remote PowerShell Kullanarak Exchange Online'a (Microsoft 365) Bağlanma

Aynı şekilde posta kutularını, konferans odalarını, dağıtım listelerini ve diğer Microsoft 365 ayarlarını yönetmek için Exchange Online (Microsoft 365) kiracınıza bağlanabilirsiniz.

Microsoft Exchange Online PowerShell modülünü (EXO/EXOv2) kurmadan Temel Kimlik Doğrulama kullanarak PowerShell konsolundan Exchange Online'a uzaktan nasıl bağlanılacağını öğrenelim.

Yerel PS betiklerinin çalışmasına izin ver:

Set-ExecutionPolicy RemoteSigned

Exchange Online yönetici kimlik bilgilerinizi alın:

$UserCredential = Get-Credential

Bu Azure kullanıcısının öncelikle PowerShell aracılığıyla uzaktan bağlanmasına izin verilmelidir:

Set-User -Identity maxbak@a-d.site -RemotePowerShellEnabled $true

Ardından Microsoft 365 ile uzak bir PowerShell oturumu oluşturabilirsiniz:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Hesabınız için Multi-Factor Authentication etkinleştirildiyse (Microsoft, tüm yönetici hesapları için MFA kullanılmasını önerir), kullanarak bağlanmaya çalışırken aşağıdaki hata görünür.

New-PSSession
New-PSSession : [outlook.office365.com] Connecting to remote server outlook.office365.com failed with the following error message : Access is denied.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Ardından Exchange Online PowerShell V2 (EXO V2) modülünü kurmanız gerekecek:

Install-Module ExchangeOnlineManagement

Bu durumda, Exchange Online'a bağlanmak için aşağıdaki cmdlet kullanılır:

Connect-ExchangeOnline -UserPrincipalName maxbak@a-d.site -ShowProgress $true

Veya hesap için MFA'yı devre dışı bırakabilirsiniz:

Set-MsolUser -UserPrincipalName maxbak@a-d.site -StrongAuthenticationRequirements @()

Ardından uzak oturumu konsolunuza aktarın:

Import-PSSession $Session

Exchange Online'a maksimum uzak PowerShell bağlantısı sayısı üç oturumla sınırlıdır. Limiti aşarsanız, aşağıdaki hata görünür:

Fail to create a runspace because you have exceeded the maximum number of connections allowed.

Artık Microsoft 365 posta kutularınızı yönetebilirsiniz.

Tüm uzak PowerShell oturumlarını sonlandırmak için şu komutu çalıştırın:

Get-PSSession | Remove-PSSession

İlgili makaleler