Dell PowerShell Provider Install w/ ConfigMgr

I just created an App for the Dell PowerShell Provider 1.3.0, was able to learn what I needed from Mike’s Blog (THANK YOU). I thought I’d add a cmd file install for 1.3.0 and do a more graphical walk through (I’m a visual guy).

To get the download, go HERE (DellCommandPowerShellProvider1.3_259.zip)

Download, grab the DellBIOSProvider folder
image

Copy that to your Source (\\CMSRC\SRC$\Apps\Dell\DellPowerShellProvider\1.3.0\x64)
image

Programs:
Install: "Load_DellPowerShellProviders-x64.cmd"

Uninstall: cmd.exe /c rd "%programfiles%\WindowsPowerShell\Modules\DellBIOSProvider" /S /Q

image

Detection Method:
File Path: %PROGRAMFILES%\WindowsPowerShell\Modules\DellBIOSProvider
File Name: DellBIOSProvider.dll
Version: 1.3.0.0
image

Requirements: (x64 & Dell) – See previous post on creating Dell Requirement
image

Once Installed, you can test by launching PowerShell and loading the Module
image

import-module DellBIOSProvider

image

I highly recommend reading Mike’s Blog Post from last year when he blogged the install of version 1.1, he goes into additional detail and background.

Manufacturer Global Condition for App Model

Hey, so I recently created apps for Dell’s updated PowerShell Provider & Command Monitor & BIOS updates.  I only want Dell Machines to see them in the software center, and if they are x64, so global conditions is the answer.

I’m not going to recreate the wheel here, there are several good posts on how to create global conditions, like SCConfigMgr’s for creating on for x64 systems.

I’ve created ones for Model, when using Dell Bios, as I describe in detail HERE.

So for Manufacturer

  1. Creating the condition, open the ConfigMgr. administrator console, select Software Library, Application Management, Global Conditions and click Create Global Condition from the ribbon.
  2. Create a condition with these settings:
    Name: Computer System Manufacturer
    Device type: Windows
    Condition type: Setting
    Setting Type: WQL query
    Name space: root\cimv2
    Class: win32_computersystem
    Property: Manufacturer

image

Then in the Applications:
image

image

Remember, you have to use “Contains”, which is similar to “like”, as when you look up the Manufacturer, it’s “Dell Inc.”, but I’ve also seen slightly different variants, but they all contain “Dell”, so that’s what I’m going with to make sure I don’t miss any.

image

For more ideas, look to Ronni’s blog: https://www.ronnipedersen.com/wmi-query/

AppV for Windows 10 1607–Update Packages / Enable in Windows

I’m going to cover two topics, both updating your old Packages to install without error on 1607, and how to enable AppV in 1607 with Powershell / AppModel Deployment.

We have a few AppV Packages that we use, when doing inplace upgrade from 1511 –> 1607, it automatically enables the new AppV that’s built into Windows, and the AppV Apps that were previously installed just work, that’s great!

However, when trying to deploy AppV Packages via ConfigMgr to newly installed 1607 clients, we’d get error:
Windows Installer packages (.msi files) generated by the App-V sequencer (version 5.1 and earlier) fail to install on computers with the in-box App-V client  Searching for that error led me to:https://technet.microsoft.com/en-us/itpro/windows/manage/appv-release-notes-for-appv-for-windows

I also tried to run the MSI, which showed the error that the MSI couldn’t find AppV Client:
image

 

From that TechNet article, I tried to follow the directions to update the MSI for the workaround, but would get this error:
image

The process outlined worked, just that the script included in the Windows 10 ADK doesn’t.   It has some references to old file locations from older SDKs.  After minor modification to the Update-AppvMsiPackage.ps1 script, we were able to make it work. (Changes shown in Picture below)

You can download our Modified Script HERE – Thanks Mark (@Geodesicz)

image

Requirements:

When you install the ADK, it will install the Sequencer and add the PowerShell Script, that's the one you need to modify / replace.
image

Steps to upgrade package

  1. Open Elevated Powershell
  2. Import-Module “Update-AppvMsiPackage.ps1” (Use the modified version you created or downloaded)
  3. Update-AppvMsiPackage –msiPackage c:\folder\appvpackage.msi

image

Now when you deploy that package to a 1607 machine, it works!

