M365Con 2027 – konferensi online gratis · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Terhubung ke Exchange Online PowerShell: Panduan Langkah demi Langkah

By ·

Terhubung ke Exchange Online PowerShell dengan Connect-ExchangeOnline: persyaratan, masuk interaktif, MFA, opsi mitra dan tanpa pengawasan, serta cara memperbaiki kesalahan.

Automatically translated with AI from the original post. Read the English original

Untuk terhubung ke Exchange Online PowerShell, muat modul ExchangeOnlineManagement dan jalankan Connect-ExchangeOnline -UserPrincipalName admin@yourdomain.com. Jendela masuk akan terbuka, Anda memasukkan kata sandi dan menyetujui permintaan MFA, lalu shell terhubung. Artikel ini ditujukan bagi admin Exchange dan Microsoft 365 yang membutuhkan langkah yang tepat, opsi untuk akses mitra dan tanpa pengawasan, serta daftar singkat perbaikan saat koneksi gagal. Artikel ini mengikuti dokumentasi Microsoft terkini, sehingga perintah di sini mengasumsikan autentikasi modern dan tidak menggunakan sesi remote PowerShell.

Poin Penting

  • Untuk terhubung ke Exchange Online PowerShell, muat modul lalu jalankan Connect-ExchangeOnline dengan akun admin Anda dalam format UPN.
  • Masuk interaktif berfungsi dengan dan tanpa autentikasi multifaktor, sehingga Anda tidak memerlukan solusi MFA terpisah.
  • Autentikasi dasar dan metode New-PSSession lama tidak lagi didukung, sehingga skrip yang bergantung padanya perlu ditulis ulang.
  • Gunakan Get-AcceptedDomain sebagai uji cepat setelah terhubung, dan selalu akhiri sesi dengan Disconnect-ExchangeOnline.
  • Skrip tanpa pengawasan sebaiknya menggunakan autentikasi khusus aplikasi (app-only) atau identitas terkelola, bukan kata sandi yang disimpan.

Yang perlu disiapkan sebelum terhubung

Perintah koneksi berasal dari modul, sehingga modul harus diinstal terlebih dahulu. Jika belum, instal dari PowerShell Gallery dengan Install-Module -Name ExchangeOnlineManagement. Modul ini disebut modul V3 dalam dokumentasi Microsoft. Microsoft mencakup Windows PowerShell 5.1 dan PowerShell 7. Untuk PowerShell 7, Anda memerlukan modul versi 2.0.4 atau yang lebih baru.

Empat hal lain menentukan apakah koneksi berhasil:

  • Izin. Kontrol akses berbasis peran menentukan cmdlet apa saja yang dapat Anda jalankan setelah terhubung. Bagian yang sulit bukan terhubung, melainkan menjalankan cmdlet yang tepat. Microsoft memiliki halaman untuk menemukan izin yang dibutuhkan sebuah cmdlet, dan halaman ini layak disimpan sebagai bookmark.
  • Akses PowerShell untuk akun. Akun harus diizinkan menggunakan Exchange Online PowerShell. Jika admin telah menonaktifkannya untuk pengguna Anda, proses masuk berhasil tetapi koneksi tidak.
  • Jaringan. Port TCP 80 harus terbuka antara komputer Anda dan Microsoft 365.
  • Jalur profil yang bersih. Microsoft menyatakan bahwa perintah koneksi dapat gagal jika jalur profil pengguna Anda mengandung karakter khusus PowerShell, seperti $. Gunakan akun lain jika akun Anda memilikinya.

Anda juga tidak perlu mengubah apa pun pada WinRM. Koneksi saat ini menggunakan REST di balik layar, sehingga saran lama untuk mengaktifkan autentikasi dasar di WinRM tidak lagi berlaku.

Cara terhubung ke Exchange Online PowerShell langkah demi langkah

