MSIX – Using the Bulk Conversion Scripts

MSIX – Using the Bulk Conversion Scripts

This article is contributed. See the original author and article here.

 


 


Hello everyone, this is Ingmar Oosterhoff, a Modern Workplace Customer Engineer at Microsoft. In an earlier series of posts we set up our environment to do batch sequencing using App-V. In this blog I will explain how we can set up our machine so we can do batch conversion of our application installers into MSIX packages 


We will be using the Bulk conversion scripts from the MSIX Toolkit. 


 

In my example below I will be using Hyper-V VMs on my laptop, but it is also a possibility to use remote machines to do the heavy lifting. 


A benefit of using Hyper-V VMs on my machine is that the Bulk conversion scripts can utilize the checkpoint functionality, so it nicely reverts the VMs to a clean state to be re-used for the next app. 


 


Let us start by preparing the host machine, my laptop. 


The shopping list: 



  • MSIX Packaging tool 

  • Hyper V 

  • Some VMs 

  • Share containing installers. 

  • Signing certificate. 



  • Signtool.exe 


 


The MSIX Packaging Tool can be installed from the Microsoft Store, so that is an easy step. 


 










Enabling Hyper-V is not that much more difficult. 


Via Control PanelPrograms we go to “Turn Windows features on or off” 


When I scroll a bit down, I can enable Hyper-V on my machine. 


 


After enabling Hyper-V, I needed to restart my machine, and I am good to go! 


 


 



 

Turn Windows features onTurn Windows features on


 



 


(I could have used PowerShell to enable Hyper-V) 


 


 


 


 

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 

 


 


 


 


More on enabling Hyper-V: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v 


Signing Certificate 

















I need to sign the newly created MSIX packages with a certificate, so on my laptop I’ve created a folder MSIX on my C: drive, in which I have created a folder Signing, and this folder contains the certificate I am going to use to sign the packages, and signtool.exe, which is part of the Windows 10 SDK. (Have a look at our earlier post on how to set that up) 



bulkConvert3.png

 


All done. 


The host machine, my laptop, is prepared! 


 


Note: 


If I want to use remote machines, the shopping list would be a little longer, as I would have to enable PowerShell Remoting, and, if the remote machine is not in the same domain as my machine, or just in a workgroup, add the name(s) or IP address(es) of the remote machine(s) to WinRM Trusted Host. 



  • To enable PowerShell remoting, run PowerShell as an admin and execute the following command:

    Enable-PSRemoting -force

     


  • To add the remote machine to WinRM Trusted Host, run PowerShell as an admin and execute the following command:

    Set-Item WSMan:localhostClientTrustedHosts -Value <RemoteMachineName> 

     
    (Don’t forget to replace <RemoteMachineName> with the actual name or IP address of the remote machine.) 



 


Some VMs 


Now I am ready to create some Virtual machines on my laptop. 


 










I would recommend using the Hyper-V Quick Create “MSIX Packaging Tool Environment” template to be used, as it is already pre-configured to meet all requirements. 


To do so, start the Hyper-V Manager, right click on your machine name, and click Quick Create…  


If you are not going to use the Quick Create template, make sure to install the MSIX Packaging Tool driver. 


 



 

bulkConvert4.png


 



 


 










Top of the list you find MSIX Packaging Tool Environment 


 



 

bulkConvert5.png


 



 


The default name of this VM (virtual machine) will be MSIX Packaging Tool Environment, but since I want to utilize multiple machines for my batch conversion to speed thing up, I am renaming this first one to MSIX01 by clicking More options and changing MSIX Packaging Tool Environment to MSIX01 in the Name field. 


Once the first one has been created, repeat these steps to create another VM. This one I am naming MSIX02. 


It will not download the image again, instead re-use what was downloaded earlier and creates the second VM. 


Memory wise my machine would not be able to run more than 3VMs at the same time, so I am going to do the conversion using 3 machines. 


Every time Quick Create is ready with creating the machine, it shows the window above. 


