Konteks Penginstalan
Pemasang Windows dapat menginstal paket di komputer ke dalam dua konteks penginstalan: per mesin dan per pengguna. Penginstalan paket per mesin diperlukan untuk memungkinkan semua pengguna komputer mengakses dan menggunakan aplikasi. Karena penginstalan per mesin membuat perubahan pada sistem yang memengaruhi semua pengguna, pengguna standar yang memiliki hak istimewa terbatas dapat dicegah menginstal paket ke dalam konteks per mesin tanpa terlebih dahulu mendapatkan izin.
Anda dapat menentukan konteks penginstalan dengan menulis paket untuk penginstalan per pengguna atau per komputer dan menggunakan properti ALLUSERS dan MSIINSTALLPERUSER . Berdasarkan properti ini, Pemasang Windows secara otomatis mengalihkan nilai properti folder dan pendaftaran ke lokasi untuk konteks per pengguna atau per komputer.
Catatan
Properti MSIINSTALLPERUSER , yang tersedia dimulai dengan Windows Installer 5.0 dan Windows Server 2008 R2 dan Windows 7, dapat memfasilitasi pengembangan satu paket yang mampu diinstal baik dalam konteks per mesin atau per pengguna. Untuk informasi tentang mengembangkan paket tujuan ganda yang memberi pengguna kemampuan untuk memilih konteks penginstalan pada waktu penginstalan, lihat Penulisan Paket Tunggal. Pemasang Windows mengabaikan properti MSIINSTALLPERUSER jika nilai ALLUSERS bukan 2. Pemasang Windows selalu mengatur ulang nilai ALLUSERS ke 1 ketika diinstal dalam konteks per komputer dan mengatur ulang nilai ALLUSERS ke string kosong ("") ketika diinstal dalam konteks per pengguna.
Pengalihan Pintasan
Tabel berikut membandingkan lokasi pintasan untuk konteks penginstalan per mesin dan per pengguna.
Konteks Penginstalan Per-Machine (ALLUSERS=1) | Per-User Konteks Penginstalan (ALLUSERS="") |
---|---|
Aplikasi muncul di bawah Tambahkan/Hapus Program di Panel Kontrol untuk semua pengguna komputer. |
Aplikasi hanya muncul di bawah Tambahkan/Hapus Program pada Panel Kontrol untuk pengguna yang telah menginstal aplikasi. |
Pintasan diinstal ke profil Semua Pengguna. |
Pintasan hanya diinstal ke profil pengguna tersebut. |
Ikon dan transformasi disimpan di %WINDOWS%\Installer\{ProductCode}. |
Ikon dan transformasi disimpan di %USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID} |
Pengalihan Registri
Tabel berikut membandingkan lokasi entri registri untuk konteks penginstalan per mesin dan per pengguna.
Konteks Penginstalan Per-Machine (ALLUSERS=1) | Per-User Konteks Penginstalan (ALLUSERS="") |
---|---|
Pemasang Windows menulis atau menghapus nilai registri yang dimasukkan dalam tabel Registri dan tabel RemoveRegistry , dengan nilai -1 di kolom Root, di bawah HKEY_LOCAL_MACHINE. |
Pemasang Windows menulis atau menghapus nilai registri yang dimasukkan dalam tabel Registri dan tabel RemoveRegistry , dengan nilai -1 di kolom Root, di bawah HKEY_CURRENT_USER. |
Pemasang Windows menulis atau menghapus nilai registri yang dimasukkan dalam tabel Registri dan tabel RemoveRegistry, dengan nilai msidbRegistryRootClassesRoot (0) di kolom Root, di bawahKelasPerangkat Lunak\HKLM\. |
Pemasang Windows menulis atau menghapus nilai registri yang dimasukkan dalam tabel Registri dan tabel RemoveRegistry, dengan nilai msidbRegistryRootClassesRoot (0) di kolom Root, di bawahKelasPerangkat Lunak\HKCU\. |
Pendaftaran COM ditulis keKelasPerangkat Lunak\HKLM\. |
Pendaftaran COM ditulis keKelasPerangkat Lunak\HKCU\. |
Pengalihan Folder
Pemasang Windows mengatur nilai properti folder ke jalur lengkap folder masing-masing untuk konteks penginstalan.
Catatan
Folder diidentifikasi oleh konstanta KNOWNFOLDERID dan CSIDL mereka. Dimulai dengan Windows Vista, aplikasi harus menggunakan fungsi SHGetKnownFolderPath dan KNOWNFOLDERID untuk menentukan jalur lengkap ke folder khusus. Aplikasi yang ada yang menggunakan fungsi SHGetFolderPath dan ID item khusus konstan (CSIDL) akan terus berfungsi.
Tabel berikut membandingkan lokasi folder yang digunakan saat Pemasang Windows menginstal paket dalam konteks penginstalan per mesin atau per pengguna.
Konteks Penginstalan Per-Machine (ALLUSERS=1) | Per-User Konteks Penginstalan (ALLUSERS="") |
---|---|
DesktopFolder Jalur lengkap folder Desktop untuk semua pengguna. FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY) |
DesktopFolder Jalur lengkap folder Desktop untuk pengguna saat ini. FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY) |
ProgramMenuFolder Jalur lengkap folder Menu Program untuk semua pengguna. FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS) |
ProgramMenuFolder Jalur lengkap folder Menu Program untuk pengguna saat ini. FOLDERID_Programs (CSIDL_PROGRAMS) |
StartMenuFolder Jalur lengkap folder Menu Mulai untuk semua pengguna. FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU) |
StartMenuFolder Jalur lengkap folder Menu Mulai untuk pengguna saat ini. FOLDERID_StartMenu (CSIDL_STARTMENU) |
StartUpFolder Jalur lengkap folder Start Up untuk semua pengguna. FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP) |
StartUpFolder Jalur lengkap folder Start Up untuk pengguna saat ini. FOLDERID_Startup (CSIDL_STARTUP) |
TemplateFolder Jalur lengkap folder Templat untuk semua pengguna. FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES) |
TemplateFolder Jalur lengkap folder Templat untuk pengguna saat ini. FOLDERID_Templates (CSIDL_TEMPLATES) |
AdminToolsFolder Jalur lengkap folder Admin Tools untuk semua pengguna. FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS) |
AdminToolsFolder Jalur lengkap folder Admin Tools untuk pengguna saat ini. FOLDERID_AdminTools (CSIDL_ADMINTOOLS) |
AppDataFolder Jalur lengkap folder Menu Program. Windows Vista dan yang lebih baru: Jalur lengkap folder Roaming. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
AppDataFolder Jalur lengkap folder Menu Program. Windows Vista dan yang lebih baru: Jalur lengkap folder Roaming. FOLDERID_RoamingAppData (CSIDL_APPDATA) |
CommonAppDataFolder Jalur lengkap folder yang berisi data aplikasi untuk semua pengguna. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
CommonAppDataFolder Jalur lengkap folder yang berisi data aplikasi untuk semua pengguna. FOLDERID_ProgramData (CSIDL_COMMON_APPDATA) |
FavoritesFolder Jalur lengkap folder Favorit untuk pengguna saat ini. FOLDERID_Favorites (CSIDL_FAVORITES) |
FavoritesFolder Jalur lengkap folder Favorit untuk pengguna saat ini. FOLDERID_Favorites (CSIDL_FAVORITES) |
PersonalFolder Jalur lengkap folder Dokumen Saya atau folder Pribadi untuk pengguna saat ini. Windows Vista dan yang lebih baru: Jalur lengkap folder Dokumen untuk pengguna saat ini. FOLDERID_Documents (CSIDL_PERSONAL) |
PersonalFolder Jalur lengkap folder Dokumen Saya atau folder Pribadi untuk pengguna saat ini. Windows Vista dan yang lebih baru: Jalur lengkap folder Dokumen untuk pengguna saat ini. FOLDERID_Documents (CSIDL_PERSONAL) |
SendToFolder Jalur lengkap folder SendTo. FOLDERID_SendTo (CSIDL_SENDTO) |
SendToFolder Jalur lengkap folder SendTo. FOLDERID_SendTo (CSIDL_SENDTO) |
FontsFolder Jalur lengkap folder Font Sistem. FOLDERID_Fonts (CSIDL_FONTS) |
FontsFolder Jalur lengkap folder Font Sistem. FOLDERID_Fonts (CSIDL_FONTS) |
Versi Windows ProgramFilesFolder32-bit: Nilai properti adalah jalur lengkap ke folder File Program untuk semua pengguna (misalnya, %ProgramFiles%.) Pengidentifikasi untuk folder ini FOLDERID_ProgramFiles (CSIDL_PROGRAM_FILES.) Pengidentifikasi FOLDERID_ProgramFiles dan FOLDERID_ProgramFilesX86 mewakili folder yang sama. File dalam folder ini dapat diakses oleh semua pengguna. Windows versi 64-bit: Nilai properti adalah jalur lengkap ke folder File Program (x86) untuk semua pengguna (misalnya, %ProgramFiles(x86)%.) Pengidentifikasi untuk folder ini FOLDERID_ProgramFilesX86 (CSIDL_PROGRAM_FILESX86.) File dalam folder ini dapat diakses oleh semua pengguna. |
ProgramFilesFolderWindows Server 2008 R2 dan Windows 7: Nilai properti adalah jalur lengkap folder Program untuk pengguna saat ini (misalnya, %LocalAppData%\Programs.) Pengidentifikasi untuk folder ini FOLDERID_UserProgramFiles pada sistem 32-bit dan 64-bit. Tidak ada pengidentifikasi CSIDL yang setara untuk FOLDERID_UserProgramFiles. File dalam folder ini hanya dapat diakses oleh pengguna yang menginstal folder ini. Windows Server 2008 dan yang lebih lama, serta Windows Vista dan yang lebih lama: Tidak tersedia folder berkemampuan per pengguna. Jalur ini sama dengan konteks per komputer (misalnya, %ProgramFiles% atau %ProgramFiles(x86)%.) File dalam folder ini dapat diakses oleh semua pengguna. |
CommonFilesFolderversi 32-bit Windows: Nilai properti adalah jalur lengkap ke folder File Umum untuk semua pengguna (misalnya, %ProgramFiles%\Common Files.) Pengidentifikasi untuk folder ini FOLDERID_ProgramFilesCommon (CSIDL_PROGRAM_FILES_COMMON.) Pengidentifikasi FOLDERID_ProgramFilesCommon dan FOLDERID_ProgramFilesCommonX86 mewakili folder yang sama. File dalam folder ini dapat diakses oleh semua pengguna. Windows versi 64-bit: Nilai properti adalah jalur lengkap ke folder File Umum untuk semua pengguna (misalnya, %ProgramFiles(x86)%\Common Files.) Pengidentifikasi untuk folder ini FOLDERID_ProgramFilesCommonX86 (CSIDL_PROGRAM_FILES_COMMONX86.) File dalam folder ini dapat diakses oleh semua pengguna. |
CommonFilesFolderWindows Server 2008 R2 dan Windows 7: Nilai properti adalah jalur lengkap folder Umum untuk pengguna saat ini (misalnya, %LocalAppData%\Programs\Common.) Pengidentifikasi untuk folder ini FOLDERID_UserProgramFilesCommon pada sistem 32-bit dan 64-bit. Tidak ada pengidentifikasi CSIDL yang setara untuk FOLDERID_UserProgramFilesCommon. File dalam folder ini hanya dapat diakses oleh pengguna yang menginstal folder ini. Windows Server 2008 dan yang lebih lama, serta Windows Vista dan yang lebih lama: Tidak tersedia folder berkemampuan per pengguna. Jalur sama seperti dalam konteks per komputer (misalnya, %ProgramFiles%\Common Files atau %ProgramFiles(x86)%\Common Files.) File dalam folder ini dapat diakses oleh semua pengguna. |
ProgramFiles64Folder Nilai properti adalah jalur lengkap ke folder File Program untuk semua pengguna (misalnya, %ProgramFiles%.) Pengidentifikasi untuk folder ini FOLDERID_ProgramFilesX64. Tidak ada pengidentifikasi CSIDL yang setara dengan FOLDERID_ProgramFilesX64. Ini adalah folder yang telah ditentukan sebelumnya untuk komponen 64-bit dan berlaku untuk sistem 64-bit. File dalam folder ini dapat diakses oleh semua pengguna. |
ProgramFiles64FolderWindows Server 2008 R2 dan Windows 7: Nilai properti adalah jalur lengkap folder Program untuk pengguna saat ini (misalnya, %LocalAppData%\Programs.) Pengidentifikasi untuk folder ini FOLDERID_UserProgramFiles. Tidak ada pengidentifikasi CSIDL yang setara untuk FOLDERID_UserProgramFiles. File dalam folder ini hanya dapat diakses oleh pengguna yang menginstal folder ini. Windows Server 2008 dan yang lebih lama, serta Windows Vista dan yang lebih lama: Tidak tersedia folder berkemampuan per pengguna. Jalur ini sama dengan konteks per komputer (misalnya, %ProgramFiles%.) File dalam folder ini dapat diakses oleh semua pengguna. |
CommonFiles64Folder Nilai properti adalah jalur lengkap ke folder File Umum untuk semua pengguna (misalnya, %ProgramFiles%\Common Files.) Ini adalah folder yang telah ditentukan sebelumnya untuk komponen 64-bit dan berlaku untuk sistem 64-bit. Pengidentifikasi untuk folder ini FOLDERID_ProgramFilesCommonX64. Tidak ada pengidentifikasi CSIDL yang setara dengan FOLDERID_ProgramFilesCommonX64. File dalam folder ini dapat diakses oleh semua pengguna. |
CommonFiles64FolderWindows Server 2008 R2 dan Windows 7: Nilai properti adalah jalur lengkap folder Umum untuk pengguna saat ini (misalnya, %LocalAppData%\Programs\Common.) Pengidentifikasi untuk folder ini FOLDERID_UserProgramFilesCommon. Tidak ada pengidentifikasi CSIDL yang setara untuk FOLDERID_UserProgramFilesCommon. File dalam folder ini hanya dapat diakses oleh pengguna yang menginstal folder ini. Windows Server 2008 dan yang lebih lama, serta Windows Vista dan yang lebih lama: Tidak tersedia folder berkemampuan per pengguna. Jalur ini sama dengan konteks per komputer (misalnya, %ProgramFiles%\Common Files.) File dalam folder ini dapat diakses oleh semua pengguna. |
WindowsFolder Jalur lengkap folder Windows. FOLDERID_Windows (CSIDL_WINDOWS) |
WindowsFolder Jalur lengkap folder Windows. FOLDERID_Windows (CSIDL_WINDOWS) |
SystemFolder Jalur lengkap folder Sistem. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
SystemFolder Jalur lengkap folder Sistem. FOLDERID_SystemX86 (CSIDL_SYSTEMX86) |
LocalAppDataFolder Jalur lengkap folder yang berisi aplikasi lokal (nonroaming). FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
LocalAppDataFolder Jalur lengkap folder yang berisi aplikasi lokal (nonroaming). FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA) |
MyPicturesFolder Jalur lengkap folder Gambar atau Gambar Saya. FOLDERID_Pictures (CSIDL_MYPICTURES) |
MyPicturesFolder Jalur lengkap folder Gambar atau Gambar Saya. FOLDERID_Pictures (CSIDL_MYPICTURES) |
PrintHoodFolder Jalur lengkap folder PrintHood. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
PrintHoodFolder Jalur lengkap folder PrintHood. FOLDERID_PrintHood (CSIDL_PRINTHOOD) |
NetHoodFolder Jalur lengkap folder NetHood. FOLDERID_NetHood (CSIDL_NETHOOD) |
NetHoodFolder Jalur lengkap folder NetHood. FOLDERID_NetHood (CSIDL_NETHOOD) |
RecentFolder Jalur lengkap folder Terbaru. FOLDERID_Recent (CSIDL_RECENT) |
RecentFolder Jalur lengkap folder Terbaru. FOLDERID_Recent (CSIDL_RECENT) |
Catatan
Aplikasi dapat memanggil fungsi MsiEnumProducts atau MsiEnumProductsEx untuk menghitung semua produk yang diinstal pada sistem. Aplikasi kemudian dapat mengambil informasi tentang konteks penginstalan produk ini dengan memanggil fungsi MsiGetProductInfoEx atau MsiGetProductInfo . Untuk informasi, lihat Menentukan Konteks Penginstalan.