Kontrol Akun Pengguna
Catatan
Panduan desain ini dibuat untuk Windows 7 dan belum diperbarui untuk versi Windows yang lebih baru. Sebagian besar panduan masih berlaku pada prinsipnya, tetapi presentasi dan contoh tidak mencerminkan panduan desain kita saat ini.
Pengalaman Kontrol Akun Pengguna yang dirancang dengan baik membantu mencegah perubahan di seluruh sistem yang tidak diinginkan dengan cara yang dapat diprediksi dan membutuhkan upaya minimal.
Dengan Kontrol Akun Pengguna (UAC) diaktifkan sepenuhnya, administrator interaktif biasanya berjalan dengan hak istimewa pengguna paling sedikit, tetapi mereka dapat meningkatkan diri untuk melakukan tugas administratif dengan memberikan persetujuan eksplisit dengan UI Persetujuan. Tugas administratif tersebut termasuk menginstal perangkat lunak dan driver, mengubah pengaturan di seluruh sistem, melihat atau mengubah akun pengguna lain, dan menjalankan alat administratif.
Dalam status paling tidak istimewa, administrator disebut sebagai Administrator terlindungi. Dalam keadaan ditinggikan, mereka disebut sebagai administrator yang ditinggikan. Sebaliknya, pengguna Standar tidak dapat meningkatkan sendiri, tetapi mereka dapat meminta administrator untuk meningkatkannya menggunakan antarmuka pengguna Kredensial. Akun Administrator Bawaan tidak memerlukan elevasi.
UI Persetujuan, digunakan untuk meningkatkan administrator terlindungi agar memiliki hak istimewa administratif.
Antarmuka pengguna Kredensial, digunakan untuk meningkatkan pengguna Standar.
UAC memberikan manfaat berikut:
- Ini mengurangi jumlah program yang berjalan dengan hak istimewa yang ditingkatkan, oleh karena itu membantu mencegah pengguna mengubah pengaturan sistem mereka secara tidak sengaja, dan membantu mencegah "malware" mendapatkan akses di seluruh sistem. Ketika elevasi ditolak, malware hanya dapat memengaruhi data pengguna saat ini. Tanpa elevasi, malware tidak dapat membuat perubahan di seluruh sistem atau memengaruhi pengguna lain.
- Untuk lingkungan terkelola, pengalaman UAC yang dirancang dengan baik memungkinkan pengguna menjadi lebih produktif saat berjalan sebagai pengguna Standar dengan menghapus pembatasan yang tidak perlu.
- Ini memberi pengguna Standar kemampuan untuk meminta administrator memberi mereka izin untuk melakukan tugas administratif dalam sesi mereka saat ini.
- Untuk lingkungan rumah, ini memungkinkan kontrol orang tua yang lebih baik atas perubahan di seluruh sistem, termasuk perangkat lunak apa yang diinstal.
Pengembang: Untuk informasi implementasi, lihat Mendesain Ulang UI Anda untuk Kompatibilitas UAC.
Di Windows Vista, administrator terlindungi dapat memilih untuk diberi tahu tentang semua perubahan sistem atau tidak ada. Pengaturan default UAC adalah memberi tahu tentang semua perubahan, apa pun asalnya. Ketika Anda diberi tahu, desktop Anda akan redup, dan Anda harus menyetujui atau menolak permintaan dalam kotak dialog UAC sebelum Anda dapat melakukan hal lain di komputer Anda. Peredupan desktop Anda disebut sebagai desktop aman karena program lain tidak dapat berjalan saat redup.
Windows 7 memperkenalkan dua pengaturan UAC perantara untuk administrator Terlindungi, selain keduanya dari Windows Vista. Yang pertama adalah memberi tahu pengguna hanya ketika program membuat perubahan, sehingga administrator secara otomatis ditinggikan ketika mereka membuat perubahan sendiri. Ini adalah pengaturan default UAC di Windows 7, dan juga menggunakan desktop aman.
Pengaturan perantara kedua di Windows 7 sama dengan yang pertama kecuali tidak menggunakan desktop aman.
Windows 7 memperkenalkan dua pengaturan UAC perantara.
Catatan: Panduan yang terkait dengan penulisan kode untuk mendukung Kontrol Akun Pengguna disajikan dalam artikel terpisah.
Konsep desain
Tujuan
Pengalaman Kontrol Akun Pengguna yang dirancang dengan baik memiliki tujuan berikut:
- Hilangkan elevasi yang tidak perlu. Pengguna harus meningkatkan hanya untuk melakukan tugas yang memerlukan hak istimewa admin. Semua tugas lain harus dirancang untuk menghilangkan kebutuhan akan elevasi. Seringkali perangkat lunak warisan memerlukan hak istimewa administrator yang tidak perlu dengan menulis ke bagian registri HKLM atau HKCR, atau File Program atau folder Sistem Windows.
- Bisa diprediksi. Pengguna standar perlu mengetahui tugas mana yang mengharuskan administrator untuk melakukan atau tidak dapat dilakukan di lingkungan terkelola. Administrator perlu mengetahui tugas mana yang memerlukan elevasi. Jika mereka tidak dapat memprediksi kebutuhan akan elevasi secara akurat, mereka lebih cenderung memberikan persetujuan untuk tugas administratif ketika seharusnya tidak.
- Membutuhkan usaha minimal. Tugas yang memerlukan hak administratif harus dirancang untuk memerlukan satu elevasi. Tugas yang memerlukan beberapa elevasi dengan cepat menjadi membosankan.
- Kembali ke hak istimewa paling sedikit. Setelah tugas yang memerlukan hak istimewa admin selesai, program harus kembali ke status hak istimewa paling sedikit.
Alur tugas elevasi
Saat tugas memerlukan elevasi, tugas memiliki langkah-langkah berikut:
Titik masuk. Tugas yang memerlukan elevasi segera ketika UAC diaktifkan sepenuhnya memiliki titik masuk yang ditandai dengan perisai UAC. Dalam hal ini, pengguna harus mengharapkan untuk melihat UI Elevasi segera setelah mengklik perintah tersebut dan mereka harus ekstra berhati-hati ketika mereka melihat UI Elevasi dari tugas yang tidak memiliki perisai.
Dalam contoh ini, kontrol orang tua dan item panel kontrol akun pengguna memerlukan elevasi.
Ketika UAC diaktifkan sebagian atau dimatikan sepenuhnya, perisai UAC masih ditampilkan untuk menunjukkan bahwa tugas melibatkan perubahan tingkat sistem dan karenanya memerlukan elevasi, bahkan jika pengguna mungkin tidak melihat UI Elevasi. Selalu menampilkan perisai UAC untuk tugas yang memerlukan elevasi membuat UI tetap sederhana dan dapat diprediksi.
Elevasi. Untuk Administrator yang Dilindungi, tugas meminta persetujuan menggunakan UI Persetujuan. Untuk pengguna Standar, tugas meminta kredensial administrator menggunakan antarmuka pengguna Kredensial.
Contoh-contoh ini menunjukkan UI Kredensial dan UI Persetujuan.
Proses terpisah yang ditingkatkan. Secara internal, proses baru yang ditingkatkan dibuat untuk melakukan tugas.
Kembali ke hak istimewa paling sedikit. Jika perlu, kembali ke hak istimewa paling sedikit untuk menyelesaikan langkah apa pun yang tidak memerlukan elevasi.
Perhatikan bahwa tugas tidak "ingat" status yang ditingkatkan. Misalnya, jika pengguna menavigasi bolak-balik melalui titik entri elevasi dalam wizard, pengguna harus meningkatkan setiap kali.
Pola penggunaan
Kontrol Akun Pengguna memiliki beberapa pola penggunaan (dalam urutan preferensi):
Bekerja untuk pengguna Standar. Rancang fitur untuk semua pengguna dengan membatasi cakupannya untuk pengguna saat ini. Dengan membatasi pengaturan untuk pengguna saat ini (dibandingkan dengan seluruh sistem), Anda menghilangkan kebutuhan akan UI Elevasi sepenuhnya, dan memungkinkan pengguna untuk menyelesaikan tugas.
Salah:
Dalam contoh ini, pengguna Windows XP harus memiliki hak administratif untuk melihat atau mengubah zona waktu saat ini.
Benar:
Dalam contoh ini, fitur zona waktu didesain ulang di Windows 7 dan Windows Vista agar berfungsi untuk semua pengguna.
Memiliki elemen UI terpisah untuk pengguna dan administrator Standar. Memisahkan tugas pengguna Standar dengan jelas dari tugas administratif. Berikan semua pengguna akses ke informasi baca-saja yang berguna. Mengidentifikasi tugas administratif dengan perisai UAC dengan jelas.
Dalam contoh ini, item panel kontrol Sistem menunjukkan statusnya kepada semua pengguna, tetapi mengubah pengaturan di seluruh sistem memerlukan elevasi.
Izinkan pengguna Standar untuk mencoba tugas, dan meningkatkan kegagalan. Jika pengguna Standar dapat melihat informasi dan dapat membuat beberapa perubahan tanpa elevasi, izinkan mereka untuk mengakses UI dan meminta mereka meningkatkan hanya jika tugas gagal. Pendekatan ini cocok ketika pengguna Standar memiliki akses terbatas, seperti dengan properti file mereka sendiri di Windows Explorer. Ini juga cocok untuk pengaturan pada halaman hub hibrid Panel Kontrol.
Dalam contoh ini, pengguna mencoba mengubah properti file program tetapi tidak memiliki hak istimewa yang memadai. Pengguna dapat meningkatkan dan mencoba lagi.
Hanya berfungsi untuk administrator. Gunakan pendekatan ini hanya untuk fitur dan program administrator! Jika fitur hanya ditujukan untuk administrator (dan tidak memiliki jalur navigasi atau informasi baca-saja yang berguna untuk pengguna Standar), Anda dapat meminta kredensial administrator di titik masuk sebelum menampilkan UI apa pun. Gunakan pendekatan ini untuk panduan panjang dan alur halaman ketika semua jalur memerlukan hak administratif.
Jika seluruh program hanya untuk administrator, tandai untuk meminta kredensial administrator untuk diluncurkan. Windows menampilkan ikon program tersebut dengan overlay perisai UAC.
Dalam contoh ini, program memerlukan hak administratif untuk diluncurkan.
Panduan
Ikon perisai UAC
Kontrol tampilan dengan perisai UAC untuk menunjukkan bahwa tugas memerlukan elevasi segera ketika UAC diaktifkan sepenuhnya, bahkan jika UAC saat ini tidak sepenuhnya diaktifkan. Jika semua jalur wizard dan alur halaman memerlukan elevasi, tampilkan perisai UAC di titik masuk tugas. Penggunaan perisai UAC yang tepat membantu pengguna memprediksi kapan elevasi diperlukan.
Jika program Anda mendukung beberapa versi Windows, tampilkan perisai UAC jika setidaknya satu versi memerlukan elevasi. Karena Windows XP tidak pernah memerlukan elevasi, pertimbangkan untuk menghapus perisai UAC untuk Windows XP jika Anda dapat melakukannya secara konsisten dan tanpa merusak performa.
Jangan tampilkan perisai UAC untuk tugas yang tidak memerlukan elevasi di sebagian besar konteks. Karena pendekatan ini terkadang akan menyesatkan, pendekatan yang disukai adalah menggunakan perintah kontekstual yang terlindungi dengan benar sebagai gantinya.
Karena perintah Folder baru hanya memerlukan elevasi saat digunakan dalam folder sistem, folder tersebut ditampilkan tanpa perisai UAC.
Perisai UAC dapat ditampilkan pada kontrol berikut:
Tombol perintah:
Tombol perintah yang memerlukan elevasi segera.
Tautan perintah:
Tautan perintah yang memerlukan elevasi segera.
Link:
Tautan yang memerlukan elevasi segera.
Menu:
Menu drop-down yang memerlukan elevasi segera.
Karena tugas tidak ingat status yang ditingkatkan, jangan ubah perisai UAC untuk mencerminkan status.
Tampilkan perisai UAC meskipun Kontrol Akun Pengguna telah dinonaktifkan atau pengguna menggunakan akun Administrator Bawaan. Secara konsisten menampilkan perisai UAC lebih mudah diprogram, dan memberi pengguna informasi tentang sifat tugas.
Elevasi
Jika memungkinkan, rancang tugas yang akan dilakukan oleh pengguna Standar tanpa elevasi. Beri semua pengguna akses ke informasi baca-saja yang berguna.
Tingkatkan per tugas, bukan berdasarkan per pengaturan. Jangan mencampur pengaturan pengguna Standar dengan pengaturan administratif dalam satu halaman atau kotak dialog. Misalnya, jika pengguna Standar dapat mengubah beberapa tetapi tidak semua pengaturan, bagi pengaturan tersebut sebagai permukaan UI terpisah.
Salah:
Dalam contoh ini, pengaturan pengguna Standar salah dicampur dengan pengaturan administratif.
Benar:
Dalam contoh ini, pengaturan untuk mengubah tanggal dan waktu berada dalam kotak dialog terpisah, hanya tersedia untuk administrator. Pengaturan zona waktu tersedia untuk pengguna Standar, dan tidak dicampur dengan pengaturan administratif.
Jangan pertimbangkan kebutuhan untuk meningkatkan saat menentukan apakah kontrol harus ditampilkan atau dinonaktifkan. Hal ini terjadi karena:
- Di lingkungan yang tidak dikelola, asumsikan bahwa pengguna Standar dapat meningkatkan dengan meminta administrator. Menonaktifkan kontrol yang memerlukan elevasi akan mencegah pengguna memiliki administrator yang ditinggikan.
- Di lingkungan terkelola, asumsikan bahwa pengguna Standar tidak dapat meningkatkan sama sekali. Menghapus kontrol yang memerlukan elevasi akan mencegah pengguna mengetahui kapan harus berhenti mencari.
Untuk menghilangkan elevasi yang tidak perlu:
- Jika tugas mungkin memerlukan elevasi, tingkatkan selambat mungkin. Jika tugas memerlukan konfirmasi, tampilkan UI elevasi hanya setelah pengguna mengonfirmasi. Jika tugas selalu memerlukan elevasi, tingkatkan pada titik masuknya.
- Setelah ditingkatkan, tetap ditingkatkan sampai hak istimewa yang ditingkatkan tidak lagi diperlukan. Pengguna tidak perlu meningkatkan beberapa kali untuk melakukan satu tugas.
- Jika pengguna harus meningkatkan untuk membuat perubahan tetapi memilih untuk tidak membuat perubahan apa pun, biarkan tombol penerapan positif diaktifkan tetapi menangani penerapan sebagai pembatalan. Melakukannya menghilangkan pengguna harus meningkatkan hanya untuk menutup jendela.
- Salah:
- Dalam contoh ini, tombol Simpan Perubahan dinonaktifkan untuk menghindari elevasi yang tidak perlu, tetapi diaktifkan saat pengguna mengubah pilihan. Namun, tombol penerapan yang dinonaktifkan membuatnya terlihat seperti pengguna benar-benar tidak memiliki pilihan.
Jangan tampilkan pesan kesalahan saat tugas gagal karena pengguna memilih untuk tidak meningkatkan. Asumsikan bahwa pengguna sengaja memilih untuk tidak melanjutkan, sehingga mereka tidak akan menganggap situasi ini sebagai kesalahan.
Salah:
Dalam contoh ini, Pemulihan Fabrikam salah memberikan pesan kesalahan ketika pengguna memutuskan untuk tidak meningkatkan.
Jangan tampilkan peringatan untuk menjelaskan bahwa pengguna mungkin perlu meningkatkan hak istimewa mereka untuk melakukan tugas. Biarkan pengguna menemukan fakta ini sendiri.
Tampilkan UI perisai dan elevasi UAC berdasarkan tabel berikut:
Object Keadaan Di mana menempatkan perisai UAC Kapan harus meningkatkan Program Seluruh program hanya untuk administrator.
Overlay perisai UAC pada ikon program.Tampilkan UI elevasi saat peluncuran. Perintah Seluruh perintah hanya untuk administrator.
Perisai UAC pada tombol perintah atau tautan.Tampilkan UI elevasi saat tombol perintah atau tautan diklik, tetapi setelah konfirmasi apa pun. Perintah Perintah menampilkan informasi baca-saja yang berguna yang sesuai untuk semua pengguna, tetapi perubahan memerlukan hak istimewa admin.
Perisai UAC pada tombol perintah atau tautan untuk membuat perubahan.Tampilkan UI elevasi saat tombol perintah diklik, tetapi setelah konfirmasi apa pun. Perintah Pengguna standar dapat melihat informasi dan mungkin membuat beberapa perubahan tanpa elevasi. memungkinkan pengguna standar untuk mencoba, dan meningkatkan kegagalan.
Jangan tampilkan perisai UAC untuk perintah, tetapi tunjukkan untuk titik masuk elevasi jika perintah gagal.Tampilkan UI elevasi saat pengguna mencoba kembali perintah. Langkah tugas Semua langkah berikutnya memerlukan elevasi.
Perisai UAC pada tombol Berikutnya (atau setara).Tampilkan UI elevasi saat Berikutnya atau tombol penerapan lainnya diklik. Langkah tugas Beberapa cabang memerlukan elevasi.
Perisai UAC pada tautan perintah yang memerlukan elevasi.Tampilkan UI elevasi saat tautan perintah dengan perisai UAC diklik.
UI elevasi
- Jika pengguna menyediakan akun yang tidak valid (nama atau kata sandi) atau tidak memiliki hak istimewa administrator, cukup putar ulang UI Kredensial. Jangan tampilkan pesan kesalahan.
- Jika pengguna membatalkan antarmuka pengguna Kredensial, kembalikan pengguna ke UI asli. Jangan tampilkan pesan kesalahan.
- Jika Kontrol Akun Pengguna telah dinonaktifkan dan pengguna Standar mencoba melakukan tugas yang memerlukan elevasi, berikan pesan kesalahan yang menyatakan "Tugas ini memerlukan hak istimewa administrator. Untuk melakukan tugas ini, Anda harus masuk menggunakan akun administrator."
Dalam contoh ini, Kontrol Akun Pengguna telah dinonaktifkan sehingga pesan kesalahan menjelaskan bahwa pengguna harus menggunakan akun administrator.
Wizard
- Jangan meningkatkan beberapa kali. Setelah wizard ditingkatkan, wizard harus tetap ditingkatkan.
- Jika tugas dilakukan dalam wizard, letakkan perisai UAC pada tombol "Berikutnya" halaman Penerapan (yang harus diberi label yang lebih spesifik). Saat pengguna melakukan:
- Jika halaman berikutnya adalah halaman Kemajuan, lanjutkan ke halaman tersebut dan tampilkan UI elevasi secara modal. Setelah elevasi berhasil, lakukan tugas.
- Jika halaman berikutnya adalah halaman Penyelesaian, lanjutkan ke halaman tersebut (tetapi ganti sementara isinya dengan "Menunggu izin...") dan secara modal menampilkan UI elevasi. Setelah elevasi berhasil, lakukan tugas, lalu tampilkan konten halaman Penyelesaian.
- Jika pengguna membatalkan UI elevasi, kembali ke halaman Penerapan. Melakukannya memungkinkan pengguna untuk mencoba lagi.
- Jika tugas dilakukan setelah wizard selesai, letakkan perisai UAC pada tombol "Selesai" halaman Penerapan (yang harus diberi label yang lebih spesifik). Saat pengguna melakukan:
- Tetap berada di halaman Penerapan dan tampilkan UI elevasi secara modal. Setelah elevasi berhasil, tutup wizard.
- Jika pengguna membatalkan UI elevasi, kembali ke halaman Penerapan. Melakukannya memungkinkan pengguna untuk mencoba lagi.
- Untuk wizard panjang yang hanya ditujukan untuk administrator, Anda dapat meminta kredensial administrator di titik masuk sebelum menampilkan UI apa pun.
Teks
- Jangan gunakan elipsis hanya karena perintah memerlukan elevasi. Kebutuhan untuk meningkatkan ditunjukkan dengan perisai UAC.
Dokumentasi
Ketika merujuk ke Kontrol Akun Pengguna:
- Lihat fitur sebagai Kontrol Akun Pengguna (pada penyebutan pertama) atau UAC (pada penyebutan berikutnya), bukan Akun Pengguna dengan hak istimewa paling sedikit atau LUA.
- Lihat non-administrator sebagai pengguna Standar.
- Lihat administrator komputer bawaan sebagai Administrator bawaan.
Dalam dokumentasi pengguna:
- Lihat tindakan memberikan persetujuan untuk melakukan tugas administratif sebagai memberikan izin.
Dalam pemrograman dan dokumentasi teknis lainnya:
- Lihat tindakan memberikan persetujuan untuk melakukan tugas administratif sebagai elevasi.
- Dalam konteks UAC, lihat administrator sebagai Administrator yang dilindungi ketika tidak ditinggikan, dan Administrator yang ditinggikan setelah elevasi.
- Lihat kotak dialog yang digunakan untuk memasukkan kata sandi sebagai UI Kredensial. Lihat kotak dialog yang digunakan untuk memberikan persetujuan sebagai UI Persetujuan. Lihat keduanya umumnya sebagai UI Elevasi.