Most Popular Posts

Saturday, 12 October 2013

Powershell - Enable incremental updates on collections

I am busy at the moment migrating a customer from SCCM 2007 to 2012, as part of the migration I disabled incremental updates on all collections so as not to hurt performance. The customer has a folder of collections that they use to deploy software via active directory groups, all collections are prefixed "AD Deploy". They wanted to enable scheduled & incremental updates on these collections only so I set to do this with powershell, disappointed that there was no cmdlet for this I turned to WMI.

Using the SMS_Collection class from the SMS namespace I was able to filter on collections begining with "AD Deploy" and set the property (RefreshType in this case) to a value of 6, which would enable incremental and scheduled updates. Below is the script I came up with.


#======Start Script==============
$Collections = (Get-WmiObject -Class SMS_Collection -Namespace "root\SMS\site_007" -ComputerName . -Filter "Name Like 'AD Deploy%'")

$Count = 0
foreach ($Col in $Collections){
$Col.RefreshType = 6
$Col.put() | Out-Null
Write-Host $Col
write-host $Col.Name
$Count ++
}
write-host $Count "collections in total"

#=========End Script===========

Here is a link to the script

You can change the filter for collections in your environment if you wish to use it, I would also recommend commenting out the "$Col.put() | Out-Null" line for the first run and do a manual check/count of the collections that this might actually affect ;)

Hope it helps someone out there :)

Wayne

Tuesday, 9 July 2013

Tuning your ConfigMgr 2012 Reporting Point For Speed

I have been doing some testing around this as the speed I see on the reporting node is often disappointing, and I have made some (not so shocking) discoveries. To speed up your reporting point do the following:


  1. Set the initial Size of the ReportServer$ database, by default it is 6mb! once you install a RP it jumps to around 90 and then starts to increase for every report you run. Set its initial size to 1024mb that should help.
  2. Set the autogrow on the database to 1024, it shouldn't ever grow beyond the initial 1024 anyway.
  3. Set the initial size of the ReportServer$ transaction logs to 1024mb
  4. Set the autogrow on the transaction logs, again 1024mb is fine,as long as you take a backup you should be fine, providing you....
  5. Set the recovery mode to SIMPLE. If you don't do this then be prepared to hit disk space issues down the line. Setting to simple commits the logs and starts afresh after a backup
  6. Set the ReportServer$TempDB inital size to 1024mb with autogrow at 1024mb again
  7. Split the ReportServer$TempDB into X number of files where X= as many cores as you have (e.g4 vCpus = 4 files) up to a maximum of 8 files (and I do recommend 8 if you can)
  8. Set the sizes of these files to 1024mb and their autogrowth to 1024mb
Restart the SQL services or the whole box and check out how fast it is, I can barely keep up :)

NB. This was all tested quick and dirty in a lab environment, so please size accordingly and monitor in your environment to ensure all is well.

Wayne

SCCM 2007 Migration failure due to site system named LOCALHOST

This post covers an issue I encountered during a migration and how to fix it.

If you are performing a Configuration Manager 2007 to 2012 Migration and have a site system in the console with the name LOCALHOST that holds the ConfigMgr site server database role as shown:



You will see the following error in the Migmctrl.log file when attempting to gather data from the source hierarchy in your 2012 environment:


To fix this you must run ConfigMgr setup from the 2007 Site server:

When the wizard launches be sure to select Perform Site Maintenance or reset the Site

On the desired action page select Modify SQL Server Configuration

On the SQL Server Configuration page change LOCALHOST to the name of the ConfigMgr 2007 server.



Allow the wizard to complete and review the log file when given the opportunity. You should now see in the console that the ConfigMgr site server database role is now held by the correct site system and not LOCALHOST.

Back in the 2012 environment, retry the data gather and you should have a little more success :)

Wayne







Sunday, 13 January 2013

Windows Intune user sync issues

Following on from Steve Beaumont's post around Windows Intune, it is possible to use the .onmicrosoft address you chose to sync users into the cloud.

My testlab is called testlab.local and my chosen Intune domain name is testlab2013.onmicrosoft.com

To get my users syncing I had to create a UPN suffix in AD of "testlab2013.onmicrosoft.com", alter the users logon name to the new suffix, delete the users from SCCM and force a user discovery and hey presto the users began to sync upto Windows Intune no problems.

This is obviously great for a lab as you don't need to own a domain and don't need to verify any domains to do any testing

Cheers
Wayne

Thursday, 10 January 2013

Software Asset Management (SAM) With SCCM 2012

In this post I want to explore managing licensing within using only SCCM 2012 SP1.

Neil Peterson created a fantastic 3 part blog post that shows how to remove unused software from machines using Orchestrator here: http://bit.ly/1162RqF

In this however he does not cover the very basics of importing 3rd party licenses into configuration manager so that is what I will cover here.

Firstly you must manually create a CSV file that holds the licensing information you wish to import.

In an ideal world the procurement department would create this file, upload it to an internal webpage along with a few basic details and orchestrator would take it from there, but here I am focusing on SCCM and SCCM alone, lets assume we have neither the luxury of time nor orchestrator :)

The CSV File

The csv file must be structured in a certain manner, below is a basic example:



However there are a few caveats with this, these are:
  • Name, Publisher, Version and EffectiveQuantity columns must contain information the rest are optional
  • Any dates entered must be in the format mm/dd/yyyy
  • Name and Version must also match what is in the site database for that piece of software.