Click Edit settings… and uncheck the box in front of Use automatic checkpoints 


Here you can also change the amount of memory the VM will use. I am going to leave that as it is. 


Click Ok to save your changes, and click the blue Connect button.  


 


The window of your VM shows up, and you can start the VM by clicking the start button. 


 9.png


 

After going through the region and keyboard choices, I went for Domain Join instead, and created user (Larry) and a password (kensentme). (definitely going to delete these machines afterwards) 


 


I am setting up all 3 VMs the same, running Windows Updates, rebooting the machines until they are all good to go. 


Installers 


Right! 


Now have the VMs ready, it is time to prepare a location where the VMs can get the installers from. On my file server I have created a folder named Installers, to store the installers I want to convert. 10.png


  










Open File Explorer on the 3 VMs, and go to the created folder, HOSTRepositoryinstallers in my example. Windows Security will prompt for name and password, which I will enter, and I am making sure to check the box to remember my credentials. 


When the Batch Conversions scripts be executed, reaching the installers should be no problem this way. 


 



11.png



 


VMs: check! Installers: check! Signing Certificate: check! Sign tool: check! 


Let us get to work on those Batch Conversion scripts. 


The Scripts 










In the MSIX folder I created earlier on the C: drive, I’ve created a folder BatchConversion, and created the 4 PowerShell files that are shown in the toolkit at https://github.com/microsoft/MSIX-Toolkit/tree/master/Scripts/BatchConversion 


(I have created the files with Visual Studio Code, and copy pasted the contents into those files.) 



 

12.png


 



 


Batch_convert.ps1 


Contains the functions that will create the template for the MSIX packager to execute, and the conversion jobs. No changes are needed to this file. 


 


Entry.ps1 


This file contains all the parameters for the conversion jobs. 


We will start on line 10 by specifying the names of the VMs we have created. 


 


13.png


 

 


 


 


 


 


 


 


 


Since I am not going to use remote machines, I have uncommented line 15. 


 


Line 18 to 43 contains conversion parameters. 


This holds all the info of the applications you want to convert. Out of each entry a template is going to be created, which will be execute by the MSIX packaging tool. A great description of the different parameters can be found at 


https://docs.microsoft.com/en-us/windows/msix/toolkit/msix-toolkit-msixbatchconversion#conversionsparameters 


 


The one that seems the most challenging to fill is the PublisherName parameter. The documentation states: 
PublisherName = ”CN=YourCompany”; Certificate Publisher information - must match signing certificate 



A straightforward way of getting the exact PublisherName is by PowerShell. 


 


 


 


 

 $certfile = "C:MSIXSigningNameOfYourCertificate.cer" 
(Get-PfxCertificate $certfile).Subject

 


 


 


 


We can now turn our attention to the ConversionParameters. 


We can now modify the examples In the entry.ps1 script to what we need. 


The example reads: 


 


 


 


 

$conversionsParameters = @( 
    @{ 
        InstallerPath = "PathToYourInstallerYourInstaller.msi"; 
        PackageName = "YourApp"; 
        PackageDisplayName = "Your App"; 
        PublisherName = "CN=YourCompany"; 
        PublisherDisplayName = "YourCompany"; 
        PackageVersion = "1.0.0.0" 
    }, 
    @{ 
       InstallerPath = "PathToYourInstallerYourInstaller2.msi"; 
       PackageName = "YourApp2"; 
       PackageDisplayName = "Your App2"; 
       PublisherName = "CN=YourCompany"; 
       PublisherDisplayName = "YourCompany"; 
       PackageVersion = "1.0.0.0" 
    }, 
    @{ 
       InstallerPath = "PathToYourInstallerYourInstaller3.msi"; 
       PackageName = "YourApp3"; 
       PackageDisplayName = "Your App3"; 
       PublisherName = "CN=YourCompany"; 
       PublisherDisplayName = "YourCompany"; 
       PackageVersion = "1.0.0.0" 
    } 
) 

 


 


 


 


After changing this to the installers I want to run, and providing the additional parameters it reads: 


 


 


 


 

