Beyond unsupported – How to add PowerShell ISE to ConfigMgr Admin Console

As you already know, then currently we can only start PowerShell Console through Configuration Manager Admin Console but most likely  you may want to start PowerShell ISE through Admin Console :) Step-by-step guide First, this is not supported so don’t blame me if something is not working. Please also remember that there is no SAVE button in Admin Console Builder Tool! Close ConfigMgr Admin Console Start AdminUI.ConsoleBuilder.exe – You can find this tool under the Admin Console installation folder   Select File –> Open –> ConnectedConsole Select View->Application Menu Items Select Connect via Windows PowerShell and right-click select Clone Now [...]

Working with Queries in ConfigMgr with PowerShell

I accidentally blew up my dev lab and now I need to build a new one but luckily we have PowerShell :). In this picture we have 8 Queries and I would like to create Device Collections based on these Queries. These Queries are built with Servicing Extension.   Here are some of the commands that we can use in Configuration Manager 2012 R2 CU4. These commands allows us easily export/import Queries from one system to another and much more. [crayon-59c592f725573994254098/] Little bit later we have nice Device Collections in System folder   Using the PowerShell GridView output we can [...]

New ConfigMgr PowerShell cmdlets in CU4

Microsoft just released a new CU for Configuration Manager and with latest CU we got 35 PowerShell cmdlets. Now we have 597 PowerShell cmdlets. Here are the new ones: Add-CMDeploymentTypeDependency Add-CMDeploymentTypeSupersedence ConvertFrom-CMApplication ConvertFrom-CMConfigurationItem ConvertTo-CMApplication ConvertTo-CMConfigurationItem Get-CMCertificate Get-CMClientOperation Get-CMDeploymentTypeDependency Get-CMDeploymentTypeDependencyGroup Get-CMDeploymentTypeSupersedence Get-CMMigrationSource Get-CMObjectSecurityScope Get-CMQuery Get-CMSiteRole Invoke-CMGroupDiscovery Invoke-CMQuery Invoke-CMSystemDiscovery Invoke-CMUserDiscovery New-CMADGroupDiscoveryScope New-CMDeploymentTypeDependencyGroup New-CMEmbeddedObjectInstance New-CMEmbeddedProperty New-CMEmbeddedPropertyList New-CMQuery Remove-CMCollection Remove-CMDeploymentTypeDependency Remove-CMDeploymentTypeDependencyGroup Remove-CMDeploymentTypeSupersedence Remove-CMQuery Set-CMDeploymentTypeDependency Set-CMDeploymentTypeDependencyGroup Set-CMDeploymentTypeSupersedence Set-CMQuery Sync-CMMigrationSource   Happy Scripting! :)

Create ConfigMgr Collections and Admin Console Folders with PowerShell

Starting from ConfigMgr 2012 R2 we can use New-Item PowerShell cmdlet to create ConfigMgr Admin Console folders. Here is one simple and quick PowerShell script that allows you to create folders and Collections and finally it moves the Collection to correct folder. [crayon-59c592f7268e6895370538/]   After the script execution you have 6 folders and in each folder Test x Collection – as you see it is really easy to create Collections and Folders with PowerShell.   Best, Kaido

Service Manager powershell snippets

Merry x-mas! In today’s December calendar tips & trick I'm going to a post some useful powershell snippets for Service Manager. As we all know, the December 11th is the special day where the Bethlehem-powershell star outshined all the others.        The scripts here is mostly for administrative purposes. They are of course provided “as-is” so feel free to expand/optimize/ include more error handling etc. Create Management Pack UPDATE: Script now works with different windows localization. Default language will now be set according to the console language user preference and not the windows locale Unfortunately we are not [...]

By | 2014-12-11T09:36:00+00:00 December 11th, 2014|Powershell, Service Manager (SCSM)|0 Comments

Get Direct Collection Memberships And Machine Variables Information

On several occasions I have had the need to pull information on SCCM devices, and recently I was asked to do a backup of all client direct memberships and some specific machine variables. So I thought I would share my latest version of a script that does that. The script takes an argument that will allow you to limit the process to only a set of named clients or just one if you prefer. [crayon-59c592f72a00c225579517/] The script starts by create a class to contain the information pulled from SCCM, making it easier to work with afterwards. [crayon-59c592f72a01c321522159/] Next the script [...]