To obtain the vales for 7-Zip that you see in my example above I logged onto the SQL server that held the SCCM database, right clicked on the database and selected New Query and then entered the following

SELECT * FROM V_GS_INSTALLED_SOFTWARE WHERE ProductName0 LIKE %Zip%

This returned all of the database rows containing ZIP (1 in total) shown below



Now the information the query returned I was able to build my license file.

Once the file was ready I saved it as a .CSV file and opened with notepad to check the formatting, then went ahead and imported into SCCM.

Importing A Custom CSV file into SCCM

Open the console and navigate to Assets And Compliance -> Asset Intelligence. Right click on Asset Intelligence and select Import Software Licenses, run through the wizard ensuring you select General License statement when given the choice. Once complete navigate to Monitoring -> Reporting and run the report named License 15A - General License Reconciliation Report
This will show you a basic license count and usage and most importantly the difference between the two.




That's all for this post, obviously this can be expanded upon greatly, this is merely the foundations for anyone just starting out with SAM via SCCM.

Cheers
Wayne

Friday, 28 December 2012

Creating A Virtual SAN Using Windows Server 2012 ISCSI Target Role Under Hyper-V

This Blogpost covers the following:

  • Installing the iSCSI Target Server Role on Server 2012
  • Installing the iSCSI Target SMI-S Provider (Optional)
  • Creating an iSCSI Virtual Disk
  • Connecting to the iSCSI Virtual Disk from another machine using iSCSI Initiator

NOTE:**This is for my lab only, I do not recommend you do this in production***

First launch the add roles and features wizard in server 2012 and on the roles page select the iSCSI Target Server Role as shown below


Allow the installation to complete and the server to reboot.

Next if you wish for your virtual SAN to have SMI-S support then you need to first install KB2758246

Once that has been installed on the System Center Virtual Machine Manager SP1 media you will find iSCSITargetSMISProvider.msi in the AMD64\Setup\MSI folder


Run through the install which is no more complex than clicking Next, Next and Finish.


Now we have an iSCSI target server setup that supports SMI-S, more on SMI-S can be found here

In my lab I have simply attached a VHDX to my Server and then within that created my virtual iSCSI disks, this is by no means ideal however. I would have liked to have attached a physical disk to my virtual machine and run the Virtual iSCSI disks straight from that but didn't have a spare SSD lying around.

So to summarize my file server has a C: drive and an E: drive, both are VHDX files that live on the Hyper-V host everything runs on.

Now for the fun part, open Server Manager and browse to File And Storage Services -> iSCSI under iSCSI Virtual Disks click Tasks-> New iSCSI Virtual Disk


This will launch the new iSCSI Virtual Disk Wizard, select the volume on which you wish to store the disk and press Next


Give the disk a meaningful name, in my case I was setting up a SQL cluster so this was going to be my Quorum disk



Once complete press Next


Enter a size for your disk and press Next once complete


On the iSCSI Target page select New iSCSI Target and press Next


Give the Target a meaningful name and press Next once complete



Now we need the IQN of the initiator, to get this logon to the server you are connecting from and launch the iSCSI initiator control panel applet, if it prompts you to start the service click yes.

On the Configuration tab make a note of the Initiator Name




Back on the Target Server on the on the Access Servers page click Add

Now enter the IQN of the initiator in the box as shown

..

Press ok and you will see the iSCSI initiator listed, once complete click Next

Since this is a lab I chose not to configure Authentication and just pressed Next and then Create.

Now switch over to the iSCSI initiator machine (in my case one of the SQL Nodes) and in the iSCSI initiator software click on the Discovery tab

Click Discover Portal and enter the DNS Name of the iSCSI Target server and press OK



Now click on the Targets tab and you should see the target listed, select it and click Connect


If the connection was successful you  will see the status change to Connected as shown




That's all there is to it, now open disk manager and bring the disk online :)

Cheers
Wayne

Thursday, 22 November 2012

Enabling .Net 3.5 in your windows 8 Image

This blogpost covers how to enable .Net 3.5 in your windows 8 wim file and saves you the trouble of running DISM after deployment (or during) to enable it.

Note - This blogpost assumes that you are running this on a windows 8 / server 2012 machine.

First copy the contents of your Windows 8 ISO to a Directory on a drive (Lets call that "C:\Windows 8 Source" here)

Create a folder on your C: drive called "MountedWim"

Now open up an administrative command prompt and type the following:

Dism /Mount-Wim /Wimfile:"C:\Windows 8 Source\Sources\Install.wim" /index:1 /MountDir:C:\MountedWim

This will  mount the windows 8 wim file into this directory

Now type the following:

Dism /Image:C:\MountedWim /EnableFeature /FeatureName:NetFX3 /All /Source:"C:\Windows 8 Source\Sources\sxs"

This will enable .Net 3.5 in the image however we now need to save the changes we have made, next type:

Dism /UnMount-Wim /MountDir:C:\MountedWim /Commit

This will unmount the wim file and commit the changes.

Now deploy the image and you should have .Net 3.5 enabled by default :)

A quick "gotcha" on this, if you use offline servicing in configuration manager to integrate any .Net 3.5 updates into this wim since the .Net 3.5 install is in a "Pending" state your Task Sequence will fail, so watch out for that.

Cheers
Wayne