$conversionsParameters = @( 
    @{ 
        InstallerPath = "host.b77.ingmaro.netRepositoryinstallersRDCman.msi" 
        PackageName = "RDCman"; 
        PackageDisplayName = "Remote Desktop Connection Manager"; 
        PublisherName = "CN=Contoso Software (FOR LAB USE ONLY), O=Contoso Corporation, C=US"; 
        PublisherDisplayName = "Microsoft"; 
        PackageVersion = "1.0.0.0" 
    }, 
    @{ 
       InstallerPath = "host.b77.ingmaro.netRepositoryinstallersDynamics365-USD-4.1.1.1397-amd64.exe" 
       PackageName = "Dynamics365USD"; 
       PackageDisplayName = "Dynamics365USD"; 
       PublisherName = "CN=Contoso Software (FOR LAB USE ONLY), O=Contoso Corporation, C=US"; 
       PublisherDisplayName = "Microsoft"; 
       PackageVersion = "1.0.0.0" 
 InstallerArguments = "install Shortcut=n /S" 
    }, 
    @{ 
       InstallerPath = "host.b77.ingmaro.netRepositoryinstallersPBIDesktopSetup_x64.exe" 
       PackageName = "PowerBIDesktop"; 
       PackageDisplayName = "Microsoft PowerBI Desktop"; 
       PublisherName = "CN=Contoso Software (FOR LAB USE ONLY), O=Contoso Corporation, C=US"; 
       PublisherDisplayName = "Microsoft"; 
       PackageVersion = "1.0.0.0" 
InstallerArguments = "-q -norestart ACCEPT_EULA=1 INSTALLDESKTOPSHORTCUT=0" 
    } 
) 

 


 


 


 


As you can see, I am using the UNC paths to the installers that I have placed into the Installers folder earlier. 


For the MSI installer I do not need to specify any additional install switches. For the .Exe file I have added the InstallerArguments parameter, so I can provide the correct switches for a silent install of the application during the conversion. 


Save the file after making the changes. 


 


RunJob.ps1 


This file contains the actual conversion action. 


Line 8 ,9,16,17,18 and 19 are commented out, but this is the part that creates the checkpoints, and makes sure the VM rolls back to the clean snapshot, prior to execution a conversion job on the VM 


 


14.png


 


Removing the #’s from these lines brings this back into action. 


Below is the result after the changes. 


 


 15.png


 


Save the file after making the changes. 


 


Sign_deploy_run.ps1 


This file contains the signing part of the batch conversion. 


In this file we need to specify the path to the signing certificate, and signtool.exe. 


 


16.png


 


Change line 5 and 8 to point to your certificate, and the location of the signtool.exe.  


 


17.png


 


As you can see, I’ve also added /p “notreallythecertificatepassword“, as the signtool needs the password to be able to use the certificate for signing. 


Save the file after making the changes. 


 


Al the changes have been made, let’s start the Batch Conversion. 


Open a PowerShell window, and change to the BatchConversion folder in which we have created the PowerShell scripts. 


Then. Run .entry.ps1 


 


18.png


 

You will be prompted to enter the credentials to use for the VMs. Enter them and click OK 


The first Job will now commence by creating a check point of the VM, and then start the conversion of the first app. 


 


19.png


 


Once it is done, it will create an “after” snapshot of the VM, using the name of the job, roll back to the “before” snapshot, and inform you that the job is done. 


(Press any key to exit this window should read hit enter to close this window, as that only seems to work) 


 


Once all installers have been converted, the MSIX packages are going to be signed, and the packages are added to my machine so I can test the results. 


The created MSIX packages are stored is a subfolder OutMSIX. 


 


Happy converting! Let me know how it went! 


 


Ingmar Oosterhoff and Matthias Herfurth 

Key Features of SQL Analytics in Azure Databricks

Key Features of SQL Analytics in Azure Databricks

This article is contributed. See the original author and article here.

