<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Trond&#039;s Working!Trond&#039;s Working!</title>
	<atom:link href="http://hindenes.com/trondsworking/feed/" rel="self" type="application/rss+xml" />
	<link>http://hindenes.com/trondsworking</link>
	<description>Ramblings about Windows, Powershell, System Center and IT Management</description>
	<lastBuildDate>Mon, 10 Jun 2013 12:18:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Troubleshooting AD Replication in Windows Azure VMs</title>
		<link>http://hindenes.com/trondsworking/2013/06/10/troubleshooting-ad-replication-in-windows-azure-vms/</link>
		<comments>http://hindenes.com/trondsworking/2013/06/10/troubleshooting-ad-replication-in-windows-azure-vms/#comments</comments>
		<pubDate>Mon, 10 Jun 2013 12:18:26 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Juniper]]></category>
		<category><![CDATA[Replication]]></category>
		<category><![CDATA[Retransmit]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[WebOs]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=582</guid>
		<description><![CDATA[Since we&#8217;re running Office365 we have moved our entire DirSync/ADFS infrastructure into Azure. One of the design goals was to have Office365 sign-in functioning even if our local on-prem infrastructure was completely down/burned up/gone. To achieve this goal, we added a few domain controllers to Azure, so that ADFS/DirSync would still be able to find</p><a href="http://hindenes.com/trondsworking/2013/06/10/troubleshooting-ad-replication-in-windows-azure-vms/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>Since we&#8217;re running Office365 we have moved our entire DirSync/ADFS infrastructure into Azure. One of the design goals was to have Office365 sign-in functioning even if our local on-prem infrastructure was completely down/burned up/gone.</p>
<p>To achieve this goal, we added a few domain controllers to Azure, so that ADFS/DirSync would still be able to find a DC even if our on-prem DCs were unreachable. So far so good.</p>
<p>However, we&#8217;ve been having lots and lots of ad replication issues between our on-prem DCs and our Azure DCs. Replication between our main site and our back-up site have always been flawless so I kinda suspected it wasn&#8217;t related to the DCs in our main site.</p>
<p>Digging deeper into this, I found the following:</p>
<p>1. Our errors seemed to be RPC-related (lots of these: &#8220;Active Directory Domain Services attempted to perform a remote procedure call (RPC) to the following server.  The call timed out and was cancelled&#8221;)</p>
<p>2. PortQuery show no problems hooking on to LDAP, and RPCPing between DCs was happy as well</p>
<p>3. This is the best article around, for troubleshooting AD replication related to RPC: <a href="http://social.technet.microsoft.com/wiki/contents/articles/4494.troubleshooting-the-rpc-server-is-unavailable.aspx" target="new">http://social.technet.microsoft.com/wiki/contents/articles/4494.troubleshooting-the-rpc-server-is-unavailable.aspx</a></p>
<p>4. Using Wireshark, I noticed we were getting a high number of retransmissions when AD Replication was attempted.</p>
<p>5. Our Azure VPN link is terminated by a Juniper SSG140 on our side, and the VPN setup was kinda done manually, since our on-prem network is quite &#8220;strange&#8221;. After hours and hours of fiddling, we decided to uncheck these guys (Optimized/Rekey):<br />
<a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/06/2013-06-10-11_55_17-SSG140_Timpex_Juniper-ScreenOS 6.3.0r10.0.png" rel="lightbox[582]" title="Troubleshooting AD Replication in Windows Azure VMs"><img class="alignnone size-medium wp-image-583" alt="2013-06-10 11_55_17-SSG140_Timpex_Juniper-ScreenOS 6.3.0r10.0" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/06/2013-06-10-11_55_17-SSG140_Timpex_Juniper-ScreenOS 6.3.0r10.0-300x118.png" width="300" height="118" /></a></p>
<p>6. So far, our replication is a lot more stable now. I&#8217;ll wait and see&#8230;.</p>
<p>It&#8217;s worth noting that once we figured out that the errors were not related to our on-prem DCs we spun up a test domain seperate from our production domain, with on on-prem DC and one Azure-based DC. Seing similar problems in this domain led us to believe that this was network-related. Having a test-environment also let us do crazy stuff like isntalling WireShark on our DCs &#8211; something I would not recommend doing in production.</p>
<p>Cloud is happy again!</p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/06/10/troubleshooting-ad-replication-in-windows-azure-vms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevOpsifying OS Deployment: TeamCity and MDT (part 1)</title>
		<link>http://hindenes.com/trondsworking/2013/06/09/devopsifying-os-deployment-teamcity-and-mdt-part-1/</link>
		<comments>http://hindenes.com/trondsworking/2013/06/09/devopsifying-os-deployment-teamcity-and-mdt-part-1/#comments</comments>
		<pubDate>Sun, 09 Jun 2013 13:27:27 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Continous Integration]]></category>
		<category><![CDATA[Devops]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=577</guid>
		<description><![CDATA[I&#8217;m a big fan of the whole &#8220;DevOps&#8221; movement, although the term itself tends to get some abuse. As it turns out, us IT Pros or whatever we call ourselves have a lot to learn from our developer friends (or foes, depending on your experiences). Take that huge library of PowerShell scripts you have in</p><a href="http://hindenes.com/trondsworking/2013/06/09/devopsifying-os-deployment-teamcity-and-mdt-part-1/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m a big fan of the whole &#8220;DevOps&#8221; movement, although the term itself tends to get some abuse.</p>
<p>As it turns out, us IT Pros or whatever we call ourselves have a lot to learn from our developer friends (or foes, depending on your experiences). Take that huge library of PowerShell scripts you have in your documents library, for instance. Developers figured out that they needed source control for all their code decades ago, while we&#8217;re nowhere near.</p>
<p>The reason for that is quite simple. Working in code is fairly new to us admins. With the exception of router configuration, there was simply no way to &#8220;pack&#8221; what we do into code. The &#8220;artifacts&#8221; we produced and updated were install procedures and binders with runbooks in them. And screenshots. Lots and lots of screenshots to document the way we clicked through wizards. Not so much anymore.</p>
<p>With PowerShell now becoming a first-rate citizen this is all changing. The whole notion of &#8220;Infrastructure as Code&#8221;, which is a lot older in the *nix community than among us Windows folks is finally becoming real-world. And if you don&#8217;t know PowerShell yet, you better hurry up!</p>
<p>So, now that our &#8220;work&#8221; can be encapsulated in ps1 files instead of word documents, it&#8217;s time to have a look at what developers are doing and see if there&#8217;s stuff we can pick up. Source control is one. Git is a bit of a mouthful to many, but there are several tools you can use to make the whole git &#8220;experience&#8221; a lot more enjoyable. <a href="http://www.atlassian.com/software/sourcetree/overview" target="_blank">SourceTree </a>is a great example of a well-working client that &#8220;talks&#8221; git but hides all the weird commands from you. Unless you really want to see what&#8217;s going on, that is.</p>
<p>Another area where we have lots to learn is around testing and so-called <a href="http://en.wikipedia.org/wiki/Continuous_integration" target="_blank">continous integration </a>(CI). In a development project, chances are the first thing that&#8217;s done is to set up a CI server to do continous integration. It works like this: Developers code away, and when they&#8217;re happy with a component or class or whatever, they check it in (upload it, so to speak). The CI process then kicks in and compiles the project (with the new changes) and run so-called &#8220;unit tests&#8221; (the tests are defined along with the code itself). Unit tests are small programs that make sure that a function that mutliplies two numbers actually is able to multiply those numbers &#8211; for instance. If the unit tests are all green, then the CI server spits out a new &#8220;build&#8221; of the project.</p>
<p>Some take this CI notion even further, and implement systems for &#8220;continous deployment&#8221; or <a href="http://en.wikipedia.org/wiki/Continuous_delivery" target="_blank">continous delivery</a>. These systems wait for new builds from the CI Server and deploys (installs or upgrades) the program into various environments (test, staging, production). Imagine a team for developers working on a web site. Code is changed and committed, and the systems automaticly compiles, builds and deploys the changes to a test environment. When everyone&#8217;s happy with the results, the change is deployed into production with the push of a button and the new &#8220;version&#8221; is live for me and you to use.</p>
<p>So, back to the quiestion: What can we IT Pros learn from or dev friends?</p>
<p>As it turns out, lots if what we do can&#8217;t be directly translated into developer processes. An administrator&#8217;s world revolves around controlling change, and while a developer can materialize her changes in the form of a &#8220;build&#8221;, that&#8217;s not so easy for an administrator. We can&#8217;t &#8220;build&#8221; our entire datacenter everytime we change an IP address or a policy our a router config.</p>
<p>However, some processes are very developer-y. One such process is OS Deployment. There is development (scripts are changed), which results in a build (an image), which is tested (in a virtual environment or a test computer) and then deployed into production (installed onto user&#8217;s laptops or workstations).</p>
<p>So, with that in mind I wanted to try and implement a OS Deploy process using <a href="http://technet.microsoft.com/en-us/solutionaccelerators/dd407791.aspx" target="_blank">Microsoft MDT</a> and <a href="http://www.jetbrains.com/teamcity/" target="_blank">Jetbrains Teamcity</a>, which is a popular CI Server. More to come!</p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/06/09/devopsifying-os-deployment-teamcity-and-mdt-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simplifying the &#8220;Create new VM&#8221; PowerShell scripts</title>
		<link>http://hindenes.com/trondsworking/2013/06/06/simplifying-the-create-new-vm-powershell-scripts/</link>
		<comments>http://hindenes.com/trondsworking/2013/06/06/simplifying-the-create-new-vm-powershell-scripts/#comments</comments>
		<pubDate>Thu, 06 Jun 2013 14:27:06 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[System Center Virtual Machine Manager]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=565</guid>
		<description><![CDATA[If you&#8217;re at all interested in automating the tasks you perform in the VMM 2012 SP1 GUI, you probably appreciate the &#8220;View Script&#8221; button as much as I do. However, even if you have your VM Templates all setup and ready to go, and basically just &#8220;Next&#8221; through the &#8220;New VM&#8221; wizard, the generated script</p><a href="http://hindenes.com/trondsworking/2013/06/06/simplifying-the-create-new-vm-powershell-scripts/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;re at all interested in automating the tasks you perform in the VMM 2012 SP1 GUI, you probably appreciate the &#8220;View Script&#8221; button as much as I do. However, even if you have your VM Templates all setup and ready to go, and basically just &#8220;Next&#8221; through the &#8220;New VM&#8221; wizard, the generated script ends up being 57(!) lines long (including whitespace). It&#8217;s butt-ugly, quite frankly.</p>
<p>So, I wanted to find out how <em>little</em> code could be used to successfully create a VM based on a template. First stop: PowerShell ISE.</p>
<p>If you have the VMM console installed on the same machine as your ISE, you can simply load the VirtualMachineManager modules in the ISE console to have a look at them:</p>
<pre class="brush: powershell; title: ; notranslate">
Get-Module -ListAvailable Virtualmach* | Import-Module
</pre>
<p>From there, you can view the CmdLets in the built-in help. You need to hit &#8220;Refresh&#8221; first:<br />
<a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/06/2013-06-06-16_11_11-Windows-PowerShell-ISE.png" rel="lightbox[565]" title="Simplifying the "Create new VM" PowerShell scripts"><img class="alignnone size-medium wp-image-569" alt="2013-06-06 16_11_11-Windows PowerShell ISE" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/06/2013-06-06-16_11_11-Windows-PowerShell-ISE-172x300.png" width="172" height="300" /></a><br />
These &#8220;tabs&#8221;, like &#8220;NewStoredVmFromHardwareProfile&#8221; are so-called parameter sets. They are used in CmdLets to make sure that you pass the required parameters to that CmdLet. For instance, if you pass parameter &#8220;foo&#8221;, you also need to pass parameter &#8220;bar&#8221;. On the other hand, if you pass parameter &#8220;flunk&#8221; then that&#8217;s all you need. So, these parameter sets represent groups of parameters that you can pass the CmdLet. More on Parameter Sets can be found <a href="http://blogs.technet.com/b/heyscriptingguy/archive/2011/06/30/use-parameter-sets-to-simplify-powershell-commands.aspx" target="_blank">here</a>.</p>
<p>Anyway, looking at the one called NewVmFromVmConfig seems to be the &#8220;cheapest&#8221; one to use, it only requires two parameters (the ones with a star):<br />
<a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/06/2013-06-06-16_14_35-Windows-PowerShell-ISE.png" rel="lightbox[565]" title="Simplifying the "Create new VM" PowerShell scripts"><img class="alignnone size-medium wp-image-571" alt="2013-06-06 16_14_35-Windows PowerShell ISE" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/06/2013-06-06-16_14_35-Windows-PowerShell-ISE-300x70.png" width="300" height="70" /></a></p>
<p>This is also the one used in the script VMM spits out when you hit the &#8220;View Script&#8221; button. The &#8220;Name&#8221; parameter should be fairly straight forward. The &#8220;VMConfiguration&#8221; parameter less so. VMConfiguration basically represents the config of the VM you wish to create (duh), and you can create it from a VM Template.</p>
<p>If you have a template with everything in it (run as accounts, join domain details, product keys and what not), the VMConfiguration part is simple. So, from the 57 lines og ugliness of the generated VMM script, I ended up with a function which is really only 6 lines of code. Mind you, this will only work if your template is already configured with all the settings VMM expects to find to be able to fire up your new VM.</p>
<p>Here&#8217;s the function I ended up with:</p>
<pre class="brush: powershell; title: ; notranslate">
Function Deploy-SCVMSimple
    {
        [CmdletBinding()]
        Param(
            [String]$VMName,
            [String]$cloud,
            [String]$Template
            )

        $TemplateObj = Get-SCVMTemplate -All | where { $_.Name -eq $Template }
        $virtualMachineConfiguration = New-SCVMConfiguration -VMTemplate $TemplateObj -Name $VMName
        $cloudObj = Get-SCCloud -Name $cloud

        Write-Verbose &quot;Creating VM $VMName in cloud $cloud&quot;
        New-SCVirtualMachine -Name $VMName -VMConfiguration $virtualMachineConfiguration -Cloud $cloudObj -Computername $VMName| out-null

        #return object
        Get-SCVirtualMachine -name $VMName
    }
</pre>
<p>And you can run it like this:</p>
<pre class="brush: powershell; title: ; notranslate">
Deploy-SCVMSimple -VMName &quot;TestComputer9&quot; -cloud &quot;VDI Computers&quot; -Template &quot;VDI Template V2&quot; -Verbose
</pre>
<p>Quite a nice improvement!<br />
Oh, by the way: This script does not do any validation of the parameters you pass it, so expect bad things to happen if you start using this in production as-is. It is only meant as an excercise.</p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/06/06/simplifying-the-create-new-vm-powershell-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fumbling through Windows Server 2012 Virtual Desktop Infrastructure (VDI)</title>
		<link>http://hindenes.com/trondsworking/2013/04/23/fumbling-through-windows-server-2012-virtual-desktop-infrastructure-vdi/</link>
		<comments>http://hindenes.com/trondsworking/2013/04/23/fumbling-through-windows-server-2012-virtual-desktop-infrastructure-vdi/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 14:46:48 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Unattend]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[Windows Server 2012]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=550</guid>
		<description><![CDATA[I&#8217;m deploying a small VDI infrastructure for my employer. Being used to Citrix XenDesktop, the Windows 2012 implementation is, how to put it, &#8220;lightweight&#8221;. The team has done a tremendous job of exposing the various config tasks in Server Manager. Tasks such as changing SSL certs across multiple hosts or deploying new VDI collections use</p><a href="http://hindenes.com/trondsworking/2013/04/23/fumbling-through-windows-server-2012-virtual-desktop-infrastructure-vdi/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m deploying a small VDI infrastructure for my employer. Being used to Citrix XenDesktop, the Windows 2012 implementation is, how to put it, &#8220;lightweight&#8221;.</p>
<p>The team has done a tremendous job of exposing the various config tasks in Server Manager. Tasks such as changing SSL certs across multiple hosts or deploying new VDI collections use remoting and PowerShell workflows to an impressive degree. It all seems almost too easy. Which is just what it is when you get stuck. Microsoft has completely forgotten to write good documentation for its VDI implementation. All you&#8217;ll find on Technet is some &#8220;test lab guides&#8221; (that are more often than not wrong of simply missing important steps) and a &#8220;troubleshooting&#8221; guide. I mean, come on. The best I&#8217;ve found so far is the built-in help for the RemoteDesktop PowerShell module. Simply nowhere near good enough for serious use.</p>
<p>Anyways. Apart from a few glaring bugs, the solution works fairly well. User Profile Disks are nice, and it&#8217;s even possible to specify what parts of the profile to keep at logoff, and what to discard.</p>
<p>The bugs I&#8217;ve found:</p>
<p>1. When creating a new Collection (of VDI VMs), I&#8217;m not able to choose the Template VM (or &#8220;Gold VM&#8221;) from the list. It simply isn&#8217;t there. Using PowerShell to create the Collection, it all works as advertised</p>
<p>2. If you&#8217;re customizing the VMs with an unattend.xml file, I&#8217;ve read that you need to remove the first line in the unattend file, or else the deployment will fail.</p>
<p>3. The &#8220;Auto save delay&#8221; setting on the collection, which specifies how long the VM should be kept running after user logoff before reverting, doesn&#8217;t always work. I have no idea why.</p>
<p>As for the PowerShell support, it&#8217;s in line with the rest of Windows Server 2012 &#8211; just great. It lets you script every single thing you&#8217;re able to do in the UI. Some of the CmdLets take an insane number of parameters, but that&#8217;s just how it is. Lots to do. In case you need it, I&#8217;ve included my own script for deploying a new Collection of 3 VMs. The &#8220;Template VM&#8221; needs to be a sysprepped VM, in powered off mode. I&#8217;ve tried to explain the various parameters as best I could, since official documentation is so lacking at the moment.</p>
<pre class="brush: powershell; title: ; notranslate">
$CollectionName = &quot;Timpex VDI&quot; #Name of the VDI Collection
$TemplateName = &quot;Timpex_VDI_Template&quot; #The VM to be used as a template. Needs to be sysprepped and shut down
$TemplateHostServer = &quot;TP-HV01.timpex.net&quot; #The Hyper-V Server where the template exists
$Allocation = @{&quot;TP-HV01.timpex.net&quot;=3} #The hosts and number of VMs to create. Here I'm creating only one, on host TP-HV01
$usergroups = &quot;TIMPEXNET\domain users&quot; #The AD Group with access to the Collection
$ConnectionBroker = &quot;tp-app13.timpex.net&quot; #The Connection Broker computer
$UnattendFilePath = &quot;\\tp-app13\c$\RDVirtualDesktopTemplate\Timpex-vdi-template-unattend.xml&quot; #Path of the unattend file (Be sure to remove the first line (&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?--&gt;) in this file.
$LocalStoragePath = &quot;D:\Hyper-V Data\VDI&quot; #Where (on the hyper-v host) the VMs should be placed
$NamePrefix = &quot;TPVDI&quot; #The computername prefix of VMs. A number will be added to this prefix when VMs are generated
$UserProfileDiskPath = &quot;\\tp-fil01.timpex.net\uvhd&quot; #Path of User Profile disks
$machineOU = &quot;OU=VDI VMs,OU=Workstations,DC=timpex,DC=net&quot; #OU where machine accounts for VMs are to be placed. The connection broker computer needs write access to this OU.

#Do it
New-RDVirtualDesktopCollection -CollectionName $CollectionName -PooledManaged -VirtualDesktopTemplateName $TemplateName -VirtualDesktopTemplateHostServer $TemplateHostServer -VirtualDesktopAllocation $Allocation -StorageType LocalStorage -Description &quot;PowerShell created Virtual Desktop Pool&quot; -UserGroups $usergroups -ConnectionBroker $ConnectionBroker -VirtualDesktopNamePrefix $NamePrefix -VirtualDesktopPasswordAge 31 -UserProfileDiskPath $UserProfileDiskPath -MaxUserProfileDiskSizeGB 10 -OU $MachineOU -LocalStoragePath $LocalStoragePath -Verbose -CustomSysprepUnattendFilePath $UnattendFilePath

#Configure stuff
$RDColl = Get-RDVirtualDesktopCollection $CollectionName
$RDCOll | Set-RDVirtualDesktopCollectionConfiguration -ClientDeviceRedirectionOptions Clipboard,Drive,AudioVideoPlayBack -RedirectAllMonitors $false -SaveDelayMinutes 5
</pre>
<p>Also, here&#8217;s the unattend file I&#8217;m referencing. Notice that you don&#8217;t need to specify domain join details or computername, as these will be dynamically injected into the unattend file as the vms are deployed (mind you, I&#8217;m deploying x86-based VMs at the moment, so if you want to use x64-based VMs you need to use the corresponding x64 components in the unattend file).</p>
<pre class="brush: xml; title: ; notranslate">
&lt;unattend xmlns=&quot;urn:schemas-microsoft-com:unattend&quot;&gt;
&lt;settings pass=&quot;specialize&quot;&gt;
&lt;component name=&quot;Microsoft-Windows-International-Core&quot; processorArchitecture=&quot;x86&quot; publicKeyToken=&quot;31bf3856ad364e35&quot; language=&quot;neutral&quot; versionScope=&quot;nonSxS&quot; xmlns:wcm=&quot;&lt;a href=&quot;http://schemas.microsoft.com/WMIConfig/2002/State&quot;&gt;http://schemas.microsoft.com/WMIConfig/2002/State&lt;/a&gt;&quot; xmlns:xsi=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&quot;&gt;
&lt;InputLocale&gt;0414:00000414&lt;/InputLocale&gt;
&lt;SystemLocale&gt;nb-NO&lt;/SystemLocale&gt;
&lt;UILanguage&gt;nb-NO&lt;/UILanguage&gt;
&lt;UserLocale&gt;nb-NO&lt;/UserLocale&gt;
&lt;/component&gt;
&lt;/settings&gt;
&lt;settings pass=&quot;oobeSystem&quot;&gt;
&lt;component name=&quot;Microsoft-Windows-Shell-Setup&quot; processorArchitecture=&quot;x86&quot; publicKeyToken=&quot;31bf3856ad364e35&quot; language=&quot;neutral&quot; versionScope=&quot;nonSxS&quot; xmlns:wcm=&quot;&lt;a href=&quot;http://schemas.microsoft.com/WMIConfig/2002/State&quot;&gt;http://schemas.microsoft.com/WMIConfig/2002/State&lt;/a&gt;&quot; xmlns:xsi=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&quot;&gt;
&lt;OOBE&gt;
&lt;HideEULAPage&gt;true&lt;/HideEULAPage&gt;
&lt;HideWirelessSetupInOOBE&gt;true&lt;/HideWirelessSetupInOOBE&gt;
&lt;NetworkLocation&gt;Work&lt;/NetworkLocation&gt;
&lt;ProtectYourPC&gt;3&lt;/ProtectYourPC&gt;
&lt;SkipMachineOOBE&gt;true&lt;/SkipMachineOOBE&gt;
&lt;SkipUserOOBE&gt;true&lt;/SkipUserOOBE&gt;
&lt;/OOBE&gt;
&lt;UserAccounts&gt;
&lt;AdministratorPassword&gt;
&lt;Value&gt;WouldntYouLike2Know&lt;/Value&gt;
&lt;PlainText&gt;false&lt;/PlainText&gt;
&lt;/AdministratorPassword&gt;
&lt;/UserAccounts&gt;
&lt;WindowsFeatures&gt;
&lt;ShowMediaCenter&gt;false&lt;/ShowMediaCenter&gt;
&lt;ShowWindowsMail&gt;false&lt;/ShowWindowsMail&gt;
&lt;ShowWindowsMediaPlayer&gt;false&lt;/ShowWindowsMediaPlayer&gt;
&lt;/WindowsFeatures&gt;
&lt;/component&gt;
&lt;component name=&quot;Microsoft-Windows-International-Core&quot; processorArchitecture=&quot;x86&quot; publicKeyToken=&quot;31bf3856ad364e35&quot; language=&quot;neutral&quot; versionScope=&quot;nonSxS&quot; xmlns:wcm=&quot;&lt;a href=&quot;http://schemas.microsoft.com/WMIConfig/2002/State&quot;&gt;http://schemas.microsoft.com/WMIConfig/2002/State&lt;/a&gt;&quot; xmlns:xsi=&quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&quot;&gt;
&lt;SystemLocale&gt;nb-NO&lt;/SystemLocale&gt;
&lt;UILanguage&gt;nb-NO&lt;/UILanguage&gt;
&lt;UserLocale&gt;nb-NO&lt;/UserLocale&gt;
&lt;InputLocale&gt;0414:00000414&lt;/InputLocale&gt;
&lt;/component&gt;
&lt;/settings&gt;
&lt;cpi:offlineImage cpi:source=&quot;catalog://tp-fil01/pc-deployment/operating systems/win7sp1x64no_office2013_patched20130417/win7sp1x64no_office2013_patched20130417_dep07ddrive.clg&quot; xmlns:cpi=&quot;urn:schemas-microsoft-com:cpi&quot; /&gt;
&lt;/unattend&gt;

</pre>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/04/23/fumbling-through-windows-server-2012-virtual-desktop-infrastructure-vdi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bits and bobs from my PowerShell profile #1: Get-specialfolder</title>
		<link>http://hindenes.com/trondsworking/2013/04/14/bits-and-bobs-from-my-powershell-profile-1-get-specialfolder/</link>
		<comments>http://hindenes.com/trondsworking/2013/04/14/bits-and-bobs-from-my-powershell-profile-1-get-specialfolder/#comments</comments>
		<pubDate>Sun, 14 Apr 2013 21:22:18 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Profile]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=539</guid>
		<description><![CDATA[I thought I&#8217;d share a few bits and pieces from my PowerShell profile that I&#8217;ve gathered over the years. Most of it is not fancy at all, but might be useful to you still. The PowerShell profile is a script file that gets executed everytime you start the PowerShell shell. It&#8217;s where you put your</p><a href="http://hindenes.com/trondsworking/2013/04/14/bits-and-bobs-from-my-powershell-profile-1-get-specialfolder/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>I thought I&#8217;d share a few bits and pieces from my PowerShell profile that I&#8217;ve gathered over the years. Most of it is not fancy at all, but might be useful to you still.</p>
<p>The PowerShell profile is a script file that gets executed everytime you start the PowerShell shell. It&#8217;s where you put your own aliases and special commands and other stuff that make your day just a little bit easier. The location of the Profile script is stored in a variable itself, $Profile. To see if you have one, you can simply type:</p>
<pre class="brush: powershell; title: ; notranslate">
test-path $Profile
</pre>
<p>If you want to create one, it&#8217;s easiest done by typing</p>
<pre class="brush: powershell; title: ; notranslate">
new-item -itemtype file -path $profile
</pre>
<p>And you&#8217;re off!</p>
<p>Anyways, to the subject. I try and keep a fairly organized folder structure for all my scripts and modules, which now counts upwards of 2000(!) files. In my documents folder, I have a scripts folder, and inside it I have a folder for each language I work with. The two I work with the most are PowerShell and SQL Server scripts.</p>
<p><a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/04/2013-04-14-23_07_23-Powershell.jpg" rel="lightbox[539]" title="Bits and bobs from my PowerShell profile #1: Get-specialfolder"><img class="alignnone size-medium wp-image-542" alt="2013-04-14 23_07_23-Powershell" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/04/2013-04-14-23_07_23-Powershell-300x175.jpg" width="300" height="175" /></a></p>
<p>Inside my PowerShell folder, I have subdivided my scripts into the following:<br />
-3rd-party scripts: Modules and scripts I download from the masters, like the <a href="http://jdhitsolutions.com/blog/2013/03/wmi-explorer-from-the-powershell-guy/" target="_blank">WMI Explorer script</a> which I honestly could not live without.<br />
-Normaldev: scripts I&#8217;m working on. Anything from rough outlines and ideas to working scripts<br />
-Moduledev: Scripts I&#8217;ve built into PowerShell modules (more mature than the ones in my &#8220;normaldev&#8221; folder)<br />
-Utilities: Small scripts that are usually referenced by my Profile</p>
<p>This works for me. It gives me a fairly organized way of working with stuff from inception through finishing a module and releasing it onto servers or GitHub if it&#8217;s part of a more formal product.</p>
<p>This all means that whenever I fire up PowerShell, chances are good that I want to quickly navigate to that PowerShell scripts folder. Here&#8217;s a few lines of code I&#8217;ve put in my profile to make that as easy as possible:</p>
<pre class="brush: powershell; title: ; notranslate">
function get-SpecialFolder { 
  param([System.Environment+SpecialFolder]$Alias) 
  [Environment]::GetFolderPath([System.Environment+SpecialFolder]$alias) 
}

$DocsFolder  = get-SpecialFolder MyDocuments
$PowerShellScriptsFolder = &quot;$DocsFolder\Scripts\Powershell&quot;

function GoTo-PowershellFolder
	{
		Set-Location &quot;$DocsFolder\Scripts\Powershell&quot;
	}
	
function GoTo-DocsFolder
	{
		Set-Location $docsfolder
	}

New-Alias -Name gtd -Value GoTo-DocsFolder
New-Alias -Name gtp -Value GoTo-PowershellFolder
</pre>
<p>Since the path to my documents folder varies from computer to computer, I&#8217;m using Windows built-in &#8220;SpecialFolder&#8221; functions go get to my documents path. From there, I can construct variables for my &#8220;Documents&#8221; path, and thereby my &#8220;PowerShell&#8221; path (which is in Documents\Scripts\PowerShell).</p>
<p>So, with some easy-to-remember aliases I can fire up PowerShell, and simply write</p>
<pre class="brush: powershell; title: ; notranslate">
gtp
</pre>
<p>and I&#8217;m where I need to be.</p>
<p>Happy profiling!</p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/04/14/bits-and-bobs-from-my-powershell-profile-1-get-specialfolder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Server 2012 NIC Teaming and Netgear Prosafe switches</title>
		<link>http://hindenes.com/trondsworking/2013/04/13/windows-server-2012-nic-teaming-and-netgear-prosafe-switches/</link>
		<comments>http://hindenes.com/trondsworking/2013/04/13/windows-server-2012-nic-teaming-and-netgear-prosafe-switches/#comments</comments>
		<pubDate>Sat, 13 Apr 2013 09:07:59 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[LACP]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Windows Server 2012]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=530</guid>
		<description><![CDATA[I&#8217;m used to working with medium-sized datacenters where walls are filled with server blades and SANs and stuff I do not understand. My new job &#8211; not so much. On my first visit to the &#8220;server room&#8221; I found a pair of HP ML 350 G3 (!) servers gathering dust in a corner. In order</p><a href="http://hindenes.com/trondsworking/2013/04/13/windows-server-2012-nic-teaming-and-netgear-prosafe-switches/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m used to working with medium-sized datacenters where walls are filled with server blades and SANs and stuff I do not understand. My new job &#8211; not so much. On my first visit to the &#8220;server room&#8221; I found a pair of HP ML 350 G3 (!) servers gathering dust in a corner.</p>
<p>In order to support a more advanced CI process and virtualize the few production systems we have, I invested in a HP DL 380G8 server and new switches all around. We&#8217;re now on gigabit links all the way out to each workstation, and floors are connected to each other with a 2Gb link. For switches, I bought 3 Netgear GSM7224V2 switches. For our use, these work wonders at a fraction of the price of Cisco units.</p>
<p>Using Windows Server 2012 on the new HP server, we&#8217;re using all 4 NICs on the server in a so-called &#8220;converged fabric&#8221;.</p>
<p>Anyway, what I was gonna tell you anyway in this post, is that Windows Server NIC teaming in LACP mode works nicely with Netgear LAGs (Link Aggregation Groups). Simply define a LAG on the NetGear switch and add the switchports connected to your converged fabric. On the Windows Server, define a NIC Team using LACP/Address Hash, and witness a nice increase in network speed:</p>
<p><a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/04/2013-04-13-11_02_00-TP-HV01-Remote-Desktop-Connection-Manager-v2.2.png" rel="lightbox[530]" title="Windows Server 2012 NIC Teaming and Netgear Prosafe switches"><img class="alignnone size-medium wp-image-531" alt="2013-04-13 11_02_00-TP-HV01 - Remote Desktop Connection Manager v2.2" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/04/2013-04-13-11_02_00-TP-HV01-Remote-Desktop-Connection-Manager-v2.2-268x300.png" width="268" height="300" /></a> <a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/04/2013-04-13-11_04_33-TP-HV01-Remote-Desktop-Connection-Manager-v2.2.png" rel="lightbox[530]" title="Windows Server 2012 NIC Teaming and Netgear Prosafe switches"><img class="alignnone size-medium wp-image-532" alt="2013-04-13 11_04_33-TP-HV01 - Remote Desktop Connection Manager v2.2" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/04/2013-04-13-11_04_33-TP-HV01-Remote-Desktop-Connection-Manager-v2.2-300x189.png" width="300" height="189" /></a></p>
<p>BTW; Read <a href="http://blogs.technet.com/b/keithmayer/archive/2012/10/16/nic-teaming-in-windows-server-2012-do-i-need-to-configure-my-switch.aspx#.UWkatWY4V9A" target="_blank">this blog post </a>for more details on nic teaming.</p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/04/13/windows-server-2012-nic-teaming-and-netgear-prosafe-switches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to set up Azure Recovery Services Backup</title>
		<link>http://hindenes.com/trondsworking/2013/04/09/how-to-set-up-azure-recovery-services-backup/</link>
		<comments>http://hindenes.com/trondsworking/2013/04/09/how-to-set-up-azure-recovery-services-backup/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 19:36:06 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Azure Recovery Services]]></category>
		<category><![CDATA[Certificate]]></category>
		<category><![CDATA[Windows Server 2012]]></category>
		<category><![CDATA[WindowsAzure]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=526</guid>
		<description><![CDATA[I&#8217;ve been looking everywhere for correct documentation on how to set up the certificate for Azure Recovery Services backup, the artist formerly known as Windows Azure Backup. There is a document here outlining how to generate a self-signed certificate, but it doesn not work &#8211; the produced certifice will not be accepted by Azure when</p><a href="http://hindenes.com/trondsworking/2013/04/09/how-to-set-up-azure-recovery-services-backup/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been looking everywhere for <strong>correct </strong>documentation on how to set up the certificate for Azure Recovery Services backup, the artist formerly known as Windows Azure Backup.</p>
<p>There is a <a href="https://www.windowsazure.com/en-us/manage/services/recovery-services/configure-a-backup-vault/" target="_blank">document here </a>outlining how to generate a self-signed certificate, but it doesn not work &#8211; the produced certifice will not be accepted by Azure when you try and upload it to the portal. Among other things, the doc states that the certificate expiry date can not be more than 3 years into the future, a fact the how-to does not consider.</p>
<p>Anyway, here&#8217;s my &#8220;how to create a certificate for Azure Recovery Services Backup&#8221;:</p>
<p>1. Download the makecert tool from the <a href="http://gallery.technet.microsoft.com/Certificate-Creation-tool-5b7c054d" target="_blank">Technet gallery</a>, if you don&#8217;t already have it installed. If you&#8217;re running visual studio 2012, you can find it using the Visual Studio prompt on your start menu, uh screen.</p>
<p>2. Run the following command to generate the cert (all on one line). You MUST run this as admin:</p>
<p>makecert.exe -pe -n &#8220;CN=Azure-Recovery&#8221; -EKU &#8220;1.3.6.1.5.5.7.3.2&#8243; -SR localmachine -SS my -R -len 2048 -m 36 Azure-Recovery.cer</p>
<p>3. Start MMC, add the Certificates snapin and open your computer store (not user or service)</p>
<p>4. Under Certificates&#8211;&gt;Personal&#8211;&gt;Certificates, find your newly created certificate. The expiration date should be exactly 3 years into the future</p>
<p>5. Right-click the cert, choose &#8220;All tasks&#8221;&#8211;&gt;Export</p>
<p>6. Choose &#8220;No, don&#8217;t export the private key&#8221;</p>
<p>7. Format should be the first in the list, DER encoded binary X.509</p>
<p>8. Export to a file name of your liking</p>
<p>9. The produced certificate is the one you&#8217;re gonna upload to Azure Recovery Services. I actually had to try twice to get the certificate accepted.</p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/04/09/how-to-set-up-azure-recovery-services-backup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL Reporting Services (SSRS) PowerShell Module</title>
		<link>http://hindenes.com/trondsworking/2013/04/06/sql-reporting-services-ssrs-powershell-module/</link>
		<comments>http://hindenes.com/trondsworking/2013/04/06/sql-reporting-services-ssrs-powershell-module/#comments</comments>
		<pubDate>Sat, 06 Apr 2013 09:28:43 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Reporting Services]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SSRS]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=521</guid>
		<description><![CDATA[I&#8217;ve been working with SSRS lately to try and help our reporting dev come up with a automated deployment solution. Microsoft&#8217;s implementation of a scripting solution (rsscripter) is pretty much a joke. I have no intention of re-living those dark years of vbscript just to publish a report to a reporting services instance. So, we</p><a href="http://hindenes.com/trondsworking/2013/04/06/sql-reporting-services-ssrs-powershell-module/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been working with SSRS lately to try and help our reporting dev come up with a automated deployment solution. Microsoft&#8217;s implementation of a scripting solution (rsscripter) is pretty much a joke. I have no intention of re-living those dark years of vbscript just to publish a report to a reporting services instance.</p>
<p>So, we came up with the idea that we&#8217;ll just use PowerShell against the reporting services webservices instead. Much better. One thing to notice: When you upload a report using the webservice, SSRS is not smart enough to link the reports datasets/datasources, even if you already have these published in SSRS. So much of the code in the module is about relinking reports and datasets after they&#8217;ve been uploaded.</p>
<p>I&#8217;m not getting piping from Get-SSRSItem to Remove-SSRSItem to work, so that&#8217;s work in progress. Otherwise everything seems to be working nicely. Also, since our standard reports only have one datasource, I haven&#8217;t built functionality for uploading datasources, only reports and datasets.</p>
<p>Some of the code comes from <a href="http://randypaulo.wordpress.com/" target="_blank">Randy Paulo&#8217;s excellent blog</a>, which is well worth adding to your rss reader.</p>
<p>So, consider this work in progress. I hope you&#8217;ll find it useful</p>
<p>Downlad link:<br />
<a href="http://hindenes.com/powershell/SQLReporting.psm1" target="_blank">http://hindenes.com/powershell/SQLReporting.psm1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/04/06/sql-reporting-services-ssrs-powershell-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Azure VM into an affinity Group using PowerShell</title>
		<link>http://hindenes.com/trondsworking/2013/04/05/creating-azure-vm-into-an-affinity-group-using-powershell/</link>
		<comments>http://hindenes.com/trondsworking/2013/04/05/creating-azure-vm-into-an-affinity-group-using-powershell/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 14:57:30 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[WindowsAzure]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=514</guid>
		<description><![CDATA[There's a lot of examples on Azure VM Creation using PowerShell out there, but I couldn't find one for deploying a vm from the "Image Gallery" into an Affinity Group. For example, if you've set up a VM Network and want to place the VM inside that network, you need to use Affinity Groups. Here's</p><a href="http://hindenes.com/trondsworking/2013/04/05/creating-azure-vm-into-an-affinity-group-using-powershell/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<pre>There's a lot of examples on Azure VM Creation using PowerShell out there, but I couldn't 
find one for deploying a vm from the "Image Gallery" into an Affinity Group.
For example, if you've set up a VM Network and want to place the VM inside that network, 
you need to use Affinity Groups. Here's the script I'm using. 
All the parameters(variables, really) are required.
<pre class="brush: powershell; title: ; notranslate">
#Params to fill in
$VMName = &quot;TimTest208&quot;
$InstanceSize = &quot;Small&quot;
$ImageLabel = &quot;Windows Server 2012 Datacenter, March 2013&quot;
$VMPassword = &quot;pass@word1&quot;
$VMNetName = &quot;TIM-VMNET-NE-01&quot;
$VMSubnetName = &quot;TIM-VMNET-NE01-SN01&quot;

#Begin Script
$StorageAccount = (Get-AzureStorageAccount).Label
Get-AzureSubscription | Set-AzureSubscription -CurrentStorageAccount $StorageAccount
Get-AzureSubscription | Select-AzureSubscription

$AG = (Get-AzureAffinityGroup).Name
New-Azureservice -AffinityGroup $AG -ServiceName &quot;$VMName&quot; #This will be the service Public DNS Name created by azure
#This sometimes takes a few secs, wait-looping
    $FirstLoop = $true
    Do
        {
            if (!$FirstLoop)
                {
                    Start-Sleep -Milliseconds 500
                }
            $Cloudservice = Get-azureService | where {$_.Label -eq $VMName}
        }
    Until ($CLoudService)
$CLoudServiceName = $CLoudService.Label
$ImageName = (Get-AzureVMImage | where {$_.Label -eq $ImageLabel}).ImageName

$VM = New-AzureVMConfig -Name $VMName -InstanceSize $instanceSize -ImageName $ImageName
$VM | Add-AzureProvisioningConfig -Windows -Password $VMPassword
$VM | set-azuresubnet -SubnetNames $VMSubnetName
New-AzureVM -ServiceName &quot;$CLoudServiceName&quot; -VMs $VM -VNetName $vmnetname

#Uncomment the next line if you want to enable RDP on the VM's public IP
$VM | Add-AzureEndpoint -Protocol tcp -LocalPort 3389 -Name &quot;RDP in&quot;
$VM | Start-AzureVM</pre>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/04/05/creating-azure-vm-into-an-affinity-group-using-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Switching from Android to Microsoft</title>
		<link>http://hindenes.com/trondsworking/2013/03/06/switching-from-android-to-microsoft/</link>
		<comments>http://hindenes.com/trondsworking/2013/03/06/switching-from-android-to-microsoft/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 20:29:07 +0000</pubDate>
		<dc:creator>Trond</dc:creator>
				<category><![CDATA[Everyday]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ASUS Vivotab]]></category>
		<category><![CDATA[Lumia 920]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone 8]]></category>
		<category><![CDATA[Windows RT]]></category>

		<guid isPermaLink="false">http://hindenes.com/trondsworking/?p=499</guid>
		<description><![CDATA[New job, new devices. I decided to take the plunge and replace my Android-based smartphone and tablet with brand spanking new toys with a Windows key at the bottom. And no &#8211; this isn&#8217;t going to be one of those 14-page rewievs of the Lumia 920, there&#8217;s already enough of those out there. I simply</p><a href="http://hindenes.com/trondsworking/2013/03/06/switching-from-android-to-microsoft/">(More)…</a>]]></description>
				<content:encoded><![CDATA[<p>New job, new devices. I decided to take the plunge and replace my Android-based smartphone and tablet with brand spanking new toys with a Windows key at the bottom.</p>
<p>And no &#8211; this isn&#8217;t going to be one of those 14-page rewievs of the Lumia 920, there&#8217;s already enough of those out there. I simply wanted to touch on the good and the bad when switching from Android to Windows.</p>
<p>So, after living in relative harmony with my Samsung S3 (which I used a lot) and my Android-based ASUS Transformer TF101 tablet (which I didn&#8217;t use that much), I&#8217;ve switched to a Windows Phone 8-based Nokia Lumia 920, and a Windows RT-powered ASUS Vivotab RT tablet.</p>
<p>Before I&#8217;m going any further, it&#8217;s worth pointing out that both my Samsuns S3 and my ASUS TF101 were loaded with custom ROMs to get that nice &#8220;android&#8221; feeling &#8211; I can&#8217;t believe how much crap the vendors put on top of a very good OS (Android ICS, that is). Kind of reminds me of bying a Toshiba laptop, if you know what I mean&#8230;</p>
<p>I chose the Lumia 920 simply because I think it&#8217;s a nice-looking phone. The ASUS tablet might be a tougher sell &#8211; why not the Surface RT? As it turns out, the ASUS Vivotab is the only Windows RT-powered tablet with a sim card slot for sale in Norway. Also, when trying the Surface RT I didn&#8217;t like the way it &#8220;felt&#8221;, especially in upright mode. My wrists actually got tired from holding the thing when reading a Kindle book. The ASUS unit feels light, has the same guts as the Surface RT and is always connected as long as I&#8217;m within 3G coverage. Nuff said.</p>
<p><strong>Switching from Android to Windows Phone 8</strong></p>
<p><a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/03/IMG_1966.jpg" rel="lightbox[499]" title="Switching from Android to Microsoft"><img class="alignnone size-medium wp-image-505" alt="IMG_1966" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/03/IMG_1966-225x300.jpg" width="225" height="300" /></a></p>
<p>I don&#8217;t consider myself a heavy mobile phone user. Corporate email, some Facebook and a lot of Google Reader reading when waiting for someone/the bus or just killing time.</p>
<p>Powering up the Lumia 920 I went. &#8220;Damn. This is weird. I just have kept my S3&#8243;. However, after a few days of use, I really like the flow of the OS. The &#8220;people hub&#8221; works as prescribed and all in all it&#8217;s an effective little thing.</p>
<p>My android phone would constantly skip to the next song or whatever when I was out walking or moving about, because the android (so-called) lock screen is far from a lock screen &#8211; you can basically operate the entire phone without unlocking it. Not so with the Lumia 920. When the phone is locked, it&#8217;s locked. Basic volume controls and play/pause are all you get. My songs have stopped skipping on me, and I&#8217;m thankful for it.</p>
<p>As far as apps go - you know the story. Still some are missing. For the life of me I can&#8217;t unerstand why a <em>good</em> podcast manager is so hard to come by, but hopefully that will come with time. The updated twitter client works well, Microsoft&#8217;s facebook app is good enough, and all the email/calendar stuff works wonders.</p>
<p>Do not, however, expect to do any reading on the device after bedtime. The device does not have a rotation lock, which must be by far the biggest missing feature in Windows Phone 8. Apps rotate here and there, and sometimes they rotate midway in the app. Try and search up and install an app from the Marketplace and you&#8217;ll know what I mean. The fact that such a a beatiful screen is rendered useless after bedtime is simply beyond me.</p>
<p>with the exception of the lacking screen rotate, the Luma 920 is a very nice phone. After 2 days of use, I really fell in love with it. I&#8217;m putting my S3 in a drawer as we speek.</p>
<p><strong>The ASUS vivotab RT</strong></p>
<p><a href="http://hindenes.com/trondsworking/wp-content/uploads/2013/03/IMG_1967.jpg" rel="lightbox[499]" title="Switching from Android to Microsoft"><img class="alignnone size-medium wp-image-507" alt="IMG_1967" src="http://hindenes.com/trondsworking/wp-content/uploads/2013/03/IMG_1967-300x225.jpg" width="300" height="225" /></a></p>
<p>I have been using Windows 8 since the betas, but I have to admit: although I love the core OS, I&#8217;m not so sold on Microsoft trying to &#8220;tabletize&#8221; my work laptops. I&#8217;ve been running various start-screen replacements such as <a href="http://www.stardock.com/" target="_blank">stardock</a> and <a href="http://www.pokki.com/windows-8-start-menu" target="_blank">pokki</a> to try and get back some of the lost &#8220;Windows 7 feel&#8221; of the OS. On a tablet device though, the platform just shines. My iPad-using friends are jeleaus of the beuatiful and elegant os and the rich interaction it offers. On the tablet form-factor, I&#8217;m all in.</p>
<p>My only gripe was the fact that I couldn&#8217;t get gmail setup as an activesync account on my ASUS. Google is killing off their activesync support, but I&#8217;ve been under the impression that it would still work until around June 2013 or whatever. Which means that I&#8217;ll be switching my domain to outlook.com as soon as the butt-ugly hotmail-style calendar gets a facelift. In the meantime, I can live with IMAP-based gmail.</p>
<p>One thing worth mentioning: Windows RT doesn&#8217;t come into its own until you start using Windows 8 on your main computer, and link your local user account to a Microsoft account. The background syncing Windows 8 and RT is doing with skydrive is just terrific. Recently visited websites, saved passwords, WLAN keys - it&#8217;s a small thing but it works so effortlessly it almost feels like magic.</p>
<p>IE 10 on the Windows RT is by far the best browser I&#8217;ve tried on any tablet. I find it a lot smoother than Google Chrome on Android ICS, but it may not be a fair comparison since my android tablet suffers from a lot slower hardware than the ASUS Vivotab does. The fact that Flash content is only available on &#8220;approved sites&#8221; is just plain stupid.</p>
<p>I also got the keyboard dock for my ASUS. I love the fact that it&#8217;s adjustable. The Surface RT kickstand is nice in theory, but the angle must have been decided by a midget (or by a designer with a weird sense of humor). I could barely see the screen when I put the Surface in kickstand-mode, so the adjustability of the ASUS dock is refreshing.</p>
<p>To be honest, I don&#8217;t really need a tablet. I always bring one of my laptops with me when travelling anyway. Its just nice to be able to watch a movie and do some light typing without firing up the big guns. For working while flying economy, the ASUS really shines. I love the OneNote MX app especially, and have also found a Google Reader client to my taste.</p>
<p>Unlike the Windows Phone 8, the Windows RT acually does have a orientation lock. It does not work globally, so excpect a few apps to pop the wrong way while in bed trying to use the tablet in portrait mode. The Kindle app seems to &#8220;respect&#8221; the orientation lock though, so you&#8217;re able to read your Danielle Steel novel.</p>
<p><strong>The ecosystem</strong></p>
<p>I while back, I wrote a blog post on<a title="Connecting with Windows, Android, iOS and the cloud" href="http://hindenes.com/trondsworking/2012/03/21/connecting-with-windows-android-and-the-cloud/" target="_blank"> trying to stay in sync on my android devices</a>. I&#8217;ve been living in relative peace with all my devices. I chose to use SugarSync for file syncing a long time ago, and I have not looked back. Why Dropbox is more popular than SugarSync baffles me, since I find the latter so much better. Anyhow, Microsoft kind of takes it for granted that SkyDrive is the way to sync files. Although &#8220;syncing&#8221; is not the right word, &#8220;access&#8221; would be better. Windows Phone 8 will automatically send your captured photos to SkyDrive, and both Windows Phone 8 and Windows RT has built-in apps for accessing files and photos in Skydrive. There&#8217;s nothing wrong with SkyDrive, but it&#8217;s still lacking some features I need. SugarSync is working on an app for Windows Phone 8, hopefully that lets me send my photos to my SugarSync folders instead of SkyDrive.</p>
<p>If there&#8217;s one thing I miss on these two mobile platforms, it&#8217;s not being unable to upload pictures of my dinner to Instagram (Lasagna, by the way). It&#8217;s the fact that there is an app missing from both platforms, and that&#8217;s a <em>good</em> podcast manager. Preferably one that syncs my subscriptions from one device to the other. I would be willing to pay for that.</p>
<p>Apart from that, I&#8217;m extremely happy with both my devices, and very excited about what&#8217;s to come. The future is Blue!</p>
]]></content:encoded>
			<wfw:commentRss>http://hindenes.com/trondsworking/2013/03/06/switching-from-android-to-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 11.580 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-06-18 06:52:35 -->
