Welcome to the first series of blogs I plan on doing to help you adopt Power BI into your Configuration Manager (ConfigMgr) environment. This post will outline getting started with ConfigMgr and Power BI. Specifically creating your initial template. We will start by creating Power BI parameters to store your ConfigMgr database server and name. Finally creating two simple template files, a Direct Query and Import.
PowerShell Logging will be the best thing you learn. The biggest topic I get asked for help outside the specific activities I am assigned to is PowerShell. I will be the first to understand everyone has their own style. I never judge the style or syntax format. Besides that, PowerShell logging ALWAYS needs to occur. If you are not logging, your running blind. PowerShell logging is the one the most powerful features you can learn and implement.
PowerShell does have some native abilities, “Start-Transcript“, and if that is all you want to understand, that is fine. But, this post will take you through some basic understandings on capturing your outputs in a format that is readable and standard. With some tricks in creating some great logic around managing your log.
PowerShell Logging – The Setup
The first step into your new logging endeavors is to understand the ability to call a function to simplify your process.
For this function to become usable we first must set the variable “$logpath” so the function can understand where it is writing to. My standard is to log to “%SystemDrive%\Windows\Temp”
# Set log path
$logpath = "$env:SystemDrive\Windows\Temp\mynewlog.log"
# Function to write to log file
"$(Get-Date -Format G) : $msg" | Out-File -FilePath $logpath -Append -Force
Calling the Function
During your process of creating your script you will want to call the PowerShell logging function to say your going to run a process, log the process file call, its arguments, other module calls, and most important capturing any error output.
Write-Log "setup.exe -S -v/l "$env:SystemDrive\Windows\Temp\Setup.log"
I would like to introduce you to the next generation of endpoint reporting we created at Ascent Solutions. System Center Configuration Manager (SCCM) vNext Reporting with Microsoft Power BI. Microsoft Power BI is the insight engine that your organization needs. Not with just Configuration Manager reporting, but extending out into your cloud, data center, ITSM, ITAM, and even your security vulnerability scanning appliance.
Does your organization have a grip on client reporting health, let alone if your getting the latest Windows updates deployed. These are tough questions to ask new customer’s when we need to properly plan a new roll out.
This video takes you through some developed possibilities. These solutions are in constant development. I am adding new insights weekly to these reports. Microsoft’s Power BI give us no limits into your organizational IT makeup, including but, not even close, limited to, Microsoft Operations Management Suite, Azure SQL, Amazon RedShift, Oracle, and MySQL, and etc….
Today’s Windows 10 Deployment Tip will include one of the most demanded help for Windows 10. We will go over how to remove Windows 10 Universal Apps for your production Windows 10 build.
The biggest misconception is that you remove Windows 10 Universal Apps during your build and capture. These Apps will need to be removed during your Production OSD Build. This can be easily done by incorporating a Run Command Line / Run PowerShell Script task sequence step that runs the below code / script.
With the first Windows 10 Deployment Tip of this series, we will cover the most basic situation. Building your reference image. Yes, you have made the investment in Configuration Manager, but the best way to build your Gold image is still with the Microsoft Deployment Toolkit (MDT).
Even if you use MDT in your environment today. It is recommended to setup a dedicated Deployment Share just for your build and capture.
This post will outline driver package creation, management, and best practices for System Center Configuration Manager (SCCM / ConfigMgr). The steps outlined in this post will ensure minimal driver management in SCCM, while ensuring the end device receives the proper drivers during imaging.
Staging and Imaging the New Device
The first step in the process is to get the new device able to image with the environment’s gold image. You will have to note that it may be necessary to inject the network drivers into your Windows Pre-Installation Environment (WinPE) boot image. If the device fails to load the WinPE environment it is either the network or storage drivers are not available.
Pick the below scenario that matches your environment:
- The Task Sequence deployed to unknown computers and the local administrator password is set
- Begin imaging the device
- The Task Sequence deployed to unknown computer but the local administrator password is not enabled
- Copy the task sequence to enable the local administrator account, deploy the task sequence and start imaging the device
- No task sequence is deployed to unknown computers but the local administrator password is set
- Import the device and add it to the proper collection and begin imaging
- No task sequence is deployed to unknown computers but the local administrator password is not enabled
- Copy the task sequence, enable the local administrator account, deploy the task sequence, import the device, and begin imaging the device
To import a device into SCCM follow the steps outlined in the below link:
If network drivers are in the Operating System media that task sequence will complete successfully. If the device does not receive a network driver it will fail, and you must logon as the local administrator.
Just wanted to share some Windows 10 deployment notes from the field. My colleague Ryan Fitzgerald and myself have been troubleshooting file associations not being set properly in Windows 10 build 1511. This has been confirmed from Microsoft Premier Support, that there is a current bug in 1511 that causes DISM not to properly set file associations.
I have tested this on insider build 14271 and file associations are still broken. Insider build 14279 is being downloaded now. I will strip DISM from there, and run DISM 14279 on the 1511 / 10586 upgrade sequence to see if will set the file associations as desired.
I am on my seventh day at Ascent Solutions. I have accepted a position as a Cloud Architect, with the mind on helping customers bridge the gap on managing devices through the Cloud. I am please to be part of this elite staff, and look forward to challenges of growing our business in the endpoint management field.
I will have always have a place in my heart for Pomeroy. It was great learning experience working for a IT Outsourcer, and see what it goes into transitioning a customer. I will rely on those learning experiences, and without Pomeroy I wouldn’t be the person I am today.
Thanks again Pomeroy.
And rebirthing the way customers think of their IT Operations is still my goal. Thanks for reading.
Since Microsoft has decided to implement a true OS migration in Windows 10, I have decided to release my tool for the IT masses. The Windows Migration Utility is a User State Migration Tool (USMT) GUI.
The Windows Migration Utility is built for migrating user and system data to a defined location. Configuration of what is captured and restored uses USMT’s methodology of specifying configuration rules in XML files. Utilizes the latest USMT version 5.0, so there is no reason for worrying about mapped network drives and printers USMT 5.0 does it.
I have authored the PowerShell Uninstall script. It gives the ability for IT Operations / ConfigMgr Admins to uninstall multiple versions of a particular software with one process.
Does your organization struggle when trying to cleanup software when standardizing on a application version? I.E. Oracle Java, Adobe Flash, RightFax, IBM products, etc… Not all the versions you have are in ConfigMgr / SCCM or not in the application model? If the answer is yes, the PowerShell Uninstall script is for you.
The PowerShell Uninstall script takes inputs from a CSV file. Using the delimiter of “^”, don’t worry I have included a Excel file to build your CSV.
Since by nature when uninstalling legacy software there maybe pre-or post- process you must run. The PowerShell Uninstall script has functions to call a PowerShell script before or after the uninstall logic.
The PowerShell Uninstall script also includes a Boolean to create the script as an ConfigMgr / SCCM Application. In which you can attach to other programs for requirements.
To detect the PowerShell Uninstall script, have ConfigMgr / SCCM check existence of “%SystemDrive%\Program Files\Pomeroy\AppName”. It will be an empty directory. For the uninstall just use the command “rmdir /Q /S %SystemDrive%\Program Files\Pomeroy\AppName”