As customers continue to standardize on data lakes and the Lakehouse architecture, users expect to be able to query the data in their data lake using SQL.  In fact, approximately 41% of all code executed on Azure Databricks is SQL.  The SQL Analytics service in Azure Databricks was created to provide SQL users with a familiar SQL-editor experience as well as provide optimized BI connections for querying and analyzing data in the data lake.


 


SQL Analytics Key Features


 


MikeCornell_0-1606143341501.png


 


Below are some of the key features in the SQL Analytics service in Azure Databricks:


 



  • The first key feature to highlight is the Query Editor. This editor provides a familiar experience (vs. the traditional notebook experience in Azure Databricks) where users can explore their databases, write SQL queries with intelligent auto-complete, and view query output in either a tabular display or in a rich set of visualizations


MikeCornell_1-1606143767460.png



  • Users can turn the queries and visualizations they create in the query editor into Dashboards.  Dashboards can include content from several different queries, and also allow for basic text/markdown cells.  Once created, dashboard data can be manually refreshed or refreshed on a schedule.

  • In addition to dashboards, queries can be scheduled, and alerts can be created to notify users when a field in the scheduled query meets a certain threshold.  Alerts can even be created for multiple columns.

  • SQL Analytics also has a catalog for dashboards and queries.  This catalog allows users to save their queries and dashboards and share them with other users.  Users can also add tags to their saved queries and dashboards to make them easier to search, and they can even use Favorites to mark frequently used queries and dashboards.

  • The SQL Endpoint in the SQL Analytics service also provides easy connectivity to other BI and SQL tools via ODBC/JDBC connections.  Tools such as Power BI can connect using the native Azure Databricks connector and take advantage of faster, more efficient ODBC/JDBC drivers.

  • Another exciting feature in the SQL Analytics service is the ability to see Query History details.  On the History page, users and admins can see details about all the queries that have been run.  This includes specifics such as the query itself, who ran the query, what endpoint did it run on, was it successful, the duration, how much time was spent compiling-executing-result-fetching, rows read/returned, files scanned, bytes read from cache, and many other details.


MikeCornell_0-1606147151628.png



  • The final key feature to look at in the SQL Analytics service is the compute engine.  SQL Analytics uses the same Delta Engine found in the rest of Azure Databricks.  This means a single, consistent set of APIs and functions across the entire workspace.  The SQL Analytics service goes one step further by also making use of the Photon-powered Delta Engine. This vectorized engine was purpose built for doing SQL and data frame operations while maintaining the same single, consistent set of APIs and functions currently used across the entire workspace.


For more information about the SQL Analytics service in Azure Databricks, check out the docs page and the Databricks launch blog. The SQL Analytics service is currently in Public Preview. Contact your Azure Databricks representative to request access. Get started with Azure Databricks by joining an Azure Databricks workshop.

Accelerate implementations with the expanded FastTrack for Dynamics 365

Accelerate implementations with the expanded FastTrack for Dynamics 365

This article is contributed. See the original author and article here.

Today, more than ever, your organization needs to adapt to changing business conditions with incredible speed and efficacy. Whether you’re shifting to digital sales or streamlining your supply chain, Dynamics 365 plays a pivotal role in digital transformation initiatives by bringing customers and business priorities together with the next generation of CRM and ERP applications.

Underpinning many of these successful initiatives is FastTrack for Dynamics 365, a Microsoft engineering powered customer success program that enables organizations to accelerate Dynamics 365 implementations and go live with confidence.

Available at no incremental cost to our customers, FastTrack for Dynamics 365 features learnings and experiences from over 3,000 cloud deployments through Success by Design, the prescriptive guidance (approaches and recommended practices) for designing, building, and deploying a Dynamics 365 solution. It’s no surprise that the program predictably delivers a measurable impact for our customers and partners.

“Intimidator is implementing a full range of ERP capabilities within Dynamics 365. With FastTrack, we were able get the help we needed to go from zero tech to state-of-the-art tech faster than we ever imagined.”Tim Gryder, Project Manager and System Administrator, Intimidator 4×4 Utility Vehicles

