Windows 2012 (R2) have both a automatic Maintaince Schedule.
This can impact the performance on your server..
Tag: Windows
Sysprep Windows Server 2012 (R2) Faster with /mode:vm Switch
Windows Server 2012’s System Preparation Tool (sysprep.exe) contains a new switch that allows system administrators to generalize the OS (remove any installation specific configuration) faster than previous versions of the tool that were designed for use on physical hardware.
What’s New in Sysprep for Windows Server 2012?
The new VM-mode method for generalizing a Windows 8 or Server 2012 installation only works from inside a virtual machine. Once sysprep has completed the generalization and shutdown the VM, you can copy the VM’s .vhd file and attach it to a new VM in any system that uses the same hypervisor technology.
Use Sysprep to Generalize Windows Server 2012 Running in a VM
You will need to use sysprep from the command line, as there is no option to enable VM mode in the GUI.
- Install Windows 8 or Windows Server 2012 (or later editions) in a virtual machine.
- Customize the operating system as required.
- Switch to the Start screen and type cmd. Make sure that Command Prompt is highlighted in the search results and press CTRL+SHIFT+ENTER to launch the process with administrative privileges. Give consent or enter credentials if prompted.
- Change the working directory to System32 by typing cd c:\windows\system32\sysprep and pressing Enter.
- To run sysprep with the standard GUI options, but also the /mode:vm switch, type sysprep.exe /oobe /generalize /shutdown /mode:vm and press Enter.
Update adds BPA rules for DirectAccess in Windows Server 2012
There is a update that adds new Best Practices Analyzer (BPA) rules. The rules are for DirectAccess on the servers that are running Windows Server 2012.
The following rules are added:
- Checks whether the Domain Name System (DNS) address that is used for internal network resources is correct. If the internal interface of the DirectAccess server has only an IPv4 address, the DNS server that is configured in the Name Resolution Policy Table (NRPT) must be the DNS64 address.
- Gives a warning if the option that enables DirectAccess for Windows 7 clients is not selected.
- Returns an error if the DirectAccess server is also a domain controller.
- Returns an error if both force tunneling and Kerberos authorization are configured on the DirectAccess server.
- Returns an error if the AcceptInterface parameter for DNS64 does not use the same IP address as the one that is used for DNS64.
- If DirectAccess is configured by using the Remote Access Management user interface, checks whether DirectAccess policies are configured on the server.
- Gives a warning if any certificate that can be used on the DirectAccess server has subject alternative names (SANs) but no subject name.
- Provides information if the order of the Internal network interface is below the Internet network interface in Adapters and Bindings.
- Gives a warning if the private key of the IP-HTTPS certificate does not exist on the server when the certificate is used.
- Gives a warning if the DirectAccess client security group includes desktop computers.
- Sends an HTTP request to test whether the certificate revocation list (CRL) field in the IP-HTTPS certificate that is configured on the DirectAccess server is valid. If the request fails, a warning is displayed. This test is only required when Windows 7 clients are configured for DirectAccess.
- Sends an HTTP request to test whether the CRL field in the network location server certificate that is configured on the DirectAccess server is valid. If the request fails, a warning is displayed. This test is only required when Windows 7 clients are configured for DirectAccess, and when NLS is deployed on the DirectAccess server.
- Checks whether an Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) router or load balancing is configured on the network. If this is the case, checks the DNS records for ISATAP. The DNS server should have the records for the internal dynamic IP (DIP) of the server and for the internal virtual IP of the load balancer.
- Checks whether the email address field is configured for Network Connectivity Assistant.
- Checks whether the default gateway is configured on the Internet interface instead of on the Internal interface. If the check fails, a warning is displayed.
- Gives a warning if NRPT exemptions are configured when force tunneling is deployed.
- Makes sure that probes other than Internet Control Message Protocol (ICMP) probes are configured in NCA.
Download the update here: HERE
Incompatibility between Windows 8 roaming user profiles and roaming profiles in other versions of Windows
Roaming user profiles on Windows 8-based or Windows Server 2012-based computers are incompatible with roaming user profiles in other versions of Windows.
Profiles are compatible only between the following client and server operating system pairs:
- Windows 8.1 and Windows Server 2012 R2
- Windows 8 and Windows Server 2012
- Windows 7 and Windows Server 2008 R2
- Windows Vista and Windows Server 2008
Note In this article, when the client operating system is referenced, the same issue applies to its corollary server operating system.
For example, if you try to deploy Windows 8 in an environment that uses roaming, mandatory, super-mandatory, or domain default profiles in Windows 7, you experience the following:
- After you use a user account that has an existing Windows 7 profile to log on to a Windows 8-based computer for the first time, the components from Windows 8 read and modify the profile state.
- Certain Windows 8.1 features may not work as expected because the expected profile state is not present.
- When you try to use the same user account to log on to a Windows 7-based computer, the user profile modification that was performed in Windows 8 may not work as expected in Windows 7.
The issues occur because the profile will contain values that are used differently between the versions of Windows. The user profile will be missing default profile configuration information that is expected by the operating system, and could contain unexpected values that are set by a different operating system version. Therefore, the operating system will not behave as expected. Additionally, profile corruption may occur.
Hotfix: Download
HV Backup A free Hyper-V backup Tool
HVbackup is a very easy and powerful free tool to backup and restore Hyper-V virtual machines, in standalone and clustered (CSV) environments, overcoming all the limitations that a generic tool like Diskshadow provides.
This tool targets Windows 2008 (R2) and Windows Server 2012 (R2). All the corresponding core and free Hyper-V editions are also supported!
HVBackup supports app consistent and crash consistent backups through the Hyper V VSS writer component integrated in the operating system.
There are quite a few expensive commercial solutions on the market supporting this scenario, but this is the first open source one, based on the research we did before publishing the project.
We integrated this tool in our datacenter’s production environment management infrastructure, which means that it undergoes continuous testing in a real world environment 🙂
HVBackup can be invoked from the command line, scripted with Powershell or integrated in any .Net program through it’s class library.
The backup process generates a separate zip file for each virtual machine in the specified output directory, containing all the files owned by the VM and identified for backup by the VSS Hyper-V provider.
Requirements:
.Net Framework 3.5, which can be easily enabled on the command line.
Samples:
HVBackup -a -o c:\backup
Performs a full VSS backup (using the HyperV VSS writer) of all VMs on the host.
HVBackup -l VM1,VM2 -o \\yourserver\backup
Performs a full VSS backup of the provided list of VMs (use quotes if the names contain spaces).
In this sample the output directory is on a remote server.
HVBackup -f list.txt -o c:\backup
Performs a full VSS backup of the VMs names provided in “list.txt”, one per line.
How to perform a scheduled backup
backup.cmd :
set BCKPATH=\\yourserver\yourpath
net use %BCKPATH% /user:<user> <password>
pushd %BCKPATH% && forfiles.exe -m *.zip -d -7 -c “cmd /c del @path”
popd
HVBackup.exe -a -o %BCKPATH% 1> lastlog_out.txt 2> lastlog_err.txt
Note: This script will delete every zip file older than 7 days in the target directory before performing a backup of all the VMs on the host. Change it accordingly to your needs.
Now, as we don’t have a scheduled task UI on hyper-v or server core, in order to schedule the previous script every night at 01 AM, just run:
schtasks.exe /create /tn HVBackup /tr c:\hvbackup\backup.cmd /sc DAILY /ru <username> /rp /st 01:00:00
Tool: http://hypervbackup.codeplex.com/
Download: HVBackup_1_0_beta1_20120330.zip Windows 2008 (R2) and Windows Server 2012
Download: HVBackup_1_0_1_Beta.zip Windows Server 2012 R2
Adding GPO Pack support in MDT 2013 for Windows 8.1 & 2012 R2
If you ever tried to use GPO Packs in MDT 2013 or ConfigMgr 012 R2, you quickly find out they will fail for Windows 8.1 or 2012 R2. The reason? Microsoft forgot to add support for Windows 8.1 in the ZTIApplyGPOPack.wsf script.
Luckily it’s easy to fix, and while you’re at it, why not also add support for Windows Server 2012 R2.
Fix the bug
Find the following section in ZTIApplyGPOPack.wsf (line 86 – 92):
sOSVersion = oEnvironment.Item(“OSCurrentVersion”)
If (Left(sOSVersion,3) = “6.2”) and oEnvironment.Item(“IsServerOS”) then
sOS = “WS2012RTM”
oLogging.CreateEntry “Using Default Windows Server 2012 RTM GPO Pack”, LogTypeInfo
ElseIf (Left(sOSVersion,3) = “6.2”) and Not(oEnvironment.Item(“IsServerOS”)) then
sOS = “Win8RTM”
oLogging.CreateEntry “Using Default Windows 8 RTM GPO Pack”, LogTypeInfoAnd change to:
If (Left(sOSVersion,3) = “6.3”) and oEnvironment.Item(“IsServerOS”) then
sOS = “WS2012R2”
oLogging.CreateEntry “Using Windows Server 2012 SP1 PO Pack”, LogTypeInfo
ElseIf (Left(sOSVersion,3) = “6.3”) and Not(oEnvironment.Item(“IsServerOS”)) then
sOS = “Win81”
oLogging.CreateEntry “Using Windows 8.1 GPO Pack”, LogTypeInfo
ElseIf (Left(sOSVersion,3) = “6.2”) and oEnvironment.Item(“IsServerOS”) then
sOS = “WS2012RTM”
oLogging.CreateEntry “Using Default Windows Server 2012 RTM GPO Pack”, LogTypeInfo
ElseIf (Left(sOSVersion,3) = “6.2”) and Not(oEnvironment.Item(“IsServerOS”)) then
sOS = “Win8RTM”
oLogging.CreateEntry “Using Default Windows 8 RTM GPO Pack”, LogTypeInfo
Or download the file ![]()
Change default Windows network Icon to something Cool!!
To change the network type please do the following:
Hit Winkey + R to open Run prompt and type gpedit.msc
Navigate to: Computer Configuration | Windows Settings | Security Setting | Network List Manager Policies
Choose your Network name from the right pane. In my case network name was wardvissers.local
So the policy look likes
Now we have a Smiley for my wardvissers.local domain
Cool!!
MDT Packages & WSUS a very nice feature.
I long time ago I wrote a acticle mdt-automatisch-updates-via-wsus-laten-installeren-tijdens-het-deployen-van-het-os (Dutch) about using wsus with MDT.
After you deploy a Windows 7 SP1 machine updating takes a lot of time.
You can slipstream windows security updates when you deploy a machine… Windows 7 / Windows 8 / Windows 2008 R2 / Windows 2012.
How you do this: It’s quit simpley. Import de WSUS Content in to Packages.
The error is normal because not everything is imported.
Important:
Delete every time you do this. Update & Hotfix packages. If you don’t you will end in a error state when you deploy a machine.
Exchange Server 2013 Service Pack 1 Coming in Early 2014
Today on the Office blog Exchange Team announced that service pack 1 for the 2013 set of products including Office, SharePoint and Exchange will be released early next year. We know our Exchange customers have been looking for confirmation of the release but also have a desire for an early look at what’s coming with Exchange Server 2013 Service Pack 1 (SP1). So let’s have a first look a few things you can expect to see in SP1. But wait… we haven’t released CU3 – well, news about CU3 is imminent – stay tuned for more information about CU3 coming very soon.
In this post we are highlighting a few of the notable improvements to be included in SP1. This isn’t an all-inclusive list, so stay tuned for additional details as we approach release.
- Windows Server 2012 R2 Support First answering one the most common questions since the release of Windows Server 2012 R2. Exchange 2013 SP1 will add Windows Server 2012 R2 as a supported operating system for Exchange Server 2013 with SP1. Let your planning begin.
- S/MIME support for OWA Support for S/MIME in OWA will be brought back in SP1. With SP1 customers will have S/MIME support across Outlook, Exchange ActiveSync clients, and OWA.
- Edge Transport Server Role The Edge Transport server role for Exchange Server 2013 will be available with SP1.
- Fixes and Improvements Of course, SP1 will include fixes and improvements in areas you’ve helped us identity. SP1 is the first service pack issued in the new Exchange Server cumulative update release model – thus SP1 is essentially CU4. The installation of SP1 will follow the same process as the prior Exchange 2013 CU releases. SP1 will include all fixes included in previously released cumulative updates for Exchange 2013.
SP1 will require customers to update their Active Directory schema – customers should assume this requirement for all Exchange Server 2013 updates. Plan for this required update to quickly take advantage SP1 updates. Active Directory Schema updates for Exchange are additive and always backwards compatible with previous releases and versions.
Removing Windows 8.1 Built-in Applications
Last year Ben Hunter published a PowerShell script that is designed to remove the built-in Windows 8 applications when creating a Windows 8 image. Well now that Windows 8.1 has been released it must update the PowerShell script to work with Windows 8.1.
The script below takes a simple list of Apps and then removes the provisioned package and the package that is installed for the Administrator. To adjust the script for your requirements simply update the $AppList comma separated list to include the Apps you want to remove. The script is designed to work as part of an MDT or Configuration Manager task sequence. If it detects that you are running the script within a task sequence it will log the to the task sequence folder otherwise it will log to the Windows\temp folder.
I chanced the script a little bit. I don’t want to remove some programs dat Ben Hunter did…
The Script:
<#
************************************************************************************************************
Purpose: Remove built in apps specified in list
Pre-Reqs: Windows 8.1
************************************************************************************************************
#>
#—————————————————————————————————————
# Main Routine
#—————————————————————————————————————
# Get log path. Will log to Task Sequence log folder if the script is running in a Task Sequence
# Otherwise log to \windows\temp
try
{
$tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$logPath = $tsenv.Value(“LogPath”)
}
catch
{
Write-Host “This script is not running in a task sequence”
$logPath = $env:windir + “\temp”
}
$logFile = “$logPath\$($myInvocation.MyCommand).log”
# Start logging
Start-Transcript $logFile
Write-Host “Logging to $logFile”
# List of Applications that will be removed
$AppsList = “microsoft.windowscommunicationsapps”,”Microsoft.BingFinance”,”Microsoft.BingMaps”,`
“Microsoft.BingWeather”,”Microsoft.ZuneVideo”,”Microsoft.ZuneMusic”,”Microsoft.Media.PlayReadyClient.2″,`
“Microsoft.Media.PlayReadyClient.2″,”Microsoft.XboxLIVEGames”,”Microsoft.HelpAndTips”,”Microsoft.BingSports”,`
“Microsoft.BingNews”,”Microsoft.BingFoodAndDrink”,”Microsoft.BingTravel”,”Microsoft.WindowsReadingList”,`
“Microsoft.BingHealthAndFitness”,”Microsoft.WindowsAlarms”,”Microsoft.Reader”,”Microsoft.WindowsSoundRecorder”,”Microsoft.SkypeApp”
ForEach ($App in $AppsList)
{
$Packages = Get-AppxPackage | Where-Object {$_.Name -eq $App}
if ($Packages -ne $null)
{
Write-Host “Removing Appx Package: $App”
foreach ($Package in $Packages)
{
Remove-AppxPackage -package $Package.PackageFullName
}
}
else
{
Write-Host “Unable to find package: $App”
}
$ProvisionedPackage = Get-AppxProvisionedPackage -online | Where-Object {$_.displayName -eq $App}
if ($ProvisionedPackage -ne $null)
{
Write-Host “Removing Appx Provisioned Package: $App”
remove-AppxProvisionedPackage -online -packagename $ProvisionedPackage.PackageName
}
else
{
Write-Host “Unable to find provisioned package: $App”
}
}
# Stop logging
Stop-Transcript