windows installer
9 TopicsWhat is the ConX setup experience?
I recently tried to update my windows 11 24H2 and got an error message that says "Installation Failure: Windows failed to install the following update with error 0xC1900106: Windows 11 Insider Preview 10.0.26120.X (ge_release_upr)." While looking up the logs, I found entries like: Determining whether we should run ConX or legacy setup Date-time, Info UI Will launch ConX setup experience , Info UI Initializing Media class driver for audio support , Info UI Initializing media class driver status: 126 , Info UI Launching ConX setup experience , Info UI Inspecting ConX Setup Cmdline , Info UI Launching C:\$WINDOWS.~BT\Sources\SetupPrep.exe I am wondering what is this new setup experience? Is there any configuration which could be changed for using legacy setup? The setup failed. Where could I find detailed diagnostic log? Event viewer did not show any relevant log entry for this failure.138Views0likes1CommentHow to keep Windows 10 Enterprise from using anything other than the C: system drive for installs?
This is a question about the latest patch level of Windows 10 Enterprise 22H2. I work in Enterprise IT; I've been doing it for 25+ years. That includes a lot of offline networks disconnected from the Internet. Many of those networks have heavy restrictions on removable media use and I cannot get into details here. Depending on security policy, it can get end users fired because they triggered security events by running exes which are not allowed to be run from removable media. The problem here is this is now being done automatically by Windows installer. Some time ago, Windows 10 started misbehaving and leveraging removable media as scratch space. I just took a Microsoft SQL Server patch i.e. SQLServer2019-KB5033688-x64.exe copied into C:\temp and ran it to patch a local SQL Express instance. My C: drive was actually NVRAM and had enough room. It started writing stuff to my mounted removable drive, a much slowed HD mounted over USB, without asking. How can we configure a Windows 10 Enterprise system so the Microsoft installers will never do this again? Please note I am NOT asking about restricting whether USB removable media can be used on a system. I am specifically asking about new installer behaviour which started about a year ago where any Windows 10 system seemed to start using whatever drive it wants as scratch space for installs.1KViews0likes3CommentsWindows Installer Ends Prematurely
Hi all. Hopefully someone has an idea of how to fix this. When attempting to install programs I keep getting a notification that the Windows Installer and ended prematurely. I've unregistered and re-registered the service, checked that the service is running. I have also run an integrity check on the system and everything appears to be fine. This one has me stumped.2.3KViews0likes7CommentsPowerShell Automation for Verifying MST
Just finished putting together a script to Apply an MST to an MSI then read out the property table. This is for an automation process to verify a submited MSI and MST meet our packaging standards. Need a little sanity check as working with COM objects is not a strong point for me. Really want to make sure I am closing the files correctly after applying the transform then querying the database. I wasn't able to delete the temp files running in Powershell ISE until I did the ReleaseComObject. I didn't have to do that when working with the straight MSI and just pull the properties from it so I hope this is not corrupting any files. # Apply MST to an MSI # Based on Code from: https://hinchley.net/articles/update-cab-file-and-msi-transform-via-command-line/ $SourceMSI = "C:\Temp\MSI\MSI-x64.msi" $SourceMST = "C:\Temp\MSI\MSI.mst" $TempMSI = "$SourceMSI.tmp" $TempMST = "$SourceMST.tmp" Copy-Item $SourceMSI $TempMSI -Force Copy-Item $SourceMST $TempMST -Force $WindowsInstaller = New-Object -ComObject WindowsInstaller.Installer #Open the database in Direct read/write without Transaction (2) $MSIDatabase1 = $WindowsInstaller.GetType().InvokeMember('OpenDatabase' , 'InvokeMethod' , $Null, $WindowsInstaller, @($TempMSI, 2)) #$MSIDatabase1.applytransform($TempMST, 0) $MSIDatabase1.GetType().InvokeMember('ApplyTransform' , 'InvokeMethod' , $Null , $MSIDatabase1 , @($TempMST, 0)) $Query = ("SELECT Property,Value FROM Property") #Opens a data view to the MSI based on the query created. $View = $MSIDatabase1.GetType().InvokeMember('OpenView', 'InvokeMethod', $null, $MSIDatabase1, ($Query)) $null = $View.GetType().InvokeMember('Execute', 'InvokeMethod', $null, $View, $null) $hash = @{} # Add File information (Note this adds the full File information Porperties so can call with <Var>.File |Select * $hash.Add('File',$TempMSI) WHILE ($Record = $View.GetType().InvokeMember('Fetch', 'InvokeMethod', $null, $View, $null)) { $name = $Record.GetType().InvokeMember('StringData', 'GetProperty', $null, $Record, 1) $value = $hashMSIValue = $Record.GetType().InvokeMember('StringData', 'GetProperty', $null, $Record, 2) $hash.Add($name,$value) } # Push Hash table into a PSCustom object $msiProperties = [pscustomobject]$hash # I'm not sure If I have everything required to close out here properly from applying the transform. $null = $MSIDatabase1.GetType().InvokeMember('Commit' , 'InvokeMethod' , $Null , $MSIDatabase1 , $Null) $null = $view.GetType().InvokeMember('Close', 'InvokeMethod', $null, $view, $null) # Really important part to be able to release the opened files and delete $null = [Runtime.Interopservices.Marshal]::ReleaseComObject($view) $null = [Runtime.Interopservices.Marshal]::ReleaseComObject($MSIDatabase1) $null = [Runtime.Interopservices.Marshal]::ReleaseComObject($WindowsInstaller) [GC]::Collect()2.4KViews1like0Comments