Ini adalah metode interaktif standar. Cara kerjanya sama di Windows PowerShell 5.1 dan PowerShell 7, dengan atau tanpa autentikasi multifaktor.

  1. Buka jendela PowerShell baru. Jendela baru menghindari konflik assembly dengan modul lain yang mungkin sudah dimuat sebelumnya dalam sesi.
  2. Muat modul dengan Import-Module ExchangeOnlineManagement. Jika modul sudah terpasang, menurut Microsoft Anda biasanya dapat melewati langkah ini dan langsung ke perintah connect, karena PowerShell memuat modul secara otomatis.
  3. Jalankan Connect-ExchangeOnline -UserPrincipalName admin@contoso.com, tetapi dengan akun Anda sendiri dalam format UPN. Di sebagian organisasi, Anda dapat menghilangkan -UserPrincipalName dan sistem akan meminta Anda memasukkannya. Jika itu gagal, tambahkan parameter tersebut.
  4. Masukkan kata sandi Anda di jendela masuk, lalu pilih Sign in.
  5. Jika akun Anda menggunakan MFA, masukkan kode verifikasi dan pilih Verify. Kode dikirim melalui metode yang Anda konfigurasi, misalnya pesan teks atau Microsoft Authenticator. Di PowerShell 7, proses masuk secara default menggunakan browser Anda.
  6. Tunggu banner muncul. Tidak adanya pesan kesalahan berarti Anda sudah terhubung.

Itu saja. Cmdlet yang sama juga menghubungkan sesi PowerShell untuk Microsoft 365 GCC tanpa parameter tambahan. Hanya cloud lain yang memerlukan pengaturan, yang akan dibahas berikutnya.

Jika Anda tidak ingin banner selamat datang masuk ke log skrip, tambahkan -ShowBanner:$false. Jika Anda ingin Get-Help menampilkan bantuan untuk cmdlet Exchange Online, tambahkan -LoadCmdletHelp. Sejak versi modul 3.7.0, bantuan tersebut tidak lagi dimuat secara default, hal yang sering mengejutkan orang yang memperbarui modul lalu mendapati Get-Help hampir tidak mengembalikan apa pun.

Cara lain untuk terhubung: PowerShell 7, mitra, dan cloud

Dokumentasi mencantumkan beberapa variasi. Pilih yang sesuai dengan situasi Anda.

PowerShell 7 tanpa browser. Jalankan Connect-ExchangeOnline -Device. Perintah ini menampilkan pesan yang meminta Anda membuka https://microsoft.com/devicelogin dan memasukkan kode. Lakukan itu di perangkat lain, masuk, dan konfirmasi, lalu sesi awal akan menyelesaikan koneksinya. Cara ini berfungsi dengan maupun tanpa MFA dan berguna di server atau mesin Linux yang tidak memiliki desktop.

PowerShell 7 dengan kredensial inline. Connect-ExchangeOnline -UserPrincipalName admin@contoso.com -InlineCredential berfungsi untuk akun tanpa MFA. Sebagian besar organisasi mewajibkan MFA untuk admin, jadi Anda jarang menggunakan cara ini.

Windows PowerShell 5.1 dengan objek kredensial. Untuk akun tanpa MFA, Anda dapat menjalankan $Credential = Get-Credential terlebih dahulu, lalu Connect-ExchangeOnline -Credential $Credential. Microsoft mencatat bahwa jika cara ini gagal, Anda sebaiknya menggunakan -UserPrincipalName sebagai gantinya.

Penyewa pelanggan sebagai mitra. Mitra Cloud Solution Provider dan admin tamu menambahkan -DelegatedOrganization, misalnya Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com. Halaman Microsoft tersebut merujuk pada program Cloud Solution Provider dan granular delegated admin privileges (GDAP) untuk sisi izinnya.

Cloud pemerintah dan regional. -ExchangeEnvironmentName memilih lingkungan. Nilai default-nya adalah O365Default, yang mencakup Microsoft 365 dan GCC. Nilai yang terdokumentasi untuk lingkungan lain adalah O365USGovGCCHigh, O365USGovDoD, O365GermanyCloud, dan O365China.