To enable more organizations to benefit from the program, we’re expanding and enhancing the FastTrack for Dynamics 365 program. Effective January 1, 2021, the updated program will serve more customers with a streamlined, partner-aligned execution and nomination model.

Expanded to serve more customers

Previously limited to customers with an annual Dynamics 365 investment of $300,000 or more, the program will now serve customers with a lowered minimum annual Dynamics 365 investment of $100,000 as well as provide new self-serve resources for all.

Customers who invest between $100,000 and $300,000 on Dynamics 365 on an annual basis can now, in partnership with a qualified implementing partner, take advantage of Success by Design as well as benefit from the assurance that Microsoft engineering is monitoring and engaging as needed throughout the implementation.

FastTrack for Dynamics 365 continues to offer the full privileges of the program, which includes a comprehensive set of Microsoft-governed implementation reviews and assistance by a designated Microsoft solutions architect, to customers who invest $300,000 or more on Dynamics 365 on an annual basis.

For all customers, particularly those in the early stages of their adoption of Dynamics 365 with an annual investment of less than $100,000, self-serve FastTrack resources are available, which include on-demand Success by Design training, product TechTalks, and go-live readiness for select Dynamics 365 applications.

Streamlined partner-aligned execution and nomination

Partners have traditionally been a cornerstone for delivering FastTrack for Dynamics 365-related services. Given the importance of partners in ensuring customer success, the program will now exclusively be delivered in collaboration with qualified Microsoft partners. Therefore, customers who wish to benefit from the program must work directly with a qualified partner.

To qualify, partners who implement FastTrack for Dynamics 365 must have Gold or Silver status in the Cloud Business Applications competency and must complete Success by Design live training and on-demand Microsoft Learn path. Standardizing and accelerating partner competency ensures that our customers predictably receive a high-quality experience in accelerating their Dynamics 365 implementations with FastTrack.

In addition, qualified partners are now empowered to directly nominate eligible customersthose with an annual spend of $100,000 or morefor FastTrack for Dynamics 365. The new unified customer nomination process for partners and Microsoft ensures that eligible customers can be more efficiently identified and served.

Learn more and get started

We value the trust and investment that our customers put into Dynamics 365 and FastTrack for Dynamics 365 program. The program changes referenced reflect the continued commitment by Microsoft to ensure customer success while strengthening our collaboration with partners.

You are invited to learn more about the guidance on implementation, best practices, and tools offered by FastTrack for Dynamics 365, and connect with your Microsoft account team or partner to discuss how you can take advantage of the FastTrack for Dynamics 365 program.

The post Accelerate implementations with the expanded FastTrack for Dynamics 365 appeared first on Microsoft Dynamics 365 Blog.

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.

VMware Releases Workarounds for CVE-2020-4006

This article is contributed. See the original author and article here.

Original release date: November 23, 2020

VMware has released workarounds to address a vulnerability—CVE-2020-4006—in VMware Workspace One Access, Access Connector, Identity Manager, and Identity Manager Connector. An attacker could exploit this vulnerability to take control of an affected system.

The Cybersecurity and Infrastructure Security Agency encourages users and administrators to review VMware Security Advisory VMSA-2020-0027 and apply the necessary workarounds.

This product is provided subject to this Notification and this Privacy & Use policy.

Microsoft Teams recognized as a Leader in Gartner UCaaS and Meetings Solutions Magic Quadrants

Microsoft Teams recognized as a Leader in Gartner UCaaS and Meetings Solutions Magic Quadrants

This article is contributed. See the original author and article here.

Microsoft Teams has become the new way to work for over 115 million daily users who come together every day to meet, call, chat, and collaborate. Today, we are honored to be recognized by Gartner as a Leader for both Meeting Solutions and Unified Communications as a Service in their latest Magic Quadrants. Microsoft was…

The post Microsoft Teams recognized as a Leader in Gartner UCaaS and Meetings Solutions Magic Quadrants appeared first on Microsoft 365 Blog.

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.