We all use a minimum of one operating system language on our computers. It may be likely that a company that has many employees may end up with several nationalities. This means, more multilingual user interface (MUI) pack is required in your operating system deployment. When a MUI Pack is installed, the user interface language can be change to one of 33 supported languages.
In this post, we will extend hardware inventory in SCCM 2012 to inventory multilingual user interface pack information.
Here’s the steps in order to achieve this goal :
- Custom WMI Class
- Package Creation
- Package Deployment
- Hardware Inventory
Download Multilingual User Interface Pack kit for hardware inventory in SCCM 2012 from TechNet Gallery.
- Unzip the file
- Copy ps1 in your package source directory
- Copy Operating System Multilingual User Interface Pack.zip where you can reach using UNC path
Let’s get started!
Custom WMI Class
MUI languages information is in WMI class Win32_OperatingSystem. We will create a new custom WMI Win32_OperatingSystemMUILanguages class by using a PowerShell script.
- Open a command prompt or PowerShell with higher privilege (run as administrator)
- Navigate to the place you copy the PowerShell script in the pre-requisites section
- Execute this command : PowerShell.exe –executionpolicy bypass –file Win32_OperatingSystemMUILanguages.ps1
You should see something like that in your WMI repository.
Now that we have test the PowerShell script on one computer, let’s scale to all devices in your environment.
We will create a package to successfully run the PowerShell script on multiple machines.
- Open the SCCM console
- Navigate to Software Library / Application Management / Packages
- Click on Import button in the upper ribbon
- From Import Package Wizard in General windows, select the UNC path where you copy the package ZIP file and click Next
- In File Content, click Next
- Click Close
The package will be created in the package root folder. Move the package to your package source folder.
- Right click on the package and click Properties
- Select Data Source tab
- Check the box The package contains source files and select your source path of PowerShell script
- Click Ok
You’ve finish to import the package. The goal is to run the script silently and repeatedly to ensure that the data is updated after any change to the user. We don’t want the user to be aware each time it is running.
- Right click on the package and select Deploy
- In Content, select the collection you want to execute the PowerShell script and click Next
- Add the distribution points or distribution point groups needed for the deployment and click Next
- Make sure the purpose is Required, then click Next
- Click on New assignment schedule and select As soon as possible
- Configure the rerun behavior to Always rerun program and click Summary
- Revised the deployment details and click Next
- Click Close
As soon as the machines will run the script, the custom WMI class Win32_OperatingSystemMUILanguages will begin to populate.
We are now ready to configure SCCM to collect this information on all the machines. We will use the mechanism of hardware inventory in client settings. In our example, we will use the default client settings but you can easily refine the scope by creating a custom client settings based on the same collection you configure to deploy the package.
- Navigate in your SCCM console to Administration / Client Settings
- Right click on the Default Client Settings and click Properties
- Click on Hardware Inventory on the left side then click on Set Classes
- In Hardware Inventory Classes properties windows, click on Add
- Click on Connect and enter a computer name where the custom WMI class was created
- Make sure Recursive box is checked and click Connect
- Search and select Win32_OperatingSystemMUILanguages
- Click Ok
- From the Hardware Inventory Classes windows properties, you should see this
- You can close the windows by clicking on Ok and again Ok on the client settings properties
Devices will receive new hardware inventory modification at the next machine policy. As soon as the next hardware inventory scan will be executed on the devices, the MUILanguages data will be added in SCCM SQL database.
On the client device to confirm that the hardware inventory scan pick up MUILanguages, you can take a look to InventoryAgent.log in c:\windows\ccm\logs.
Verify the SQL database if it’s getting populated by using SQL Server Management Studio and doing the below query.[pastacode lang=”sql” message=”” highlight=”” provider=”manual” manual=”SELECT%20*%20FROM%20V_GS_OPERATING_SYSTEM_MUI_LANGUAGES”/]