Skrip tanpa pengawasan. Jangan menyimpan kata sandi admin di dalam skrip. Microsoft mendokumentasikan dua opsi yang lebih baik. Identitas terkelola, misalnya Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com", cocok untuk skrip yang berjalan di Azure. Autentikasi app-only dengan sertifikat cocok untuk semua skenario lainnya. Parameter sidik jari sertifikat hanya didukung di Windows. Penyiapannya mencakup pendaftaran aplikasi di Microsoft Entra ID, izin aplikasi Exchange.ManageAsApp dengan persetujuan admin, sebuah sertifikat, dan peran yang didukung, seperti Exchange Administrator, untuk aplikasi tersebut. Microsoft merekomendasikan prinsip hak akses minimum, jadi jangan berikan Global Administrator kepada aplikasi kecuali memang tidak ada jalan lain. Ikuti artikel Microsoft tersendiri tentang autentikasi app-only, bukan versi ringkasnya.

Dalam layanan Windows, tambahkan -SkipLoadingFormatData untuk menghindari error. Jika muncul error yang menyebut Web Account Manager, modul versi 3.7.2 atau yang lebih baru memiliki sakelar -DisableWAM untuk masalah tersebut.

Jaga skrip tetap ringan: batasi apa yang Anda impor

Koneksi biasanya mengimpor cmdlet Exchange Online yang boleh Anda gunakan. Itu wajar untuk melihat sekilas kotak surat, tetapi skrip yang hanya membutuhkan tiga perintah tidak perlu semuanya. Halaman modul Microsoft memberikan tips khusus di sini. Pemanggilan Connect-ExchangeOnline dan Disconnect-ExchangeOnline yang sering dalam sesi yang sama dapat menyebabkan kebocoran memori. Solusinya adalah terhubung satu kali per skrip, dan menggunakan parameter -CommandName untuk mengimpor hanya cmdlet yang Anda butuhkan.

Misalnya, skrip yang hanya membaca statistik kotak surat cukup membutuhkan satu perintah itu saja. Sebutkan beberapa perintah tersebut, hubungkan sekali di bagian atas, jalankan pekerjaannya, lalu putuskan koneksi sekali di bagian bawah. Skrip yang ditulis dengan cara ini lebih mudah ditinjau, karena baris koneksi memberi tahu pembaca perintah apa saja yang digunakan skrip.

Dua kebiasaan lain membantu di lingkungan tim. Pertama, simpan baris koneksi di satu tempat, misalnya dalam fungsi kecil, sehingga perubahan metode autentikasi cukup dilakukan sekali dan tidak di dua puluh skrip. Kedua, catat akun atau nama aplikasi yang menjalankan skrip, jangan pernah rahasianya. Ketika sesuatu yang tidak terduga berubah di sebuah kotak surat, baris log itu bisa menghemat berjam-jam waktu Anda.

Periksa koneksi dan pemutusan dengan benar

Koneksi tanpa error adalah tanda yang baik, tetapi uji dengan perintah baca yang tidak berbahaya. Get-AcceptedDomain menampilkan domain organisasi Anda dan hanya membutuhkan waktu sebentar untuk dijalankan. Jika domain muncul, sesi Anda berfungsi dan akun Anda memiliki setidaknya akses baca.

Untuk melihat detail tentang koneksi Anda, gunakan Get-ConnectionInformation. Halaman modul Microsoft menunjukkan bahwa Get-PSSession tidak mengembalikan informasi yang berguna untuk koneksi berbasis REST ini, jadi skrip lama yang memeriksa Get-PSSession perlu diubah.

Setelah selesai, jalankan Disconnect-ExchangeOnline. Tambahkan -Confirm:$false di dalam skrip untuk melewati konfirmasi. Artikel koneksi Microsoft memperingatkan bahwa menutup jendela tanpa memutuskan koneksi dapat menghabiskan sesi yang tersedia, dan Anda harus menunggu hingga sesi tersebut kedaluwarsa.

Atasi error koneksi yang paling umum