AppV in 1607 - https://technet.microsoft.com/en-us/itpro/windows/manage/appv-enable-the-app-v-desktop-client

  • AppV Status: Powershell: get-appvstatus
    image
  • Enable: Powershell: Enable-AppV
    image
  • Corresponding Registry Key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client  Enabled = 1
    image

Deploy via Catalog (App Model)

image

 

Here’s how to make it:
image

image

image

I have two deployment types, one for the MSI installer & one to activate the built-in 1607
First one will run if build NOT equal 14393, and the second will run if 14393
Only covering the new 1607 method here

image

image

Content: You can just put anything, you can probably leave it blank.  I just have it pointed to my folder for the PowerShell Script and documentation.  Just so I remember where to find it.

image

Program: powershell.exe -Command Enable-Appv
image

Detection Method = the Registry key I talked about earlier
image

image

 

Requirements: Set to require build 14393 (1607) – You can add this Custom Global Condition by following this awesome guide: http://ccmexec.com/2016/08/using-windows-10-build-numbers-as-global-condition-in-configmgr/

image

You should now have the ability to use this Application model as a prereq for your AppV Package deployments.

Also, recommend updating your AppV 5.1 Client install to include the detection method for 1607’s.  Consider this Senario.  You have Several AppV Packages you deploy. You have the 5.1 AppV Client as a pre-req for your AppV Package Deployments.  On Windows pre-1607,  it will then install the 5.1 Client.  On Windows 1607, it will fail the install of the client, and not continue with the AppV Package deployment. However, if you already have AppV enabled on 1607 via GPO or OSD, etc, then you can just add the 1607 detection method to 5.1’s install, then when you deploy your AppV Package, it will see the pre-reqs are already installed if 1607, and continue on.

image

 

Found a post about an overview of the new AppV in 1607, along with Group Policy info:
http://app2pack.blogspot.com/2016/08/exploring-app-v-ue-v-in-windows-10.html

Hope you find this useful, took me a day dealing with the incorrect PowerShell Script provided.

Deploy Paint.Net with ConfigMgr Application Model

Recently I’ve been working on Paint.Net, I used to install it using the .exe, however found that it would not install under the SYSTEM context.  It worked when users would install from the Catalog, but I was unable to push updated versions.

Today I was able to resolve the issue by using the /createMsi feature.
I liked using the .exe, as it was only 6MB and would install for both x86 and x64 machines, but if it doesn’t work in all senarios.  So now I’ve switched to using the MSI for consistency.

Offical Documenation: http://www.getpaint.net/doc/latest/UnattendedInstallation.html
Download: http://www.dotpdn.com/downloads/pdn.html
- Requires .Net 4.6 or above. (with Paint.Net 4.0.9, as used in this example)
- Nice article on deploying .Net using ConfigMgr HERE. (Just replace 4.5.2 with latest version)

Once downloaded, create the MSI: (I have a script here I use that will create the MSI files, that doesn’t care about the downloaded exe name, and copy the MSI to the source)

----CreateMSI_PaintNet.cmd---

REM Using FOR Loop to find any EXE file and run it with these arguments
for %%i in (*.exe) do cmd /c %%i /createMsi CHECKFORBETAS=0 DESKTOPSHORTCUT=0 CHECKFORUPDATES=0

