Try \ Catch block
Chapter 2: MSIEXEC
Fundamentals View the Help Where Is It?
Better to use $Env: Parameters
Installation Silent Install No Restart Uninstall Properties
Which Properties Can Be Set?
How to Find Valid Property Values Uninstall GUIDs 32-bit Installations 64-bit Installations
Chapter 3: Setup.exe
Discovering the Setup.exe silent Install \ Uninstall parameters
EXE's Have Registry Information Too
In-Built Help
Internet Search MSI Extraction
MSI Extraction Method #1
MSI Extraction Method #2
Example MSI Extraction
Chapter 4: Detection Rules
Why Use PowerShell?
Detection Fundamentals
The Microsoft Rules In Practice
Where Do I put My Detection Rules Anyway?
Silently Continue Detection Types File \ Folder
Presence Executable Version
Hey! Where's the Build Number?
Registry Subkey
Registry Value \ Data Pair Custom Detection
Why Use Custom Detection?
Custom File Detection
Custom Registry Detection
Final Thoughts on Custom Detection
Branching By Office Bitness
If This, Then That This and This
Chapter 5: Location
Where Is This Script Running from Anyway?
How We Used to Do Things A Better Way
File Placement
Where to Place Your Files for Deployment
Referencing Files
Referencing Files in a Flat Structure
Referencing Files in Subdirectories
If You're Elsewhere...
Chapter 6: Installing the Program
Calling the MSI or Setup.exe
Start Your Engines
Please Parameters -FilePath
NoNewWindow
Wait Dealing with Spaces
Putting It All Together
Example 1 - Simple MSI
Example 2 - MSI with Properties
Example 3 - Setup.Exe
Chapter 7: Deploying the Script
Sys What Now?
In Practice
Calling Your Script
Standard Script (Top to Bottom)
Script with Entry Point Function
Function Accepting Parameters
Example: Deploying a Script Containing Two Functions Remote Server Administration Tools
Chapter 8: Deployment Template
How to Use Deploying Based on Office 'Bitness'
Deploying Based on Operating System Architecture
Pre-Deployment Tasks
Post-Deployment Tasks
Logging
How to call the Template Final Thoughts
Chapter 9: Application Preparation in Intune
Download the Tool Prep for Prep
Adding Your Content
Creating the .Intunewin
What's in a Name?
Chapter 10: Uninstall an Application
The Function
How it Works Exactly!
Test Run
How to Use
Chapter 11: Useful Code