<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Sushant's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/sushrao/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/sushrao/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 06:16:29 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Reverse DNS for Azure Cloud Services</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/reverse-dns-for-azure-cloud-services</link>
      <pubDate>Thu, 28 Jan 2016 06:58:36 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2016/01/28/reverse-dns-for-azure-cloud-services/</guid>
      <description><![CDATA[Set-AzureService –ServiceName &quot;savilltech101&quot; –Description &quot;savilltech101 with...]]></description>
      <content:encoded><![CDATA[<p>Set-AzureService –ServiceName &quot;savilltech101&quot; –Description &quot;savilltech101 with Reverse DNS&quot; –ReverseDnsFqdn &quot;savilltech101.cloudapp.net.&quot;  <p>You can also add the reverse lookup when creating a cloud service by adding -ReverseDnsFqdn as part of the New-AzureService cmdlet.  <p>The reverse FQDN can also point to a vanity domain (your domain—e.g., sush.ddns.net), provided that sush.ddns.net is an alias (CNAME) on your DNS server that resolves to the cloud service DNS name (e.g., prajcloud8.cloudapp.net). Basically this check is done by Azure to ensure you actually own the DNS name for which you&#39;re trying to configure reverse DNS.  <p><b><u>Additional Information:</u></b> <a href="https://azure.microsoft.com/en-in/blog/announcing-reverse-dns-for-azure-cloud-services">https://azure.microsoft.com/en-in/blog/announcing-reverse-dns-for-azure-cloud-services</a>  <p>I went ahead and tested this by signing up on Dynamic DNS (which is free) <a href="https://my.noip.com">https://my.noip.com</a>  <p><strong><u>Note:</u></strong> This is only to test and to demonstrate how to enable reverse DNS. You can use any Public DNS provider.  <p>Added a CNAME alias mapping sush.ddns.net à prajcloud8.cloudapp.net  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/clip_image001_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/clip_5F00_image001_5F00_2.jpg"><img title="clip_image001" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/clip_image001_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/clip_5F00_image001_5F00_thumb.jpg" width="566" height="360" /></a>  <p>Once this was done. Login to Azure PowerShell  <p>Executed following command Adding reverse DNS to existing Cloud Services  <p>Set-AzureService –ServiceName “prajcloud8” –Description “App1 with Reverse DNS” –ReverseDnsFqdn “sush.ddns.net&quot;  <p><b><u>Output:</u></b>  <p><strong>nslookup<br /></strong>Non-authoritative answer:<br />Name:&nbsp;&nbsp;&nbsp; prajcloud8.cloudapp.net<br />Address:&nbsp; <font style="background-color:#ffff00;">168.61.147.225</font><br />Aliases:&nbsp; sush.ddns.net</p> <p>ping -a sush.ddns.net<br />Pinging prajcloud8.cloudapp.net [<font style="background-color:#ffff00;">168.61.147.225</font>] with 32 bytes of data</p></p></p></p></p></p></p></p></p></p></p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>Adding Multiple Network Interfaces to an existing ARM based Virtual machine</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/adding-multiple-network-interfaces-to-an-existing-arm-based-virtual-machine</link>
      <pubDate>Thu, 28 Jan 2016 05:37:32 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2016/01/28/adding-multiple-network-interfaces-to-an-existing-arm-based-virtual-machine/</guid>
      <description><![CDATA[At this point, there is no way of adding \ associating additional Network Interfaces via the portal...]]></description>
      <content:encoded><![CDATA[<p>At this point, there is no way of adding \ associating additional Network Interfaces via the portal to an existing Virtual machine. We can add additional Network Interfaces during the time we create \ provision a new virtual machine or by deleting the existing virtual machine (keeping the disk) and re-provisioning the Virtual machine using the same OS VHD with associating multiple Network interfaces. <p>Before we begin, I suggest that you go through following article which to refer the requirements and constraints only. <p><a href="https://azure.microsoft.com/en-in/documentation/articles/virtual-networks-multiple-nics/#requirements-and-constraints">https://azure.microsoft.com/en-in/documentation/articles/virtual-networks-multiple-nics/#requirements-and-constraints</a> <p>You can also refer following article which helps describes in details on how to deploy a new virtual machine with multiple network interface in Azure Resource manager <p><a href="https://azure.microsoft.com/en-in/documentation/articles/virtual-network-deploy-multinic-arm-ps/">https://azure.microsoft.com/en-in/documentation/articles/virtual-network-deploy-multinic-arm-ps/</a> <p>As our goal is to add multiple Network Interface to an existing Virtual Machine we will have to delete the existing virtual machine and then re-create \ re-provision the Virtual Machine using following script <p><b><u>Note:</u></b> The below script creates a Virtual Machine in an Availability Set and adds 2 network interfaces with one Public and Private IP on the Primary NIC and a Private IP on the secondary NIC. <p>As this virtual machine is going to be a part of Availability Set, at later stage we can even create an Azure Load balancer and add another Public IP.</p> <table cellspacing="0" cellpadding="2" width="583" border="2"> <tbody> <tr> <td valign="top" width="579"> <p>Login-AzureRmAccount<br />Select-AzureRmSubscription -SubscriptionName</p> <p><strong>###Update the below Environment details #####</strong><br />$VirtualMachineName = &quot;<font style="background-color:#ffff00;">sushrao1</font>&quot;<br />$AvailabilitySet=&quot;<font style="background-color:#ffff00;">sushraoavail</font>&quot;<br />$vmSize=&quot;<font style="background-color:#ffff00;">Standard_A6</font>&quot;<br />$adminUsername=&quot;<font style="background-color:#ffff00;">sushrao</font>&quot;<br />$adminPassword=&quot;<font style="background-color:#ffff00;">xxxxxxx</font>&quot;<br />$PrivateIPforNIC1=&quot;<font style="background-color:#ffff00;">192.168.1.23</font>&quot;<br />$PrivateIPforNIC2=&quot;<font style="background-color:#ffff00;">192.168.1.24</font>&quot;</p> <p><strong>## Existing OS VHD of the deleted Virtual Machine ##</strong><br />$sourceImageUri = &quot;<a href="https://teststoragesushrao.blob.core.windows.net/vhds/testvm.vhd&quot;">https://teststoragesushrao.blob.core.windows.net/vhds/testvm.vhd&quot;</a><br />$diskName= $VirtualMachineName + &quot;OS-Disk&quot;</p> <p>$ResourceGroupName=&quot;test”<br />$LocationName=&quot;east us&quot;<br />$saName=&quot;teststoragesushrao&quot;<br />$vnetName=&quot;TestVNet&quot;<br />$subnetIndex=0<br />$cred = New-Object PSCredential $adminUsername, ($adminPassword | ConvertTo-SecureString -AsPlainText -Force)</p> <p><br /><strong>## Get the existing virtual network&nbsp; ##</strong><br />$vnet=Get-AzureRMvirtualNetwork -Name $vnetName -ResourceGroupName $ResourceGroupName</p> <p><strong>## Create the NIC1 ##</strong></p> <p>$nicName=&quot;Primary&quot;<br />$pipName= $VirtualMachineName + &quot;_pip&quot;<br />$domName= $VirtualMachineName<br />$pip=New-AzureRmPublicIpAddress -Name $pipName -ResourceGroupName $ResourceGroupName -DomainNameLabel $domName -Location $LocationName -AllocationMethod Dynamic<br />$nic=New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id -PrivateIpAddress $PrivateIPforNIC1</p> <p><strong>## Create the NIC2 ##</strong> </p> <p>$nicName2=&quot;Secondary&quot;<br />$nic2=New-AzureRmNetworkInterface -Name $nicName2 -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $vnet.Subnets[$subnetIndex].Id -PrivateIpAddress $PrivateIPforNIC2</p> <p><strong>## Create the availability group (if it does not exist) ##</strong></p> <p>New-AzureRmAvailabilitySet –Name $AvailabilitySet –ResourceGroupName $ResourceGroupName -Location $LocationName</p> <p><strong>## Specify the name, size &amp; associate the Network Interface to the virtual machine ##</strong></p> <p>$vmName= $VirtualMachineName <br />$avSet=Get-AzureRmAvailabilitySet –Name $AvailabilitySet –ResourceGroupName $ResourceGroupName<br />$vm=New-AzureRMVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avset.Id<br />$vm=Add-AzureRMVMNetworkInterface -VM $vm -Id $nic.Id -Primary<br />$vm=Add-AzureRMVMNetworkInterface -VM $vm -Id $nic2.Id <br />&nbsp;<br /><strong>## Specify the OS disk name</strong> </p> <p>$storageAcc=Get-AzureRMStorageAccount -ResourceGroupName $ResourceGroupName -Name $saName</p> <p>&nbsp;<br /><strong># Create VM from the existing OS disk</strong></p> <p>$vm=Set-AzureRmVMOSDisk -VM $vm -Name $diskName -VhdUri $sourceImageUri -CreateOption attach -Windows<br />New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $vm <br /></p></td></tr></tbody></table> <p><em><font color="#ff0000">I strongly recommend that you perform the above actions on a test virtual machine and confirm if this suits your requirement before making any changes to the actual virtual machine.</font></em></p></p></p></p></p></p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>Configure Point to Site on ARM based Virtual Network</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/configure-point-to-site-on-arm-based-virtual-network</link>
      <pubDate>Thu, 14 Jan 2016 01:25:43 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2016/01/14/configure-point-to-site-on-arm-based-virtual-network/</guid>
      <description><![CDATA[For the Classic Virtual network we could enable the Point to Site via the Old Portal...]]></description>
      <content:encoded><![CDATA[<p>For the Classic Virtual network we could enable the Point to Site via the Old Portal (<a href="https://manage.windowsazure.com">https://manage.windowsazure.com</a>) however I’m afraid as of now, we don’t have a way to create the Point to Site connection via the new Portal (<a href="https://portal.azure.com">https://portal.azure.com</a>) for ARM. Though we can make use of PowerShell command let to achieve the same. </p> <p><b><u>First Method</u></b>  <p>1. Delete the existing Gateway connection and the Virtual Network Gateway &amp; Gateway PIP.  <p><b><u>Note:</u></b> You can make use of <a href="https://resources.azure.com">https://resources.azure.com</a> to delete the gateway connection and then the Virtual Network Gateway &amp; Gateway Public IP.  <p>2. Delete the existing Gateway Subnet from the Virtual network  <p><b><u>Note:</u></b> You can achieve this by Navigating to <a href="https://portal.azure.com">https://portal.azure.com</a> à Virtual Networks à Subnets à Right Click on Gateway Subnet and Delete.  <p>3. You can make use of following script which will help us in creating the Gateway Subnet, Gateway Public IP and the Virtual Network Gateway along with Point to Site.  <p><strong><u>Note:</u></strong> You need to specify CIDR <b>/28</b> for Gateway subnet and the Name would be “GatewaySubnet” with Quotes and NO SPACES. </p> <table cellspacing="0" cellpadding="2" width="571" border="2"> <tbody> <tr> <td valign="top" width="567"> <p>$RGname = &quot;<font style="background-color:#ffff00;">TEST</font>&quot; <br />$Location = &quot;<font style="background-color:#ffff00;">EAST US</font>&quot; <br />$VNETname = &quot;<font style="background-color:#ffff00;">TESTVNET</font>&quot; <br />$GWname = &quot;<font style="background-color:#ffff00;">TESTGateWay</font>&quot; <br />$GWSubnet = &quot;<font style="background-color:#ffff00;">192.168.1.65</font>/<font style="background-color:#ffff00;"><strong>28</strong></font>&quot; <br />&nbsp;<br /><strong># Incase VNET is not available</strong><br />New-AzureRMVirtualNetwork -Name $VNETname -ResourceGroupName $RGname&nbsp; -Location $Location -AddressPrefix 10.0.0.0/16 -Subnet $Subnet1 </p> <p><strong>#Get VNET and add Gateway subnet there: <br /></strong>$vnet = Get-AzureRMVirtualNetwork -Name $VNETname -ResourceGroupName $RGname <br />Add-AzureRMVirtualNetworkSubnetConfig -Name GatewaySubnet -AddressPrefix 10.0.3.0/28 -VirtualNetwork $vnet <br />Set-AzureRMVirtualNetwork -VirtualNetwork $vnet </p> <p><strong>#Create public IP for gateway</strong> <br />$gwpip= New-AzureRmPublicIpAddress -Name gwpip -ResourceGroupName $RGname -Location $location -AllocationMethod Dynamic<br />&nbsp;<br /><strong>#Create GW IP Config</strong> <br />$vnet = Get-AzureRMVirtualNetwork -Name $VNETname -ResourceGroupName $RGname <br />$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name &#39;GatewaySubnet&#39; -VirtualNetwork $vnet <br />$gwipconfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gwpip.Id </p> <p><strong>#Create Gateway</strong> <br />New-AzureRmVirtualNetworkGateway -Name $GWname -ResourceGroupName $RGname -Location $location -IpConfigurations $gwipconfig -GatewayType Vpn -GatewaySku Standard -VpnType RouteBased -VpnClientAddressPool &quot;192.168.1.0/24&quot; </p> <p><strong>#Add root certificate</strong> <br />#You need to export your root cert in cer format with base64 encoding. Then open resulting file in notepad and make single long string from text between -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- <br /><strong>#I have truncated it in this example</strong> </p> <p>$cert = &quot;MIIDETCCAf2gAwIBAgIQPTApmVXmK...dWoNHTdid6aWSSBf21rfas8&quot; <br />Add-AzureRmVpnClientRootCertificate -VpnClientRootCertificateName &quot;ARMcert&quot; -VirtualNetworkGatewayName $GWname -ResourceGroupName $RGname -PublicCertData $cert </p> <p><strong># After that you can download VPN client package. ProcessorArchitecture can be Amd64 or X86</strong> <br />Get-AzureRmVpnClientPackage -ResourceGroupName $RGname -VirtualNetworkGatewayName $GWname -ProcessorArchitecture Amd64</p></td></tr></tbody></table> <p><b><u>SECOND METHOD:</u></b>  <p>If you decide not to delete the Gateway Connection, Virtual Network Gateway or the Gateway PIP then you can make use of <a href="https://resources.azure.com">https://resources.azure.com</a> à Subscription à Resource Group à (Resource Group Name) à Microsoft.Network à VirtualNetworkGateway à (Gateway)  <p>Click On Read/Write and then Click on Edit on the Gateway.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/SelectGateway_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/SelectGateway_5F00_2.jpg"><img title="SelectGateway" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="SelectGateway" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/SelectGateway_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/SelectGateway_5F00_thumb.jpg" width="577" height="265" /></a>  <p>We then have to add following tag right below “enableBgp”:false</p> <table cellspacing="0" cellpadding="2" width="582" border="2"> <tbody> <tr> <td valign="top" width="578"> <p>&quot;vpnClientConfiguration&quot;: {<br />&nbsp; &quot;vpnClientAddressPool&quot;: {<br />&nbsp;&nbsp;&nbsp; &quot;addressPrefixes&quot;: [<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font style="background-color:#ffff00;">192.168.2.0/24</font>&quot;<br />&nbsp;&nbsp;&nbsp; ]<br />&nbsp; },<br />&nbsp; &quot;vpnClientRootCertificates&quot;: [],<br />&nbsp; &quot;vpnClientRevokedCertificates&quot;: []<br />} </p></td></tr></tbody></table> <p><b><u>Note:</u></b> Update the Appropriate Point to Site Address Space which should not overlap with you On Premise or Azure Virtual network Address Range.  <p>Click on Put and then wait for few minutes. Approx. 10 minutes for the gateway to update.  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/EditGateway_2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/EditGateway_5F00_2.jpg"><img title="EditGateway" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="EditGateway" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/EditGateway_thumb.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/EditGateway_5F00_thumb.jpg" width="592" height="229" /></a>  <p>Once the update is complete you can make use of PowerShell and Upload the Root Certificate and also download the Package.</p> <table cellspacing="0" cellpadding="2" width="587" border="2"> <tbody> <tr> <td valign="top" width="583"> <p><strong>#Add root certificate</strong></p> <p>#You need to export your root cert in cer format with base64 encoding. Then open resulting file in notepad and make single long string from text between -----BEGIN CERTIFICATE----- and -----END CERTIFICATE-----<br /><strong>#I have truncated it in this example</strong></p> <p><br />$cert = &quot;MIIDETCCAf2gAwIBAgIQPTApmVXmK...dWoNHTdid6aWSSBf21rfas8&quot;<br />Add-AzureRmVpnClientRootCertificate -VpnClientRootCertificateName &quot;ARMcert&quot; -VirtualNetworkGatewayName $GWname -ResourceGroupName&nbsp; $RGname -PublicCertData $cert</p> <p><strong># After that you can download VPN client package. ProcessorArchitecture can be Amd64 or X86</strong><br />Get-AzureRmVpnClientPackage -ResourceGroupName $RGname -VirtualNetworkGatewayName $GWname -ProcessorArchitecture Amd64</p></td></tr></tbody></table> <p>I would also suggest that you may want to try this on a test Virtual network before making changes to the Production VNET.  </p></p></p></p></p></p></p></p></p></p></p></p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>Creating Azure Virtual Network with ARM PowerShell cmdlets</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/creating-azure-virtual-network-with-arm-powershell-cmdlets</link>
      <pubDate>Wed, 19 Aug 2015 12:08:30 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2015/08/19/creating-azure-virtual-network-with-arm-powershell-cmdlets/</guid>
      <description><![CDATA[Azure Resource Manager
The AzureResourceManager module, introduced in Azure PowerShell version...]]></description>
      <content:encoded><![CDATA[<p><b><span style="text-decoration:underline;">Azure Resource Manager</span></b></p>
<p>The <strong>AzureResourceManager</strong> module, introduced in Azure PowerShell version 0.8.0, lets you manage your resources in an entirely new way. Instead of creating individual resources and trying to use them together, begin by imagining the service you want to create, such as a web portal, a blog, a photo gallery, a commerce site, or a wiki.</p>
<p>Select a <em>resource group template</em> for the service, including one of dozens in the Azure template gallery, or create your own. Each template provides a model of a complex service, complete with the resources that you need to support the service. Then use the template to create a resource group and its resources, and deploy and manage the related resources as a unit.</p>
<p>&nbsp;</p>
<p>When you use the Azure PowerShell cmdlets, the Azure module is imported into the session by default. To remove the Azure module from the session and import the AzureResourceManager and AzureProfile modules, use the Switch-AzureMode cmdlet.</p>
<p>Switch-AzureMode -Name AzureResourceManager</p>
<p>And, to switch back to the Azure module, just use <strong>Switch-AzureMode</strong> again</p>
<p>Switch-AzureMode -Name AzureServiceManagement</p>
<p>&nbsp;</p>
<p>Below Script will help in creating a Resource Group, Virtual Network based on Azure Resource Manager and eventually associate a Subnet to it.</p>
<p><b><span style="text-decoration:underline;">Note: </span></b></p>
<p><b>New-AzureResourceGroup</b> = This command let is used for creation of a new Resource Group.</p>
<p><b>New-AzureVirtualNetwork</b> =&nbsp; This command let is used for creation of a Virtual Network.</p>
<p><b>Add-AzureVirtualNetworkSubnetConfig</b> = This command let is used for adding a Subnet with conjunction with <b>Set-AzureVirtualNetwork</b> to update the Virtual Network&rsquo;s Configuration.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="1192" valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Switch-AzureMode -Name AzureResourceManager</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VerbosePreference = &quot;continue&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-verbose &quot;Setting Environment Variables&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$ResourceGroup = &quot;<span style="background-color:#ffff99;">sushraolab</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$Location = &quot;<span style="background-color:#ffff99;">East US</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VNETName = &quot;<span style="background-color:#ffff99;">sushraolab_VNET</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$AddressPrefix = &quot;<span style="background-color:#ffff99;">10.0.0.0/16</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$SubnetName = &quot;<span style="background-color:#ffff99;">Subnet-1</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$SubnetPrefix = &quot;<span style="background-color:#ffff99;">10.0.0.0/24</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>&nbsp;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-Verbose &quot;Creating a New Azure Resource Group $ResourceGroup&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>New-AzureResourceGroup -Name $resourcegroup -Location $Location</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>Write-Verbose &quot;Creating a ARM based Virtual Network $VNETNAME within the Resource Group $ResourceGroup&quot;<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VNET = New-AzureVirtualNetwork -ResourceGroupName $ResourceGroup -Location $Location -Name $VNETName -AddressPrefix $AddressPrefix</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-Verbose &quot;Adding a $SubnetName to the ARM based Virtual Network $VNETNAME&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VNET | Add-AzureVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix $subnetPrefix | Set-AzureVirtualNetwork</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-verbose &quot;Output of the Subnet&#39;s Associated with the ARM based Virtual Network $VNETName&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VNET1 = Get-AzureVirtualNetwork -ResourceGroupName $ResourceGroup -Name $VNETName</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$Subnet = Get-AzureVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $VNET1</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$subnet</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-Verbose &quot;Successfully Executed the Script&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
</tbody>
</table>
<p><b><span style="text-decoration:underline;">Note:</span></b> You can copy the above Script to notepad and after updating the Environment Variables save it as AzureVnetCreation.ps1 and execute it via Azure PowerShell</p>
<p>&nbsp;</p>
<p>Below Script will help in adding a Subnet to an existing Virtual Network based on Azure Resource Manager&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="1200" valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VerbosePreference = &quot;continue&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-verbose &quot;Setting Environment Variables&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$ResourceGroup = &quot;<span style="background-color:#ffff99;">sushraolab</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VNETName = &quot;<span style="background-color:#ffff99;">sushraolab_VNET</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$SubnetName = &quot;<span style="background-color:#ffff99;">Subnet-2</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$SubnetPrefix = &quot;<span style="background-color:#ffff99;">10.0.1.0/24</span>&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-verbose &quot;Adding a New Subnet to an Existing ARM based Virtual Network&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$vnet&nbsp;&nbsp; = Get-AzureVirtualNetwork -ResourceGroupName $ResourceGroup -Name $VNETName</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$vnet | Add-AzureVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetPrefix | Set-AzureVirtualNetwork</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-verbose &quot;Output of the Subnet&#39;s Associated with the ARM based Virtual Network $VNETName&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VNET1 = Get-AzureVirtualNetwork -ResourceGroupName $ResourceGroup -Name $VNETName</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>$VNET1</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p>Write-Verbose &quot;Successfully Executed the Script&quot;</p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
</tbody>
</table>
<p><b><span style="text-decoration:underline;">Note:</span></b> You can copy the above Script to notepad and after updating the Environment Variables save it as AzureSubnetCreation.ps1 and execute it via Azure PowerShell</p>]]></content:encoded>
    </item>
    <item>
      <title>Unable to Install FIM 2010 R2 with Sp1 – Services and Portal</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/unable-to-install-fim-2010-r2-with-sp1-services-and-portal</link>
      <pubDate>Thu, 04 Sep 2014 21:02:47 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2014/09/04/unable-to-install-fim-2010-r2-with-sp1-services-and-portal/</guid>
      <description><![CDATA[When you attempt to Install FIM 2010 R2 with SP1 You receive following error “To install FIM portal,...]]></description>
      <content:encoded><![CDATA[<p><font color="#ff0000"><font size="2"><font color="#2c2c2c">When you attempt to Install FIM 2010 R2 with SP1 You receive following error</font> “To install FIM portal, the setup needs to run under SharePoint Farm administrator account with at least Open permission that allows users to open a Web site, list, or folder in order to access items inside that container. Please make sure you are a SharePoint Farm administrator with Open permission and then click &quot;Retry&quot;. Click &quot;Cancel&quot; to abort setup.”</font></font></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/image_135A4724.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/image_5F00_135A4724.png"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/image_thumb_176725A7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/image_5F00_thumb_5F00_176725A7.png" width="428" height="205" /></a> </p> <p><font color="#2c2c2c" size="2">In my environment, I have following accounts <br />1. Fim Management Agent Account : Domain\fimma<br />2. Fim Service Account : Domain\fimservice<br />3. FIM Sync Account : Domain\fimsync<br />4. SharePoint Application Pool : Domain\spsapppool<br />5. SharePoint Admin Account : Domian\spsadmin </font> <p><font color="#2c2c2c" size="2">From the error message, it was evident that the account needed at least Read Permission to Open a Web site but, the question was which account? <br />At that moment, I thought maybe that FIM Service Account needs access to the SharePoint site and during the creation of SharePoint Site Collection, I had only added SharePoint Admin Account to the Primary Site Collection Administrator. </font> <p><font color="#2c2c2c" size="2">I started off with adding the above accounts to the Secondary site collection administrator (one-at-a-time) and running the install however, had no luck. </font> <p><font color="#2c2c2c" size="2">That&#39;s when I realized that, I had not logged on to the server with any of the above account. </font> <p><font color="#2c2c2c" size="2">To resolve the above error:<br />1. Open Command Prompt<br />2. Run &quot;whoami&quot;<br /></font><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/image_1DB08CE6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/image_5F00_1DB08CE6.png"><font color="#2c2c2c" size="2"><img title="image" style="border-left-width:0px;border-right-width:0px;border-bottom-width:0px;display:inline;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/image_thumb_743C4BA5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/image_5F00_thumb_5F00_743C4BA5.png" width="476" height="140" /></font></a></p> <p><font color="#2c2c2c" size="2">3. Navigate to SharePoint Central Administration –&gt; Application Management –&gt; Change Site Collection Administrator and add the account which you see in <strong>Step 2</strong> to Secondary Site collection Administrator. </font></p> <p><font color="#2c2c2c" size="2">Updating Secondary Site Collection Administrator via PowerShell<br />$Site = Get-SPSite &quot;&lt;site collection&gt;&quot;<br /><strong><u>Note:</u></strong> &lt;SiteCollection&gt; is the URL of the site collection to which you want to add a site collection administrator.<br />Set-SPSite $site -SecondaryOwnerAlias &quot;user&quot;<br /><strong><u>Note:</u></strong> &lt;User&gt; is name of the user whom you want to add in the format &lt;domain&gt;\&lt;username&gt;.</font></p> <p><font color="#2c2c2c" size="2"><strong><u>Example:</u></strong><br />Add-PSSnapin Microsoft.SharePoint.Powershell<br />$Site = Get-SPSite &quot;</font><a href="https://fimportal.sushrao.com&quot;"><font color="#2c2c2c" size="2">https://fimportal.sushrao.com&quot;</font></a><br /><font color="#2c2c2c" size="2">Set-SPSite $site -SecondaryOwnerAlias &quot;sushrao\administrator&quot;</font> <p><font color="#2c2c2c" size="2">Now, when you re-run the setup the install would succeed.</font></p></p></p></p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>Unable to Install FIM 2010 R2 – Services and Portal on SharePoint Foundation 2013</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/unable-to-install-fim-2010-r2-services-and-portal-on-sharepoint-foundation-2013</link>
      <pubDate>Fri, 29 Aug 2014 19:05:03 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2014/08/29/unable-to-install-fim-2010-r2-services-and-portal-on-sharepoint-foundation-2013/</guid>
      <description><![CDATA[When you attempt to Install Forefront Identity Manager 2010 R2 - Services and Portal on SharePoint...]]></description>
      <content:encoded><![CDATA[<p><font size="2"><font color="#808080">When you attempt to Install Forefront Identity Manager 2010 R2 - Services and Portal on SharePoint Foundation 2013, You encounter following error “</font><font color="#ff0000">The features you have the following prerequisites, Refer to the installation guide&nbsp; for more information. Please update your machine and retry the installation. – SharePoint</font><font color="#808080">.”</font></font></p> <p><font color="#7a7a7a" size="2">Prerequisites and Verification Steps:<br />=====================================<br />1. The SharePoint 2013 site collection runs in 2010 experience mode. </font> <p><font color="#7a7a7a" size="2">To verify, in the SharePoint 2013 Management command-line shell, enter the following commands and verify that the return value is 14: </font> <p><font color="#7a7a7a" size="2">$spSite = SpSite(&quot;</font><a href="https://fimportal&quot;);"><font color="#7a7a7a" size="2">https://fimportal&quot;);</font></a><br /><font color="#7a7a7a" size="2">$spSite.CompatibilityLevel </font> <p><font color="#7a7a7a" size="2">2. Server-side viewstate needs to be disabled. </font> <p><font color="#7a7a7a" size="2">To disable server-side viewstate, perform the following steps in the SharePoint 2013 Management command-line shell: </font> <p><font color="#7a7a7a" size="2">$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService;<br />$contentService.ViewStateOnServer = $false;<br />$contentService.Update(); </font> <p><font color="#7a7a7a" size="2">3. Self-service upgrades on SharePoint Foundation 2013 from SharePoint 2010 experience mode to 2013 experience mode are disallowed. </font> <p><font color="#7a7a7a" size="2">To disallow, perform the following steps in the SharePoint 2013 Management command-line shell: </font> <p><font color="#7a7a7a" size="2">$spSite = SpSite(&quot;</font><a href="https://fimportal&quot;);"><font color="#7a7a7a" size="2">https://fimportal&quot;);</font></a><br /><font color="#7a7a7a" size="2">$spSite.AllowSelfServiceUpgrade = $false </font> <p><font color="#7a7a7a" size="2">4. Claims-based authentication needs to be off. </font> <p><font color="#7a7a7a" size="2">To verify, in the SharePoint 2013 Management command-line shell, enter the following commands: </font> <p><font color="#7a7a7a" size="2">$webapp = Get-SPWebApplication &quot; </font><a href="https://fimportal&quot;"><font color="#7a7a7a" size="2">https://fimportal&quot;</font></a><br /><font color="#7a7a7a" size="2">$webapp.UseClaimsAuthentication </font> <p><font color="#7a7a7a" size="2">If claims-based authentication is on, you need to delete the existing default SharePoint web application (running on </font><a href="https://fimportal/)"><font color="#7a7a7a" size="2">https://fimportal/)</font></a><font color="#7a7a7a" size="2"> and create a new one with classic-mode Windows authentication. </font> <p><font color="#7a7a7a" size="2">In SharePoint 2013, creating a new SharePoint web application with classic-mode Windows Authentication can be only accomplished through PowerShell by entering the following commands: </font> <p><font color="#7a7a7a" size="2">$adminCredentials = get-credential domain\AppPoolAccount<br />$adminManagedAccount = New-SPManagedAccount -Credential $adminCredentials </font> <p><font color="#7a7a7a" size="2">New-SpWebApplication -Name &quot;FIM Portal&quot; -ApplicationPool &quot;FIMAppPool&quot; -AuthenticationMethod &quot;Kerberos&quot; -ApplicationPoolAccount $adminManagedAccount -Port 80 -URL </font><a href="https://FIMPORTAL"><font color="#7a7a7a" size="2">https://FIMPORTAL</font></a><font size="2"> </font> <p><font color="#7a7a7a" size="2">========================= </font> <p><font color="#7a7a7a"><font size="2"><u>Note:</u> Only <u>Forefront Identity Manager 2010 R2 with Sp1</u> and above can detect SharePoint 2013. All older version will continue to error despite setting up SharePoint as per the above steps.</font></font></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2013 – Office Communicator 2007 R2 Presence Indicator</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/sharepoint-2013-office-communicator-2007-r2-presence-indicator</link>
      <pubDate>Thu, 11 Apr 2013 09:20:28 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2013/04/11/sharepoint-2013-office-communicator-2007-r2-presence-indicator/</guid>
      <description><![CDATA[Recently I was being asked if the presence indicator would still function within SharePoint 2013...]]></description>
      <content:encoded><![CDATA[<p><font color="#666666" size="2" face="Calibri">Recently I was being asked if the presence indicator would still function within SharePoint 2013 sites along with Office Communicator 2007 R2</font></p>  <h5><font color="#666666" size="2" face="Calibri"><u>How SharePoint Presence works:</u></font></h5>  <p><font color="#666666" size="2" face="Calibri">SharePoint presence status is displayed through a client-side setting by using a dynamic link library called <strong>name.dll</strong>. This file is installed with Microsoft Office 2010, Office 2007 and Office 2003 and is located within the Office installation directory for e.g., (<strong>C:\Program Files\Microsoft Office\Office 14</strong>). The name.dll file is an ActiveX® control which gets loaded within the Internet Explorer that calls the Lync \ Office Communicator API directly to request and display presence status within SharePoint site collections.</font></p>  <p><font color="#666666" size="2" face="Calibri">Example of Add-on which gets loaded on Internet Explorer</font></p>  <table cellspacing="0" cellpadding="2" width="400" border="0"><tbody>     <tr>       <td valign="top" width="400">         <p><font face="Calibri"><font color="#666666" size="2"><strong>Name :</strong> NameCtrl Class </font></font></p>          <p><font face="Calibri"><font color="#666666" size="2"><strong>Publisher :</strong> Microsoft Corporation</font></font></p>          <p><font face="Calibri"><font color="#666666" size="2"><strong>Status :</strong> Enabled</font></font></p>          <p><font color="#666666" size="2" face="Calibri"><strong>File date :</strong> Thursday, October 26, 2006, 8:12 PM</font></p>          <p><font face="Calibri"><font color="#666666" size="2"><strong>Version :</strong> 12.0.4518.1014</font></font></p>       </td>     </tr>   </tbody></table>  <p><font face="Calibri"><font size="2"><font color="#666666">Function: <b></b><b>Display presence information for people, integrating with Outlook (mail, calendar) and Communicator (instant messaging)</b></font></font></font></p>  <p><font face="Calibri"><font size="2"><font color="#666666">Reference: <b></b><b></b></font></font></font><a href="https://msdn2.microsoft.com/en-us/library/ms455335.aspx"><font face="Calibri"><font size="2"><font color="#666666"><b>https://msdn2.microsoft.com/en-us/library/ms455335.aspx</b></font></font></font></a></p>  <p><font face="Calibri"><font size="2"><font color="#666666">Non-IE behavior: <b></b><b>Presence information will not show.</b></font></font></font></p>  <p><strong><font color="#666666" size="2" face="Calibri">===========================================================================================================================</font></strong></p>  <p>&#160;</p>  <p><font color="#666666" size="2" face="Calibri">Presence is enabled in SharePoint by default; there are no configuration steps for the SharePoint administrator to perform. Each SharePoint page includes Microsoft JScript® code, which enables presence for that site. JScript uses name.dll to call the Lync \ Office Communicator API and pull presence for users names who appear on the site. JScript uses the users’ SIP URI to pull presence for names that are listed on the site. </font></p>  <p><font color="#666666" size="2" face="Calibri">The following JScript code is an example of presence being pulled for a user named Bob Kelly, whose SIP URI is </font><a href="mailto:administrator@topgear.com"><font color="#666666" size="2" face="Calibri">administrator@topgear.com</font></a><font color="#666666" size="2" face="Calibri">. The SIP URI is added by using variables to the JScript when the script is loaded and presence is being pulled.</font></p>  <table cellspacing="0" cellpadding="2" width="789" border="0"><tbody>     <tr>       <td valign="top" width="787">         <p><font color="#666666" size="2" face="Calibri">&lt;a href='jscript:;' onclick='IMNImageOnClick(event);return false;' class='ms-imnlink'&gt;&lt;img name='imnmark' class='ms-imnImg' title='' border='0' height='12' width='12' src='/_layouts/images/blank.gif' alt='No presence information' </font><a href="mailto:sip='administrator@topgear.com'"><font color="#666666" size="2" face="Calibri">sip='administrator@topgear.com'</font></a><font color="#666666" size="2" face="Calibri"> id='imn_74,type=smtp'/&gt;&lt;/a&gt;&lt;a onclick=&quot;GoToLink(this);return false;&quot; &lt;/a&gt;</font></p>       </td>     </tr>   </tbody></table>  <p><font color="#666666" size="2" face="Calibri"><strong><u>Conclusion:</u></strong></font></p>  <p><font color="#666666" size="2" face="Calibri">The Presence Indicator works within SharePoint 2013 along with Office Communicator 2007 R2 however, To get the Presence Indicator working we have to ensure that Office is installed as it deploys Name.DLL which is present under (C:\Program Files\Microsoft Office\Office 12) and the SIP Address is updated for the user on the site.</font></p>  <p><font color="#666666" size="2" face="Calibri">Incase the SIP Address is not updated for the user within the SharePoint Site, we can make use of the following script to update the same.</font></p>  <table cellspacing="0" cellpadding="0" border="0"><tbody>     <tr>       <td valign="top" width="638">         <p><font size="2" face="Calibri"><font color="#ff0000">$web</font> = <font color="#0000ff">Get-SPWeb</font> </font><a href="https://sush13"><font style="background-color: rgb(255, 255, 0);" size="2" face="Calibri">https://sush13</font></a>             <br /><font size="2" face="Calibri"><font color="#00ff00">## get the user information list</font>               <br /><font color="#ff0000">$list</font> =<font color="#ff0000">$web</font>.Lists | <font color="#0000ff">where</font> { <font color="#4f81bd">$_.Title -eq</font> &quot;<font color="#c0504d">User Information List</font>&quot; }               <br /><font color="#00ff00">## Get the system account item</font>               <br /><font color="#ff0000">$item</font> = <font color="#ff0000">$list.</font>Items |<font color="#0000ff"> where</font> { $_[&quot;<font color="#c0504d">Account</font>&quot;] -eq &quot; <font style="background-color: rgb(255, 255, 0);">i:0#.w|topgear\administrator</font>&quot; }               <br /><font color="#ff0000">$item</font>[&quot;<font color="#d16349">Title</font>&quot;] = &quot;<font color="#d16349">UserName</font>&quot;               <br /><font color="#ff0000">$item</font>[&quot;<font color="#c0504d">SIP Address</font>&quot;] = “</font><a href="mailto:Adminsitrator@topgear.com"><font style="background-color: rgb(255, 255, 0);" size="2" face="Calibri">Adminsitrator@topgear.com</font></a><font size="2" face="Calibri">”              <br /><font color="#ff0000">$item</font>.Update()</font></p>       </td>     </tr>   </tbody></table>  <p><font color="#666666" size="2" face="Calibri"></font></p>  <p><font color="#666666" size="2" face="Calibri"></font></p>  <p><font color="#666666">&#160;</font></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2013 - Machine decryption key is invalid.</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/sharepoint-2013-machine-decryption-key-is-invalid</link>
      <pubDate>Mon, 28 Jan 2013 13:16:48 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2013/01/28/sharepoint-2013-machine-decryption-key-is-invalid/</guid>
      <description><![CDATA[When we browse SharePoint Central Administration we get following error  An unexpected error has...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Calibri">When we browse SharePoint Central Administration we get following error</font></p>  <p><font color="#ff0000" size="2" face="Calibri">An unexpected error has occurred.</font></p>  <p><font size="2" face="Calibri">Once we successfully are able to browse the SharePoint Central Administration site we will consider the case as resolved.</font></p>  <p>Hopefully information below may help a few of us.</p>  <p><font size="2" face="Calibri">Open IIS manager –&gt; Expand Sites --&gt; Right Click on the appropriate Site and Explore </font></p>  <p><font size="2" face="Calibri"><strong><u>Note:</u></strong> In our case SharePoint Central Administration Web Application </font></p>  <p><font size="2" face="Calibri">Within the Web.config file set following</font></p>  <p><font size="2" face="Calibri">&lt;CallStack=&quot;<font color="#ff0000">true</font>&quot;/&gt;</font></p>  <p><font size="2" face="Calibri">&lt;customErrors mode=&quot;<font color="#ff0000">Off</font>&quot;/&gt;</font></p>  <p><font size="2" face="Calibri"><strong><u>Note:</u></strong> After Saving the changes to the web.config file we don't require an IISRESET</font></p>  <p><font size="2" face="Calibri">Browse the Central Administration Site again we see following error</font></p>  <p><font size="2" face="Calibri"><font color="#ff0000">Server Error in '/' Application</font> </font></p>  <p><font size="2" face="Calibri"><strong><u>Description: </u></strong>An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. </font></p>  <p><font size="2" face="Calibri"><strong><u>Parser Error Message:</u></strong> Machine decryption key is invalid. It should be either &quot;AutoGenerate&quot;, or 16 (for DES) or 48 (for 3DES and AES) Hex chars long, and may be followed by &quot;,IsolateApps&quot;. Exception message from the underlying layer: Specified key is not a valid size for this algorithm.</font></p>  <p><font size="2" face="Calibri">Line 609: &lt;/transformers&gt;</font></p>  <p><font size="2" face="Calibri">Line 610: &lt;/webParts&gt;</font></p>  <p><font size="2" face="Calibri">Line 611: <font color="#ff0000">&lt;machineKey validationKey=&quot;"****"&quot; decryptionKey=&quot;"****"&quot; validation=&quot;HMACSHA256&quot; /&gt;</font></font></p>  <p><font size="2" face="Calibri">Line 612: &lt;sessionState mode=&quot;InProc&quot; timeout=&quot;20&quot; cookieless=&quot;UseCookies&quot; /&gt;</font></p>  <p><font size="2" face="Calibri">Line 613: &lt;roleManager&gt; </font></p>  <p><font size="2" face="Calibri"><strong><u>Workaround:</u></strong></font></p>  <p><font size="2" face="Calibri">Comment the following line in Web.Config file</font></p>  <p><font size="2" face="Calibri"><font color="#ff0000">&lt;!--</font> &lt;machineKey validationKey=&quot;"****"&quot; decryptionKey=&quot;"****"&quot; validation=&quot;HMACSHA256&quot; /&gt; <font color="#ff0000">--&gt;</font></font></p>  <p><font size="2" face="Calibri">After which we browsed the SharePoint Central Administration site and it works fine.</font></p>  <p><font size="2" face="Calibri"><strong><u>Root Cause:</u></strong></font></p>  <p><font size="2" face="Calibri">This is because SharePoint configures MachineKey in the web.config for its sites which is HMACSHA256 requires a 256 bit key (64 hexadecimal characters, 32 bytes) , but is not explicitly setting the decryption value. Also assuming that MachineKey is not configured at a higher level (and is using the defaults).</font></p>  <p><font size="2" face="Calibri">Our issue is that our site's configuration uses the validationKey, decryptionKey, and validation value from site's web.config, instead of the decryption value from the machine.config. Since the Machine.Config's decryption value is 3DES which requires a 192 bit key (48 hexadecimal characters, 24 bytes), instead of HMACSHA256 requires a 256 bit key (64 hexadecimal characters, 32 bytes) , hence we get an error.</font></p>  <p><font size="2" face="Calibri">When then SharePoint Web Application within 2013 is getting provisioned it compiles the web.config file referring the machine.config file located under</font></p>  <p><font size="2" face="Calibri">C:\windows\Microsoft.NET\Framework64\v4.0.30319\Config</font></p>  <p><font size="2" face="Calibri">Open the Machine.Config file and search for machineKey validationKey and you would find following </font></p>  <p><font size="2" face="Calibri">&lt;machineKey validationKey=&quot;"****"&quot; decryptionKey=&quot;"****"&quot; validation=&quot;SHA1&quot; decryption=&quot;3DES&quot;/&gt;</font></p>  <p><font size="2" face="Calibri">Note: Often when using pre built framework web applications they have hard coded the &lt;machineKey&gt; validationKey and decryptionKey values. The main reason for this is to add support for web farms as the forms authentication, view state and out of process session state all use these settings for security.</font></p>  <p><font size="2" face="Calibri"><strong><u>Solution:</u></strong></font></p>  <p>As SharePoint 2013 uses .net framework 4.0 navigate to <font size="2" face="Calibri">C:\windows\Microsoft.NET\Framework64\v4.0.30319\Config and comment the following line</font></p>  <p><font size="2" face="Calibri"><font color="#ff0000">&lt;!--</font> &lt;machineKey validationKey=&quot;"****"&quot; decryptionKey=&quot;"****"&quot; validation=&quot;SHA1&quot; decryption=&quot;3DES&quot;/&gt; <font color="#ff0000">–&gt;</font></font></p>  <p><font size="2" face="Calibri"><strong>To update Root Web.Config file</strong></font></p>  <p><font size="2" face="Calibri">Open IIS manager --&gt; Select ServerName in Features views --&gt; Click on Machine Key and set following (The Default Setting)</font></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/3036.machinekey.jpg_5CD1B8D3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/3036.machinekey.jpg_5F00_5CD1B8D3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="machinekey.jpg" border="0" alt="machinekey.jpg" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/69/78/metablogapi/6201.machinekey.jpg_thumb_6D69B3C1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-69-78-metablogapi/6201.machinekey.jpg_5F00_thumb_5F00_6D69B3C1.png" width="510" height="354" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2007 – Upgrade Object Too New</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/sharepoint-2007-upgrade-object-too-new</link>
      <pubDate>Thu, 11 Oct 2012 06:37:06 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2012/10/11/sharepoint-2007-upgrade-object-too-new/</guid>
      <description><![CDATA[After applying a cumulative update\ service pack on SharePoint 2007 Servers when we run PSConfig...]]></description>
      <content:encoded><![CDATA[<p><font color="#000000">After applying a cumulative update\ service pack on SharePoint 2007 Servers when we run <strong>PSConfig wizard</strong> which fails on step 8 of 9 or <strong>psconfig.exe -cmd upgrade -inplace b2b –wait -force</strong> it fails on step 3 with the error message</font></p>  <p><strong><u><font color="#000000" size="2" face="Calibri">From Upgrade Log:</font></u></strong></p>  <p><font color="#000000" size="2" face="Calibri">[SharedServiceDatabaseSequence] [DEBUG] [10/9/2012 4:11:06 PM]: Calling get SchemaVersion on Database <font style="background-color: #ffff00">SharedServices1_SSPDB</font>, Status = Upgrading.</font></p>  <p><font color="#000000" size="2" face="Calibri">[SharedServiceDatabaseSequence] [ERROR] [10/9/2012 4:11:06 PM]: <font color="#ff0000">Upgrade object too new (build version = 12.0.6612.1000, schema version = 12.0.1.0). Current server (build version = 12.0.6425.1000, schema version = 12.0.1.0</font>).</font></p>  <p><font color="#000000" size="2" face="Calibri">[SPManager] [ERROR] [10/9/2012 4:11:06 PM]: CanUpgrade [SharedDatabase Name=<font style="background-color: #ffff00">SharedServices1_SSPDB</font> Parent=SPDatabaseServiceInstance Name=SQL] failed.</font></p>  <p><font color="#000000" size="2" face="Calibri">[SPManager] [ERROR] [10/9/2012 4:11:06 PM]: The specified SharedDatabase Name=<font style="background-color: #ffff00">SharedServices1_SSPDB</font> Parent=SPDatabaseServiceInstance Name=SQL has been upgraded to a newer version of SharePoint. Please upgrade this SharePoint application server before attempting to access this object.</font></p>  <p><font color="#000000" size="2" face="Calibri">[SPManager] [ERROR] [10/9/2012 4:11:06 PM]: at Microsoft.SharePoint.Upgrade.SPSequence.get_CanUpgrade()</font></p>  <p><font color="#000000" size="2" face="Calibri">at Microsoft.SharePoint.Upgrade.SPManager.CanUpgrade(Object o)</font></p>  <p><font color="#000000" size="2" face="Calibri">[SPManager] [ERROR] [10/9/2012 4:11:06 PM]: ReflexiveCanUpgrade [SharedDatabase Name=<font style="background-color: #ffff00">SharedServices1_SSPDB</font> Parent=SPDatabaseServiceInstance Name=SQL] failed.</font></p>  <p><font color="#000000" size="2" face="Calibri">[SPManager] [ERROR] [10/9/2012 4:11:06 PM]: The specified SharedDatabase Name=SharedServices1 Parent=SPDatabaseServiceInstance Name=SQL has been upgraded to a newer version of SharePoint. Please upgrade this SharePoint application server before attempting to access this object.</font></p>  <p><font color="#000000" size="2" face="Calibri"><strong><u>Resolution:</u></strong></font></p>  <p><font size="2" face="Calibri"><font color="#000000">Now from the above error: </font><font color="#000000" size="2" face="Calibri"><font color="#ff0000"><font color="#000000"><font color="#000000">Current</font> server (</font>build version = 12.0.6425.1000</font><font color="#000000">, schema version = 12.0.1.0)</font><font color="#ff0000"> <font color="#000000">indicates the current server built, whereas</font> <font color="#ff0000">Upgrade object too new (build version = 12.0.6612.1000</font></font><font color="#000000">, schema version = 12.0.1.0) is what is expected.</font></font></font></p>  <p><font color="#000000" size="2" face="Calibri">On the SharePoint Server where the upgrade is failing with above error message</font></p>  <p><font color="#000000" size="2" face="Calibri">Click on Start <strong>–&gt;</strong> Run <strong>–&gt;</strong> Type “Regedit” and then navigate to following node.</font></p>  <p><font color="#000000" size="2" face="Calibri"><strong>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0</strong></font></p>  <p><font color="#000000" size="2" face="Calibri"><font color="#000000">Double click on BuildVersion and then update it from <font color="#ff0000">12.0.6425.1000</font> to</font> <font color="#ff0000">12.0.6612.1000</font></font></p>    <p><font color="#000000" size="2" face="Calibri">Now, run the <strong>PSConfig wizard</strong> or <strong>psconfig.exe -cmd upgrade -inplace b2b –wait -force</strong> and it should succeed.</font></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint - Extract WSP file from Configuration Database</title>
      <link>https://docs.microsoft.com/archive/blogs/sushrao/sharepoint-extract-wsp-file-from-configuration-database</link>
      <pubDate>Thu, 27 Sep 2012 10:10:40 GMT</pubDate>
      <dc:creator><![CDATA[Sushant Rao]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/sushrao/2012/09/27/sharepoint-extract-wsp-file-from-configuration-database/</guid>
      <description><![CDATA[Many a times we come across situation where we are building a Development \ Test environment...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Calibri">Many a times we come across situation where we are building a Development \ Test environment replicating the Production Server, however we don’t have the solution which were deployed on production.</font></p>  <p><font size="2" face="Calibri">Hopefully information below may help a few of us.</font></p>  <p><b><u><font size="2" face="Calibri"></font></u></b></p>  <p><b><u><font size="2" face="Calibri">In SharePoint 2010 :</font></u></b></p>  <p><font size="2" face="Calibri">To <u>Extract the Solution</u> from SharePoint Configuration database, run SharePoint management Shell as Administrator</font></p>  <p><font face="Calibri"><font size="2"><font color="#ff0000">$farm</font> = <font color="#4f81bd">Get-SPFarm</font></font></font></p>  <p><font face="Calibri"><font size="2"><font color="#ff0000">$wsp</font> = <font color="#ff0000">$farm</font>.Solutions.Item(<font color="#d16349">&quot;<font style="background-color: #ffff00">Solution.wsp</font>&quot;</font>).SolutionFile</font></font></p>  <p><font face="Calibri"><font size="2"><font color="#ff0000">$wsp</font>.SaveAs(&quot;c:\SP2010.wsp&quot;)</font></font></p>  <p><b><u><font size="2" face="Calibri">Add Solution</font></u></b></p>  <p><font size="2" face="Calibri"><font color="#4f81bd">Add-SPSolution</font> <font color="#646b86">-LiteralPath</font> <font color="#9b00d3">&lt;SolutionPath&gt;</font></font></p>  <p><font size="2" face="Calibri"><strong><u>Deploy Solution</u></strong></font></p>  <p><font size="2" face="Calibri"><font color="#4f81bd">Install-SPSolution</font> <font color="#646b86">-Identity</font> <font color="#9b00d3">&lt;SolutionName&gt;</font> <font color="#646b86">-WebApplication</font> <font color="#9b00d3">&lt;URLname&gt;</font> </font></p>  <p><font size="2" face="Calibri"><strong><u>Ref:</u></strong> <a title="https://technet.microsoft.com/en-us/library/cc262995.aspx" href="https://technet.microsoft.com/en-us/library/cc262995.aspx">https://technet.microsoft.com/en-us/library/cc262995.aspx</a></font></p>  <p><b><u><font size="2" face="Calibri">In SharePoint 2007:</font></u></b></p>  <p><b><u><font size="2" face="Calibri"></font></u></b></p>  <p><b><font size="2" face="Calibri">PowerShell on MOSS 2007 </font></b></p>  <p><font size="2" face="Calibri">Install : </font><a href="https://support.microsoft.com/kb/968930"><font size="2" face="Calibri">https://support.microsoft.com/kb/968930</font></a><font size="2" face="Calibri"> (No Restart Required)</font></p>  <p><font size="2" face="Calibri">To <u>Extract the Solution</u> from SharePoint Configuration database, run Windows PowerShell as Administrator</font></p>  <p><font size="2" face="Calibri"><font color="#646b86">Set-ExecutionPolicy</font> <font color="#9b00d3">UnRestricted</font></font></p>  <p><font size="2" face="Calibri">Press Y</font></p>  <p><font size="2" face="Calibri">Before programming against the SharePoint and/or MOSS 2007 object model the appropriate assemblies must be loaded. The following commands do this:</font></p>  <p><font size="2" face="Calibri"><font color="#4f81bd">[System.Reflection.Assembly]::</font>Load(<font color="#d16349">“Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”</font>) </font></p>  <p><font size="2" face="Calibri"><font color="#4f81bd">[System.Reflection.Assembly]::</font>Load(<font color="#d16349">“Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”</font>) </font></p>  <p><b><u><font size="2" face="Calibri"></font></u></b></p>  <p><b><u><font size="2" face="Calibri"></font></u></b></p>  <p><font size="2" face="Calibri"><font color="#ff0000">$farm</font> = <font color="#4f81bd">[microsoft.sharepoint.administration.spfarm]::</font>Local</font></p>  <p><font size="2" face="Calibri"><font color="#ff0000">$wsp</font> = <font color="#ff0000">$farm</font>.Solutions.Item(&quot;ApplicationTemplateCore.wsp&quot;).SolutionFile</font></p>  <p><font size="2" face="Calibri"><font color="#ff0000">$wsp</font>.SaveAs(&quot;c:\SP2007.wsp&quot;)</font></p>  <p><b><u><font size="2" face="Calibri">Install Solution</font></u></b></p>  <p><font size="2" face="Calibri">stsadm.exe -o addsolution -filename &lt;Solution filename&gt;</font></p>  <p><strong><u>Ref:</u></strong> <a title="https://technet.microsoft.com/en-us/library/cc263162(v=office.12).aspx" href="https://technet.microsoft.com/en-us/library/cc263162(v=office.12).aspx">https://technet.microsoft.com/en-us/library/cc263162(v=office.12).aspx</a></p>  <p><b><u><font size="2" face="Calibri">Deploy Solution</font></u></b></p>  <p><font size="2" face="Calibri">stsadm.exe -o deploysolution&#160; -name &lt;Solution name&gt;</font></p>  <p><font size="2" face="Calibri"><strong><u>Ref:</u></strong> <a title="https://technet.microsoft.com/en-us/library/cc262459(v=office.12).aspx" href="https://technet.microsoft.com/en-us/library/cc262459(v=office.12).aspx">https://technet.microsoft.com/en-us/library/cc262459(v=office.12).aspx</a></font></p>]]></content:encoded>
    </item>
  </channel>
</rss>