In this post, we will go through steps required to deploy an application and distribute its content to the Distribution Point or Distribution Group.
Once you have create an application in the ConfigMgr, you must deploy to the targeted collection. This collection could be users or computers.
This post is still in development. Feedback is welcomed 😃
1. Deploy the App and Distribute the Content
Browse to \Software Library\Overview\Application Management\Applications and select application. Right click the application and select Deploy. This will open the Deploy Software Wizard.
On the General page, browse to the Collection where you would like to deploy and click Next
Add Distribution Point or Distribution Point Group, and click Next once added
For rest of the settings, I will keep default as shown in the screenshots below. You can change settings to suit your requirements where possible.
2. Confirm Deployment
To confirm deployment, check the Deployments tab in the details pane. You will see the targeted collections.
3. Monitor the deployed content
To view the status of deployed content, browse to the application \Software Library\Overview\Application Management\Applications and click on the Content Status in details pane. This will take you to the Monitoring screen where you can see Success or Progress.
4. Check Software Center
Deployed app should be available in the Software Centre on one of the devices which belongs to the targeted collection. In my case, targeted collection is Teknex Management Computers and ACER-01 device is part of that collection.
5. Important Logs
Logs! Logs! Logs! Logs are very important while troubleshooting. You would not remember all logs unless you work on that specific ConfigMgr component often. Here is the well written support article from Microsoft which covers the log file reference.
distmgr.log Server Side Log: This will show you the detailed information about distribution of the content. You need to grab the package ID from the Monitoring workspace. For me it was \Monitoring\Overview\Distribution Status\Content Status\Visual Studio Code x64. Then find relevant information in the distmgr.log.
Appenforce.log Client side log: This will show you information about installation, uninstallation and detection of the application. Location: %WinDir%\ccm\logs
Well! this is all. Leave your feedback in the comments below 😃
In this post we will look at how we can create an .EXE software/application in Microsoft Endpoint Configuration Manager. Automating .EXE deployment is much harder than deploying .MSI applications.
We will look at an example (Visual Studio Code) and learn how to tackle with .EXE deployments. From experience, all .EXE applications are packaged different. However, basics remain the same for application deployment. Once you learnt the basics, you could say you mastered the .EXE application deployment.
This post is still in development. Feedback is welcomed 😃
Background
Well first thing is why we need to deploy an .EXE application?
You will notice some applications are only available as .EXE files and you are stuck with figuring out how to deploy that. The .EXE is different than .MSI files in many ways. One .EXE file can contain one or more .MSI files and you can look into .EXE file with the help of any archiver tools like 7ZIP.
Find Switches
The .EXE application deployment is all about switches.
Some vendors do really well and ship detailed documented help with the .EXE file. You can find switches by running the .EXE file in command line with a switch like -help or /help or /?. It depends how the help is implemented with the .EXE.
For instance Microsoft has done really well with Visual Studio Code program.
Hands On
Test it out by yourself, download VS Code from this link. As we are testing on Windows, select system installer on the download page and it will download the .EXE file. Once you have downloaded, browse to the location of this program in PowerShell and run it with a switch /? or /help. You will see the following window.
If you run it with a wrong switch and you will see system will prompt for the program installation. Try this with -help and you will see the following window. You can close that as we do not want to install it right now.
Read the help file thoroughly and you will find all the available switches. Check uninstall switch. Did you find it? May be not as it is not available out-of-the-box.
This is the reason why I said earlier the automation deployment of .EXE file is much harder than .MSI.
To find the uninstall switch, we need to install VS Code and see if this gives us an uninstall.exe somewhere in the VS Code’s installation directory.
Silently Install Visual Studio Code
Let’s install VS code silently and then we will look into how to figure out uninstall method.
Find the requirements of the application to install it silently. List the steps you need for this application to install. You may find something like listed below:
No GUI
Restart required or not
System/user install
Consider the requirements and then find the switches to meet your requirements. In some cases, you do not need any switch because that might be the default behavior of the installation.
Let’s break down the above requirements and find what switches these required. Run VS Code in PowerShell with -help switch to find all the switches.
No GUI There are a few different options in the Help. We have /SILENT, /VERYSILENT and /SUPPRESSMESSAGEBOXES. We will pick /VERYSILENT switch.
Restart Some applications they might need a restart to work right after the installation. Visual Studio Code does not need a restart to work after installation. It won’t prompt the system to restart by default. We can still use /RESTART switch.
System/user install The downloaded file is a system installer itself. We don’t need to specify any switch. Some .EXE might have a switch to pick user or system installation.
Hands on
This is how my final installation one line PowerShell command looks like: .\VisualStudioCode.exe /VERYSILENT /NORESTART
Locate VS Code installation directory
Depends on the 32-bit or 64-bit, check %Program Files (x86)% or %Program Files%. In my case, it is 64-bit installation and I spotted the installation in the below folder. C:\Program Files\Microsoft VS Code
Silently Uninstall Visual Studio Code
Check the installation folder of Visual Studio Code. Did you find anything starting with unins? Yes, there is a file named unis000. This is another .EXE file we have to deal with.
Switches are the same as installation, and uninstallation will look something like this: .\unins000.exe /VERYSILENT /NORESTART
Create a New Application in ConfigMgr Console
Once we have figured out silent installation and uninstallation methods, we are ready to create the new application in ConfigMgr Console.
Browse to \Software Library\Overview\Application Management\Applications
On the Home tab in the Create group, click on Create Application. This will open a Create Application Wizard
In the Create Application Wizard, select Manually specify the application information and click Next
Fill in the General Information about the application and click on Next
Provide information which will be seen by the end users in the Software Center and click Next
Click Add on the Deployment Types and this will open Create Deployment Type Wizard
In order to deploy .EXE file, in Type drop down select Script Installer and click Next
Provide General Information for this installation type and Click Next. You would be able to view this information in the details pane under deployment types after finish these steps.
Provide the following information: Content location: Browse to File Share where VS Code installation files are saved. Installation Program: Ensure this matches your version of program. I will be using the command we prepared earlier in this post with the VERYSILENT and NORESTART switch.
Uninstall Program: We looked at the uninstall silent command as well. Enter this here including any variables if required. For instance, unis000.exe is saved in “C:\Program Files” and I will use %ProgramFiles% environment variable (for 64-bit programs only).
"%ProgramFiles%\Microsoft VS Code\unins000.exe" /VERYSILENT /NORESTART
With the help of Detection Method, Software Center decides whether the application is installed on the device or not.
Unlike .MSI file, you cannot just browse to .MSI file path and define the detection method. We have to come up with a creative method to detect the installed application.
One of the widely used detection method for .EXE files is the check file name and it’s version in a specific folder.
– Click on Add Clause and system will open Detection Rule window – Setting Type: File System – Type: File – Path: Path to the file which must be present on the end user device to determine whether the application is installed or not. Enter the installation Path of VS Code with the environment variable.
%ProgramFiles%\Microsoft VS Code
– File or folder name: Here we will use a file called Code.exe which is present in the Visual Studio Code’s installation directory. – Change the next settings to “The file system setting must satisfy the following rule” and enter the required information as shown in the screenshot
Click OK once you filled all the information.
Click Next on the Detection Method window
Update the User Experience as follows and click on Next. You can change these settings to suit your needs.
For this application there are no Requirements and click Next. There are no Dependencies and click Next.
You will see the Summary screen and click Next. You will see a message “The Create Deployment Type Wizard completed successfully” and click on Close. This will take you back to the “Create Application Wizard“.
Click Next on Deployment Types, then Click next again on the summary page. You will see Progress and then finish it off on the Completion window by clicking Close
That was a lot to go through. Hard work pays off 😃. You will see the following application in the ConfigMgr console.
Change view to Deployment Types in the details pane and you can see Visual Studio Code’s Script Installer deployment.
Endpoint Protection helps to manage antimalware policies and Windows Firewall security for the endpoints.
When to use Endpoint Protection
Endpoint Protection supports different configurations listed below directly managed from the ConfigMgr console
Configure antimalware policies, Windows Firewall, and manage Microsoft Defender Advanced Threat Protection.
Utilize Software Update Point to download the latest antimalware definition updates to keep endpoints up-to-date.
Configure email notifications, use in-console monitoring functionality, and reports.
Important Windows 10 and Windows Server 2016 onward operating systems come with pre-installed Windows Defender. For these operating systems, the Windows Defender management client gets installed along with the ConfigMgr client without additional configuration. On the Windows 8.1 operating systems and earlier versions, the Endpoint Protection client is installed with the Configuration Manager client.
Malware and Windows Firewall management
Malware management with Endpoint Protection In ConfigMgr console, you can create and deploy antimalware policies that contain settings for Endpoint Protection client configurations. These policies can be monitored through the monitoring functionality in the Endpoint Protection Status node under Security in the Monitoring workspace. Endpoint Protection reports are also available in the Reporting node.
Windows Firewall management with Endpoint Protection
Configuration Manager provides basic management of the Windows Firewall on client computers through Endpoint Protection. You can configure the following on each network profile:
Enable or disable the Windows Firewall.
Block incoming connections, including those in the list of allowed programs.
Notify the user when Windows Firewall blocks a new program.
We already know that management clients are available for different Windows operating systems.
Well! Microsoft has also developed clients for Mac and Linux servers. Here you can check through official Microsoft documentation how to download those clients.
Attach Windows Server ISO file to your VM or mount it in the File Explorer and note the drive letter Check here How to attach ISO to your VM
Create a new .ps1 file (mecm_prereq_installation.ps1) and paste the below. Make sure you update the drive letter if needed in the first line NetFrameworkSource variable.
I recommend you run the newly created PowerShell script in PowerShell by browsing to the path of mecm_prereq_installation.ps1 file so that you can see the progress.
2. SQL Server Installation and Configuration
3. WSUS Installation and Configuration
4. Windows ADK and WinPE Add-on
5. Extend AD Schema
6. Add Configuration Manager Server Account to Local Admins
In production, you will definitely use physical drives considering performance and other factors like backup and restoration. However, we will mimic production environment in our lab with the help of virtual drives. It gives you the feel and same look as production, and gives you a clear picture where specific data is stored.
Last updated 09/05/2021
Check-out related video to this blog post
1. Storage configuration for ConfigMgr VM
Here is the what I recommend minimum storage for different drives. If you could afford more, definitely go ahead with that.
Drive
Storage Name
Size
Comments
C:\
Local Disk
50 GB
OS, SQL Server Installation, ADK
D:\
CM_Install
40 GB
Configuration Manager Installation, MP
E:\
CM_TempDB
20 GB
SQL Server Data Services Engine TempDB
F:\
Content_Library
40 GB
DP, WSUS Content
G:\
WSUS_Database
20 GB
WSUS Database
H:\
CM_SQL_MDF
20 GB
ConfigMgr Database
I:\
CM_SQL_LDF
20 GB
ConfigMgr Log Files
File Share
CM_ContentSource
20 GB
Source files for Applications/Packages deployment
Total
250 GB
2. Configure Drives
Drive C This drive will already be configured during OS installation on TEKNEX-CM01. No further action will be required.
Drive D Configuration Manager and Management Point role will be installed on this drive. It will be formatted as a standard NTFS volume.
Steps to create a new VHD, attach to the Virtual Machine and format it as per the requirements.
Open Hyper-V Manager > Select your ConfigMgr VM (TEKNEX-CM01 in my case) > Right-click and select Settings
In the Settings Wizard select SCSI Controller > click on Add to add a hard drive
Select New and this will open New Virtual Hard Disk Wizard
Click Next on the Before You begin page
Keep default selection dynamically expanding and select Next
Specify name and location where you would like to save the virtual drive
Enter size in GB and click finish
Once VHD is created and attached to the ConfigMgr VM, next thing is to format the volume.
Login to ConfigMgr server and open Server Manager > Select File and Storage Services > Disks
Select the drive you recently attached, which will be marked offline > right-click and click bring online > click Yes when prompted
Disk will be online > select the disk and right-click > click New Volume and this will open New Volume wizard
Server and Disk will be listed on the next page > click Next and select OK if prompted to bring the disk online
Maximum volume size will be listed and select Next
Select Drive letter (I am selecting D as I documented) for this disk and click Next
On the Select file system settings page, update the following: – File system: NTFS (keep default) – Allocation unit size: Default (unless it is mentioned specifically) – Volume label: CM_Install (update accordingly)
Click Create on the Confirmation page
Open File Explorer and check the new drive
Follow the above steps mentioned to create and attach the following drives to ConfigMgr server.
Drive E SQL Server Data Services Engine TempDB files will be saved on this drive.
Important: Microsoft recommends to format this as 64KB size (update step 7 allocation unit size while formatting this drive). Name the volume to CM_TempDB so that it can be differentiated in the File Explorer.
Drive F Content Library will be saved on this drive and WSUS content. It will be formatted as a standard NTFS volume. Name the volume to Content_Library so that it can be differentiated in the File Explorer.
Drive G WSUS database will be saved on this drive. It will be formatted as a standard NTFS volume. Name the volume to WSUS_Database so that it can be differentiated in the File Explorer.
Drive H ConfigMgr database will be saved on this drive. It will be formatted as a standard NTFS volume. Name the volume to CM_SQL_MDF so that it can be differentiated in the File Explorer.
Important: Microsoft recommends to format this as 64KB size. Ensure to select 64 K Allocation Unit Size for Drive H.
Drive I ConfigMgr database log files will be saved on this drive. Name the volume to CM_SQL_LDF so that it can be differentiated in the File Explorer.
Important: Microsoft recommends to format this as 64KB size. Ensure to select 64 K Allocation Unit Size for Drive H.
File Share
This drive will be used to save applications and packages content. It will be formatted as a standard NTFS volume. Name the volume to CM_ContentSource so that it can be differentiated in the File Explorer.
Your feedback is important to me. Leave it in the comments below 😃.