REM Copy the 2 Newly created MSI Files to the Source Folder (Assuming you're running this script from the source folder)
xcopy %userprofile%\desktop\PaintDotNetMsi\* .\ /Y

----

Manually:
paint.net.4.0.9.install.exe /createMsi CHECKFORBETAS=0 DESKTOPSHORTCUT=0 CHECKFORUPDATES=0

  • /createMsi - Creates the MSI Files and places them on the desktop
  • CHECKFORBETAS=o – Disables checking for Beta Version in the Options
  • DESKTOPSHORTCUT=0 – Will not create a Desktop Shortcut for Paint.net (Remove this part if you want the icon)
  • CHECKFORUPDATES=o – Disables checking for updates in the Options
  • More options at the Official Documenation link

Example showing use of the Script, which will create the 2 MSI files on the desktop, then I manually move.
Open Elevated Command Prompt, change directory to the Source, and run the CreateMSI_PaintNet.cmd, the Paint.Net installer box will open showing a status bar, and where it has created the MSI files once completed.

image

Click Finish for the script to Continue, it will then copy the two MSI Files to the Source Folder:

image
Now that you have your MSI files for deployment…

Create your ConfigMgr Application (I’m only deploying for x64, so I’ve only got 1 deployment type)

image image image image image image image 

Programs: msiexec /i "PaintDotNet_x64.msi"
Detection Method = MSI Info & Version
Requirements = x64

Now you can add an additional deployment for x86, follow the same steps, just change the requirements to x64 condition not exist (Buttom radio button)

Now, once the deployment is installed, there will be no desktop icon, and the boxes to check for updates will not be checked:
image

 

Thanks to everyone who develops this great free Photo Editor!

Windows Management Framework v5–Application Deployment w/ ConfigMgr

Update 2/26/16 for Re-Release WMF 5
https://blogs.msdn.microsoft.com/powershell/2016/02/24/windows-management-framework-wmf-5-0-rtm-packages-has-been-republished/

Download the Updated MSU files here.

To use the new Re-Released version, update your Source Files with the new downloads, then update your Deployment types to use the updated Downloads.
Update the Content tab to point at the New Source if Downloaded to New Location
Update the Programs Tab "Installation Program" with the updated Names of the downloads & Uninstall KB Number
example Windows 7 & Server 2008R2 now = wusa.exe "Win7AndW2K8R2-KB3134760-x64.msu" /quiet /norestart
Update Detection Method, which is nearly identical, Just change the File Version from 5.0.10586.51 -> 5.0.10586.117

-----

Original Post:

In my example, I’m only deploying the x64 versions of the software, which will cover:
Windows 7x64, Windows 8.1 x64, Windows Server 2008R2, Windows Server 2012, and Windows Server 2012R2.

image

Download the MSU files to your Source Server:
image

Create a new Application, this will have 3 deployment types:
image imageimage

    1. W2K8R2-KB3094176-x64.msu (Server 2008R2 / Windows 7x64)image
      Name the Deployment Type, I just named it after the MSU File

      image
      Point to your Source Files

      image
      Install Command: wusa.exe "W2K8R2-KB3094176-x64.msu" /quiet /norestart
      Uninstall: wusa /uninstall /kb:3094176

      image
      Detection Method – Registry Key: HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\
      PowerShellVersion – Equals 5.0.10586.51

      image
      Install for System

      image  image
      Requirements: All Windows 7 (64-bit) & All Windows Server 2008R2 (64-bit)

      image
      Return Codes: Change 0 & 1707 to Hard Reboot (This will prompt for a reboot after installing)

    2. W2K12-KB3094175-x64.msu (Server 2012 / Windows 8 x64)
      - Tip, copy the previous deployment and then just make the few changes (Name, Programs, Requirement)image
      Point to your Source Files

      image
      Install Command: wusa.exe "W2K12-KB3094175-x64.msu" /quiet /norestart
      Uninstall: wusa /uninstall /kb:3094175

image

      Detection Method (Same as before)– Registry Key: HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\

 

      PowerShellVersion – Equals 5.0.10586.51

image

      Install for System

image

      Requirements: All Windows Server 2012 (64-bit)

image

      Return Codes: Change 0 & 1707 to Hard Reboot (This will prompt for a reboot after installing)

 

  1. W2K12R2-KB3094174-x64.msu (Server 2012R2 / Windows 8.1 x64)
    - Tip, copy the previous deployment and then just make the few changes (Name, Programs, Requirement)image
    Point to your Source Files

    image
    Install Command: wusa.exe "W2K12R2-KB3094174-x64.msu" /quiet /norestart
    Uninstall: wusa /uninstall /kb:3094174

    image
    Detection Method (Same as before)– Registry Key: HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\
    PowerShellVersion – Equals 5.0.10586.51

    image
    Install for System

    image
    Requirements: Windows 8.1 (64-bit) / Windows Server 2012R2 (64-bit)

    image
    Return Codes: Change 0 & 1707 to Hard Reboot (This will prompt for a reboot after installing)

Tested This deployment on: Windows 7x64, Windows 8.1x64, Windows Server 2012 & 2012R2.  Sorry, didn’t have a 2008R2 server to test on.

 

 

Once done installing, it will then show this “Requires Restart” (Because we changed the Return Code Values)
image

After the restart, it will show Installed:
image

After the Reboot, your Powershell icon will also be updated (At least on Server 2012R2):
image

 

Happy Deploying WMF5!