Menggunakan Alat Penginstal Windows untuk Produk dan Patch Inventori
Pengguna dan aplikasi dengan hak administratif dapat menggunakan fungsi Pemasang Windows untuk menginventarkan aplikasi, fitur, komponen, dan patch Pemasang Windows yang diinstal pada sistem.
Dimulai dengan Windows Installer 3.0, pengguna dan aplikasi yang memiliki hak istimewa administrator dapat menghitung aplikasi, fitur, komponen, dan patch Pemasang Windows yang diinstal pada sistem oleh semua pengguna. Administrator dan aplikasi dapat memperoleh informasi tentang produk atau patch untuk pengguna tertentu atau semua pengguna dalam sistem. Aplikasi dapat memperoleh status fitur atau status komponen untuk pengguna tertentu.
Fungsi inventarisasi yang tersedia dimulai dengan Pemasang Windows 3.0 dapat membatasi cakupan item yang akan ditemukan oleh konteks penginstalan dan konteks pengguna. Ada tiga konteks penginstalan yang mungkin: dikelola per pengguna, per mesin, dan per pengguna. Konteks pengguna dapat menjadi pengguna tertentu atau semua pengguna dalam sistem.
Versi fungsi inventarisasi Pemasang Windows yang lebih lama dari Windows Installer 3.0 hanya dapat menghitung item yang diinstal pada sistem dalam konteks komputer atau dalam konteks per pengguna pengguna saat ini. Batasan ini mencegah inventarsi lengkap semua produk dan patch Pemasang Windows yang diinstal dalam sistem oleh pengguna selain pengguna saat ini.
- Menghitung Produk
- Menghitung Patch
- Mendapatkan Informasi Produk
- Mendapatkan Informasi Patch
- Mendapatkan Informasi Status Komponen
- Mendapatkan Informasi Status Fitur
Menghitung Produk
Gunakan fungsi MsiEnumProductsEx untuk menghitung aplikasi Pemasang Windows yang diinstal dalam sistem. Fungsi ini dapat menemukan semua penginstalan per mesin dan penginstalan aplikasi per pengguna (terkelola dan tidak terkelola) untuk pengguna saat ini dan pengguna lain dalam sistem. Gunakan parameter dwContext untuk menentukan konteks penginstalan yang akan ditemukan. Anda dapat menentukan salah satu atau kombinasi apa pun dari kemungkinan konteks penginstalan. Gunakan parameter szUserSid untuk menentukan konteks pengguna aplikasi yang akan ditemukan.
Menghitung Patch
Gunakan fungsi MsiEnumPatchesEx untuk menemukan patch yang diterapkan untuk aplikasi. Fungsi ini dapat menemukan patch yang diterapkan untuk aplikasi tertentu atau untuk semua aplikasi dalam sistem. Fungsi ini dapat menemukan patch yang diterapkan ke semua penginstalan per mesin dan penginstalan aplikasi per pengguna (dikelola dan tidak dikelola) untuk pengguna saat ini dan pengguna lain dalam sistem.
Anda dapat menggunakan konteks penginstalan dan konteks pengguna untuk membatasi enumerasi patch ke konteks tertentu atau di semua konteks. Gunakan parameter dwContext untuk menentukan konteks penginstalan yang akan ditemukan. Anda dapat menentukan salah satu atau kombinasi apa pun dari kemungkinan konteks penginstalan. Gunakan parameter szUserSid untuk menentukan konteks pengguna aplikasi yang akan ditemukan.
Untuk menghitung patch yang diterapkan untuk semua produk yang diiklankan atau diinstal oleh semua pengguna dalam sistem
- Panggil fungsi MsiEnumPatchesEx .
- Gunakan NULL untuk nilai parameter szProductCode .
- Gunakan "s-1-1-0" untuk nilai parameter szUserSid .
- Gunakan "MSIINSTALLCONTEXT_ALL" untuk nilai parameter dwContext .
Untuk menghitung patch yang diterapkan untuk semua produk yang diiklankan atau diinstal oleh semua pengguna dalam sistem
Panggil fungsi MsiEnumProductsEx .
- Gunakan NULL untuk nilai parameter szProductCode .
- Gunakan "s-1-1-0" untuk nilai parameter szUserSid .
- Gunakan "MSIINSTALLCONTEXT_ALL" untuk nilai parameter dwContext .
Fungsi ini menyediakan kode produk, konteks pengguna, dan konteks penginstalan untuk setiap aplikasi yang ditemukan.
Untuk setiap aplikasi yang dijumlahkan di langkah 1, panggil MsiEnumPatchesEx untuk menghitung patch.
Gunakan kode produk, konteks pengguna, dan konteks penginstalan yang diperoleh dari MsiEnumProductsEx untuk nilai szProductCode, szUserSid, dan dwContext, dan setiap panggilan fungsi MsiEnumProductsEx .
Mendapatkan Informasi Produk
Gunakan fungsi MsiGetProductInfoEx untuk mendapatkan informasi tentang aplikasi yang diiklankan atau diinstal pada sistem, dan properti yang dapat diambil. Fungsi ini bisa mendapatkan informasi untuk instans aplikasi yang diinstal di bawah akun pengguna selain pengguna saat ini, tetapi tidak dapat meminta instans produk yang diiklankan di bawah konteks tidak terkelola per pengguna untuk akun pengguna selain pengguna saat ini.
Anda dapat menentukan konteks penginstalan dan konteks pengguna untuk membatasi informasi untuk aplikasi yang diinstal dalam konteks tertentu. Gunakan parameter dwContext untuk menentukan konteks penginstalan yang akan ditemukan. Anda hanya dapat menentukan salah satu konteks penginstalan yang mungkin. Gunakan parameter szUserSid untuk menentukan konteks pengguna aplikasi yang akan ditemukan.
Mendapatkan Informasi Patch
Aplikasi dapat memanggil fungsi MsiGetPatchInfoEx untuk meminta informasi tentang aplikasi patch ke instans produk tertentu. Properti seperti LocalPackage, Transforms, dan State dapat diambil menggunakan fungsi ini. Tidak semua nilai properti dijamin tersedia untuk aplikasi per pengguna yang tidak dikelola jika pengguna saat ini tidak masuk ke komputer. Anda hanya dapat menentukan salah satu konteks penginstalan yang mungkin.
Anda dapat menentukan konteks penginstalan dan konteks pengguna untuk membatasi informasi untuk patch yang diterapkan ke aplikasi yang diinstal dalam konteks tertentu. Gunakan parameter dwContext untuk menentukan konteks penginstalan yang akan ditemukan. Anda hanya dapat menentukan salah satu konteks penginstalan yang mungkin. Gunakan parameter szUserSid untuk menentukan konteks pengguna aplikasi yang akan ditemukan.
Mendapatkan Informasi Status Komponen
Aplikasi dapat memanggil fungsi MsiQueryComponentState untuk mendapatkan status terinstal untuk komponen. Fungsi ini menentukan apakah komponen diinstal secara lokal atau diinstal untuk dijalankan dari sumber. Fungsi ini dapat mengkueri komponen instans aplikasi yang diinstal di bawah akun pengguna selain pengguna saat ini, asalkan produk tidak diiklankan di bawah konteks per pengguna yang tidak dikelola untuk akun pengguna selain pengguna saat ini.
Anda dapat menentukan konteks penginstalan dan konteks pengguna untuk mendapatkan status komponen untuk aplikasi yang diinstal dalam konteks tertentu. Gunakan parameter dwContext untuk menentukan konteks penginstalan yang akan ditemukan. Anda hanya dapat menentukan salah satu konteks penginstalan yang mungkin. Gunakan parameter szUserSid untuk menentukan konteks pengguna aplikasi yang akan ditemukan.
Mendapatkan Informasi Status Fitur
Aplikasi dapat memanggil fungsi MsiQueryFeatureStateEx untuk mendapatkan status terinstal untuk fitur produk. Fungsi ini menentukan apakah fitur diiklankan, diinstal secara lokal, atau diinstal untuk dijalankan dari sumbernya. Fungsi ini dapat digunakan untuk mengkueri fitur apa pun dari instans aplikasi yang diinstal di bawah akun komputer atau konteks apa pun di bawah akun pengguna saat ini atau konteks yang dikelola per pengguna di bawah akun pengguna apa pun selain pengguna saat ini. Fungsi ini tidak dapat meminta aplikasi yang diinstal di bawah konteks per pengguna yang tidak dikelola untuk akun pengguna selain pengguna saat ini. Anda hanya dapat menentukan salah satu konteks penginstalan yang mungkin.
Anda dapat menentukan konteks penginstalan dan konteks pengguna untuk mendapatkan status fitur untuk aplikasi yang diinstal dalam konteks tertentu. Gunakan parameter dwContext untuk menentukan konteks penginstalan yang akan ditemukan. Anda hanya dapat menentukan salah satu konteks penginstalan yang mungkin. Gunakan parameter szUserSid untuk menentukan konteks pengguna aplikasi yang akan ditemukan.