How to populate object properties with data from a database using PowerShell

  You probably know how you can use a registry discovery to populate properties on windows computer instances, but what if you already have the data in SQL database/CMDB and want to avoid having to first write the data to the registry and then use a discovery to get the data into SCOM? Or what if the objects are not windows computers and hence the registry method is not an option? The solution is to use PowerShell to read  the data from the database and then update the objects in SCOM. This post will show you how to do this [...]

By | 2014-12-09T04:09:00+00:00 December 9th, 2014|Operations Manager (SCOM), Powershell|0 Comments

Change device ownership in Configuration Manager with PowerShell

All newly enrolled devices are enrolled as Personal Devices by default in Configuration Manager and we cant change the default behavior. If the Device Ownership is Company, then we can inventory all the installed applications and we can also do mandatory installations. If the Device Ownership is Personal, then we can inventory only applications that are installed through Company Portal. If your company policy is that all the devices must be company-owned, then you can use this script to query a specific collection devices and it will set the Device Ownership to Company. [crayon-59c592f72b45a957654013/]

Configuration Manager 2012 SP1 and R2 PowerShell Provider

Updated 23.03.2015! As you might have already noticed that Configuration Manager PowerShell Provider is lot like Active Directory, Registry etc. provider. To run a cmdlet you need to be inside CMSITE. If you are still using SP1+, then: 1. you can´t use New-Item cmdlet to create folders 2. you can´t set the location to sub folders 3. Get-ChildItem does not work at all If you are using R2+, then 1. You can use New-Item to create folders 2. You can change the location i.e. sub folders etc. 3. Get-ChildItem only prints out folder objects but not collections, applications etc. inside [...]

PowerShell Deployment Toolkit: Windows Azure Pack install fails

I am a big fan of PDT but I have been trying to install Windows Azure Pack and the complete system center using PowerShell Deployment Toolkit Using the newest version (currently version 2.64.2611) it fails installing the Windows Azure Pack components! Luckily i found the error: Use a password for the installer user that follows the rules for Windows Azure Pack Minimum 8 chars Include at least one upper case letter and one lower case. include at least one number Include at least one non-alphanumeric. (In my case i was missing this! .. so added a ! to the password) [...]

By | 2014-09-23T14:16:47+00:00 September 23rd, 2014|Powershell, Windows Azure Pack (WAP)|2 Comments

Scripts and links from my sessions @IT/Dev connections

A big thanks to all who attended at our sessions. Below are the links to the scripts and blog post we referenced during the session. Hope to see you all again next year! Managing Configuration Manager with PowerShell  Building Custom Tools Using PowerShell  Truly Better Together: Configuration Manager 2012 R2 and PowerShell  Quick and Dirty – Build Configuration Manager 2012 Admin Console Extensions automatically - http://cm12sdk.net/?p=2299 Configuration Manager 2012 R2 Developer Excel Sheet - http://cm12sdk.net/?p=2326 Does Your Hard Work Advance the Ecosystem? - http://blogs.msdn.com/b/powershell/archive/2011/02/07/does-your-hard-work-advance-the-ecosystem.aspx Coretech Collections Tool - http://blog.ctglobalservices.com/kaj/coretech-configuration-manager-2012-r2-powershell-automation-module-0-1/ Before you start using these script examples on your production environment, please make [...]

Store encrypted password in a PowerShell script

I write a lot of PowerShell scripts where I need to access different kinds of services, servers and databases. Often these scripts needs to run on schedules in the background and so on. Instead of having cleartext passwords scattered throughout the scriptfile I like to store a securestring version of the password in the script. Normally you would build a credential object using something like this [crayon-59c592f72bbac721045765/] That means that anyone who can open and read the scriptfile, will know what the password for the account in question is. Which is VERY BAD. It would be better if we could [...]

By | 2017-09-07T22:55:56+00:00 September 10th, 2014|Powershell|16 Comments

Generate Random Timeslot for scheduled tasks

I was tasked to create a PS script that created a Windows Server Backup policy with a random start time I came up with the following script for the random start time bits. function Get-TimeSlot($startTime, $EndTime) { $timeslots = @() for ($i = $startTime; $i -ne $EndTime; $i++) { if ($i -eq 24) { $i = 0 } $timeslots += $i } $timeslot = "$(Get-Random $timeslots):00" return $timeslot } Get-TimeSlot -startTime 20 -EndTime 4 [crayon-59c592f72dc51409594185/] There might be a more Powershell’ish way of doing this, but it gets the job done.

