WindowsEarlier today in San Francisco Microsoft officially announced the next Windows version, previously codename Windows Threshold, and surprised just about everybody by naming it Windows 10 (and not Windows 9 as were expected).

While nothing was said about pricing or upgrade paths Microsoft said that a technical preview will be made available tomorrow (1 October ) and the final release (RTM) is planned to late 2015.

Windows 10 will be fully backwards compatible with old apps and it will be possible to run the ”Metro”-apps in desktop mode. It will be scalable on screens from 4 to 80 inches. ”Windows 10 will deliver the right experience on the right device at the right time” said Microsoft’s Terry Myerson.

Joe Belfiore also said tha the command prompt will allow you to use keyboard shortcuts, along with copy and paste.

As have been a public secret for some time now, the start menu returns but in a revamped form. Now it’s a combination of the “Metro” start screen (from Windows 8) and the traditional start menu (from previous Windows versions). The start menu now features a new universal search in the start menu that pulls in results from the web.

The tiles and icons that are shown are a blend of classic apps and new universal apps […]In Windows 8 when users launched a modern app, it sort of had a different environment, we don’t want that duality. We want users on PCs with mice and keyboards to have their familiar UI.” Microsoft’s Joe Belfiore said.

We will keep updating the blog with more information about Windows 10.

1) Download the Script. Change the file extension from txt to ps1 and save it to networkshare. The GUI is created with Sapien Powershell Studio
2) Create a package in sccm but do not create a program. Distribute the package to DP.
3) Edit your Task Sequence and add ”Run Powershell Script”. Browse for the package you just create and write the name of the script in ”Script Name” section. Change execution policy to ”bypass”.
4) Deploy you TS.


DO NOT forget to update your boot image to support .Net and Powershell.

1) Save the following script as OSDComputerName.ps1 on a networkshare.

I use Hyper-v in my labb and Hyper-v virtual machin gives you over 30 digits of serialnumber and here in this script i want only the four first of them. This is because NetBios computer names can handle a maximum lenght of 15 characters.

$SerialNumber = (Get-WmiObject -Class Win32_BIOS | Select-Object SerialNumber).SerialNumber
$ShortSerialNumber = $SerialNumber.Substring(0,4)
$OSDComputerName = “LABB-” + $ShortSerialNumber
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$TSEnv.Value(“OSDComputerName”) = “$OSDComputerName”

2) Create a package in sccm but do not create a program. Distribute the package to DP.

3) Edit your TS and create a ”Group” before ”Apply Windows/Nework Settings” and name it OSDComputerName.

4) Add a ”Run Command Line” with the name ”Set PowerShell Execution Policy” and paste the following:

powershell.exe -noprofile -command "Set-ExecutionPolicy Bypass LocalMachine" -force

5) Add a ”Run command Line” with the name ”OSDComputerName.ps1” and paste the following:

powershell.exe -noprofile -file OSDcomputername.ps1

In ”Package” section browse for the script we created and saved in a networkshare.

6) Add a ”Run command Line” with the name ”Revert Powershell Execution Policy” and paste the following:

powershell.exe -noprofile -command "Set-ExecutionPolicy RemoteSigned LocalMachine" -force

Save the TS and test in your test environament.

Windows 8.1Senior Product Marketing Manager at Microsoft Ben Hunter recently blogged about a new way that Windows 8.1 can be installed while still ensuring that there is plenty of storage left for apps and data.

The method uses the well-known Windows Image Boot format. But instead of uncompressing the image during installation, WIMBoot keeps all of the operating system files compressed on a separate partition. From the user’s perspective, however, nothing looks any different: You still see a C: volume containing Windows, your apps, and all of your data.

A standard WIM file is not usually bigger than around 3GB. This allows for installation on devices with smaller disks, e.g. devices with 16GB or 32GB SSDs or eMMC storage, while still ensuring that there is plenty of storage left for apps and data.

Note that UEFI is a requirement and that WIMBoot will only be supported on Windows 8 logo-certified devices.

Read more about Windows Image File Boot (WIMBoot) here.

Read about Michael Niehaus experiences from experimenting with WIMBoot using MDT 2013 here:


Here is some script to force a Sccm Client’s Machine Policy Cycle on remote client in a domain.

But first. You need to be sure you have enable the service ”Windows Remote Managment” on that client in the domain.
And be sure you run the script in correct logon context.



$ComputerName = Read-host("Enter The computername")</code>

<code>Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000021}"

Reporting service Point in SCCM can be really handy sometimes, when you need to lookup something in a AD domain. Specially when you will see how an deployment has been running.

I discover something strange on a customer’s reporting services. The SSRP Service has been created Loads of Folders with name ConfigMgr_SiteCode.OLD.0 And when I tried to Select every folders and remove them, the internet explorer hanged itself.


old reports

So I created this powershell script to remove all OLD folders.

Remove SCCM Reporting Services Folders ConfigMgr_SiteCode.OLD.*

This Script will help us to remove SCCM Reporting Services folder, that has name ConfigMgr_SiteCode.OLD.*


Enter the ConfigMgr Site Server Name:

Enter the Sitecode:



# Get data
$ConfigMgrServerName = Read-Host("Enter the ConfigMgr Site Server Name")
$ConfigMgrSiteCode = Read-Host("Enter the sitecode")

# Connect to Reporting Services
$URL = ("http://" + $ConfigMgrServerName + "/ReportServer/ReportService2005.asmx?WSDL")
$ConnectToReportService = New-WebServiceProxy -Uri $URL -UseDefaultCredential

# Get all report folders
$RemoveOldReportFolders = $ConnectToReportService.ListChildren("/", $True)

# Remove all Folder with name ConfigMgr_SiteCode.OLD.*
$RemoveOldReportFolders | Where-Object {$_.Name -like ("ConfigMgr_" + $ConfigMgrSiteCode + ".OLD.*")} | ForEach-Object {$ConnectToReportService.DeleteItem($_.Path); "Deleted Folder: " + $_.Name}

The Result:
old reports after

Windows To Go
lets you to boot and run Windows 8 (Enterprise) from a USB stick as well as allowing you to connect to your corporate infrastructure from that image.

So how to deploy Windows To Go in your organization?

Peter Daalmans (MVP in System Center Configuration Manager) has published a blog article in three parts about how to deploy Windows To Go (onto a Ironkey Workspace W500) using SCCM 2012.

Windows To Go, Ironkey and SCCM 2012 R2 better together – part 1
Windows To Go, Ironkey and SCCM 2012 R2 better together – part 2
Windows To Go, Ironkey and SCCM 2012 R2 better together – part 3

As an alternative, Mikael Nystrom has posted a comprehensive blog post about Deploying Windows To Go devices using PowerShell. He generously published the script as well. Thanks Mikael!

Happy deploying 2014!