Sebagian besar kegagalan berasal dari daftar penyebab yang pendek. Periksa satu per satu dari atas ke bawah.

  • Nama pengguna atau kata sandi salah. Ulangi langkahnya dan periksa keduanya. Kedengarannya sepele, tetapi periksa format UPN terlebih dahulu.
  • Akses PowerShell dinonaktifkan untuk akun. Admin dapat mengaktifkannya. Microsoft memiliki artikel tersendiri tentang cara mengaktifkan atau menonaktifkan akses ke PowerShell Exchange Online.
  • Port 80 diblokir. Mintalah tim jaringan Anda untuk mengizinkan TCP port 80 ke Microsoft 365.
  • Akun federasi dengan penyedia identitas yang tidak dapat dijangkau. Jika IDP atau STS Anda tidak tersedia secara publik, Microsoft menyarankan penggunaan akun non-federasi di Microsoft 365 untuk koneksi.
  • "The term 'Update-ModuleManifest' is not recognized". Koneksi memerlukan PowerShellGet dan dependensinya, PackageManagement. Perbarui keduanya lalu mulai ulang PowerShell.
  • "Could not load file or assembly 'System.IdentityModel.Tokens.Jwt'". Modul ini bertentangan dengan modul lain dalam sesi yang sama. Hubungkan di jendela Windows PowerShell yang baru sebelum Anda mengimpor modul lain.
  • Kesalahan di jendela yang dibuka oleh layanan atau tugas terjadwal. Coba -SkipLoadingFormatData.

Jika tidak ada yang di atas berlaku, versi modul menjadi tersangka berikutnya. Jalankan Update-Module -Name ExchangeOnlineManagement dalam cakupan yang sama dengan saat Anda memasangnya, lalu coba lagi di jendela baru.

Kesalahan umum

  • Menggunakan autentikasi dasar (Basic authentication) atau New-PSSession. Microsoft hanya mencantumkan ini sebagai referensi historis dan menyatakan bahwa metode ini tidak lagi didukung. Skrip yang masih membuat sesi dengan cara ini perlu dipindahkan ke Connect-ExchangeOnline.
  • Menutup jendela alih-alih memutuskan koneksi. Hal ini dapat menghabiskan sesi Anda. Jadikan Disconnect-ExchangeOnline sebagai baris terakhir di setiap skrip.
  • Menyimpan kata sandi dalam teks biasa di dalam skrip. Gunakan identitas terkelola (managed identity) atau sertifikat sebagai gantinya.
  • Mengimpor modul lain terlebih dahulu. Konflik dengan modul lain dapat merusak proses masuk. Hubungkan ke Exchange Online terlebih dahulu, atau gunakan jendela baru.
  • Menganggap terhubung berarti memiliki izin. Jika sebuah cmdlet muncul sebagai "not recognized" setelah Anda terhubung, peran Anda tidak menyertakannya. Itu adalah persoalan RBAC, bukan masalah koneksi.

Topik terkait untuk dijelajahi

  • Pasang dan perbarui modul: koneksi bergantung pada modul dan versi PowerShell yang tepat, jadi baca persyaratan modul Exchange Online PowerShell sebelum Anda menerapkannya untuk sebuah tim.
  • Temukan izin untuk sebuah cmdlet: Microsoft menjelaskan cara mencari peran yang dibutuhkan oleh cmdlet Exchange tertentu.
  • Hubungkan ke Security & Compliance PowerShell: modul yang sama menyediakan Connect-IPPSSession, yang tidak tersedia di PowerShell 7 pada Linux atau macOS.
  • Otomatisasi tanpa pengawasan: autentikasi khusus aplikasi (app-only) dan identitas terkelola adalah cara yang aman untuk menjalankan skrip Exchange terjadwal.
  • Tugas massal berskala besar: cmdlet berbasis REST memiliki batas waktu 15 menit, jadi bagi pembaruan anggota massal yang besar ke dalam batch.

Langkah berikutnya

Untuk terhubung ke Exchange Online PowerShell secara andal, mulailah dengan jendela baru, jalankan Connect-ExchangeOnline -UserPrincipalName dengan akun admin Anda, uji dengan Get-AcceptedDomain, dan putuskan koneksi setelah selesai. Kemudian rancang skrip tanpa pengawasan Anda di sekitar identitas terkelola atau sertifikat, sehingga tidak ada yang perlu mengetik atau menyimpan kata sandi.

Entities in this article

Exchange Online PowerShell PowerShell

Related articles

RSS