By | 2017-08-22T10:37:09+00:00 September 10th, 2014|Powershell|3 Comments

Coretech Configuration Manager 2012 R2 PowerShell automation module 0.1

During the TechEd Kent showed one of our solution that allows you to save all the Collections to an Excel file or to create Collections based on Excel template. We have received a lot of emails and twitter tweets that when we are going to publish it and good news is that we will publish it now :) . If you haven't seen the Kent TechEd video, then I recommend to watch it before you use this module. This is not the latest version and it is work in progress release. We will continue to improve this PowerShell module. Here [...]

Working with Security Scopes in Configuration Manager with PowerShell

Last year @MMS Kent showed our automated RBA solution and I just discovered that this does not work in ConfigMgr 2012 R2 CU1 environment. It seems like they have changed the process behind the UI and in ConfigMgr 2012 R2 CU1 environment they are using different IDs to identify the Object. Before they used FolderTypeID value but now they are using SecuredTypeID values. You will need these values, if you are working with SMS_SecuredCategoryMemberShip WMI class and AddMemberShips/RemoveMemberships mehtods FolderTypeID FolderTypeName SecuredTypeID 2 SMS_Package 2 7 SMS_Query 7 9 SMS_MeteredProductRule 9 11 SMS_ConfigurationItem 11 14 SMS_OperatingSystemInstallPackage 14 16 SMS_VhdPackage 16 [...]

Find OpenSSL files with SCOM (Heartbleed)

OpenSSL for Windows are two DLL files which could be installed on some of your windows servers. The two files are: libssl32.dll or libssl64.dll and I am not saying these should be removed – but perhaps updated.   Powershell Script You could find the two files either by a powershell script like this one: – Start the script like : FindFile.ps1 libssl32.dll, libssl64.dkk and it will create an event for every finle found. [crayon-59c592f730717839353884/] [crayon-59c592f730729293252962/] [crayon-59c592f73072f744049257/] [crayon-59c592f730735275212858/] [crayon-59c592f73073a525254976/] [crayon-59c592f73073f502231807/] [crayon-59c592f730744544280202/] [crayon-59c592f730748772790996/] [crayon-59c592f73074d962030409/] [crayon-59c592f730752421871461/] [crayon-59c592f730757500159712/] [crayon-59c592f73075c714392762/] [crayon-59c592f730761059929132/] [crayon-59c592f730766599275476/] [crayon-59c592f73076b714263296/] [crayon-59c592f73076f436867164/] [crayon-59c592f730774339051535/] [crayon-59c592f730779772539691/] VBS Script Same script done with a VBS script: [...]

How to change Configuration Manager Hardware Inventory Schedule Client Setting

Today I tried to modify Hardware Inventory Schedule client setting and it didn't work. First I thought that I did something wrong or the cmdlet is broken. Here is the cmdlet Verbose output Then I thought that, lets disable the HW client setting and then enable the HW client setting with correct schedule and Bingo it worked correctly. [crayon-59c592f732d89554451718/] If you compare the verbose outputs, then you will see the difference - first time it didn’t query the SMS_SCI_ClientComp WMI instance but second time it did.   Now If I try to modify the schedule again I don’t need to [...]

The EASY WAY – List objects in specific folder in Configuration Manager 2012 with PowerShell

Last week I saw one blog post how to list specific folder objects and I believe that actually there is much easier way to list the objects in specific folder. First we need to figure out the ContainerNodeID which is the folder unique ID. We have several ways to find out the folder unique ID, for example we can run the ConfigMgr Admin console in developer mode or we can use a WMI tool. There are different WMI tools that you can find from the internet or you can simple use the WBEMTEST tool also which is already built-in in [...]

How to move objects in Configuration Manager Admin Console with PowerShell

Starting with Configuration Manager 2012 R2 we have a cmdlet called Move-CMObject. This cmdlet allows to move different objects in Admin Console. We still don't have a cmdlet that allows to create ConfigMgr Admin Console folders but if necessary you can use this code to create folders. Here are 6 different examples How to move objects in ConfigMgr Admin Console [crayon-59c592f735120051436650/] As you see it is really easy to move objects. You can use –InputObject or -ObjectId parameter.   Best