<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>PFE Ireland : Windows XP</title><link>http://blogs.technet.com/pfe-ireland/archive/tags/Windows+XP/default.aspx</link><description>Tags: Windows XP</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Windows Server 2008 Terminal Services: Single Sign On and Windows XP clients</title><link>http://blogs.technet.com/pfe-ireland/archive/2008/09/05/windows-server-2008-terminal-services-presentation-virtualisation-and-windows-xp-clients.aspx</link><pubDate>Fri, 05 Sep 2008 18:55:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3119914</guid><dc:creator>gmcshera</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/pfe-ireland/comments/3119914.aspx</comments><wfw:commentRss>http://blogs.technet.com/pfe-ireland/commentrss.aspx?PostID=3119914</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_2.png" mce_href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=85 alt=image src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb.png" width=244 border=0 mce_src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H5&gt;Single Sign On for Windows XP Clients &lt;BR&gt;&lt;A href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_12.png" mce_href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_12.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=60 alt=image src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb_5.png" width=60 align=right border=0 mce_src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/H5&gt;
&lt;P&gt;Single Sign On (SSO) to Windows Server 2008 (W2K8) Terminal Services uses the Credential Security Service Provider (CredSSP).&amp;nbsp; CredSSP delegates credentials to defined target servers and is native to Windows Vista.&amp;nbsp; Windows XP SP3 includes CredSSP but it is not enabled by default.&amp;nbsp; Windows XP SP2 clients can still connect to W2K8 Terminal Services but users will be prompted for credentials upon establishing the first session.&amp;nbsp; Having to enter your username and password ruins the RemoteAPP experience.&amp;nbsp; So what do you need to get your Windows XP client seamlessly connecting to a W2K8 Terminal Server?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Windows XP SP3&lt;/LI&gt;
&lt;LI&gt;Remote Desktop Connection (RDC) 6.1 (Part of SP3) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/kb/951608/" target=_blank mce_href="http://support.microsoft.com/kb/951608/"&gt;KB951608&lt;/A&gt; explains the CredSSP for Windows XP SP3 in detail.&lt;/P&gt;
&lt;P&gt;Once you have SP3 installed you need to make the following changes:&lt;/P&gt;
&lt;P&gt;Client side:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Enable CredSSP &lt;/LI&gt;
&lt;LI&gt;Configure Single Sign On for credential delegation &lt;/LI&gt;
&lt;LI&gt;Define target servers &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Server side:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Modify RDP protocol settings &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;U&gt;Enable CredSSP&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;The CredSSP settings have to be APPENDED to the existing parameters.&amp;nbsp; See KB951608.&amp;nbsp; Appending to existing keys could prove time consuming if you have a lot of clients.&amp;nbsp; Here is a script written in VBS that may make automating the task a little easier.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: Do not blindly run these scripts without testing first.&amp;nbsp; Make sure you take a backup of the registry!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;Const HKEY_LOCAL_MACHINE = &amp;amp;H80000002&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;strComputer = "."&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &amp;amp; strComputer &amp;amp; "\root\default:StdRegProv")&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#404040&gt;&lt;I&gt;‘&lt;/I&gt;&lt;I&gt;strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa"&lt;/I&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;strValueName = "Security Packages"&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;oReg.GetMultiStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,arrSecurityPackages&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;For Each strValue In arrSecurityPackages&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;if lcase(strValue) = "tspkg" then intTSPKG = 1 ‘ Set a flag to say that value already exists&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;Next&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;if intTSPKG &amp;lt;&amp;gt; 1 then ‘Value doesn’t exist so lets create it&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;intNewArraySize = Ubound(arrSecurityPackages) + 1&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;reDim Preserve arrSecurityPackages(intNewArraySize) ‘Resize the array for new value and keep existing values&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;arrSecurityPackages(intNewArraySize) = "tspkg" ‘ Add the new value&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;oReg.SetMultiStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,arrSecurityPackages&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;End if&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#404040&gt;&lt;I&gt;s&lt;/I&gt;&lt;I&gt;trKeyPath = "SYSTEM\CurrentControlSet\Control\SecurityProviders"&lt;/I&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;strValueName = "SecurityProviders"&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;intResult = InStr(strValue, "credssp.dll") ‘Will return position found in string&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;if intResult = 0 then ‘Position of 0 means string not found&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;strValue=strValue &amp;amp; ",credssp.dll"&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue&lt;/FONT&gt;&lt;/I&gt; &lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;End if&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Configure Single Sign On and define target servers&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;The following registry changes enable CredSSP for the default credentials.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT color=#404040&gt;Windows Registry Editor Version 5.00&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT color=#404040&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation]&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT color=#404040&gt;"AllowDefaultCredentials"=dword:00000001&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT color=#404040&gt;"ConcatenateDefaults_AllowDefault"=dword:00000001&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;The following registry changes define the target servers.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT color=#404040&gt;Windows Registry Editor Version 5.00 &lt;BR&gt;&lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowDefaultCredentials] &lt;BR&gt;"1"="TERMSRV/*"&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;You can explicitly name your terminal servers e.g. :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;TERMSRV/myserver.mydomain.com : A specific server &lt;/LI&gt;
&lt;LI&gt;TERMSRV/*.mydomain.com : All servers in mydomain.com &lt;/LI&gt;
&lt;LI&gt;TERMSRV/* : All servers &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;I&gt;&lt;FONT color=#404040&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;RDP Protocol changes&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;You have to make some changes to the default RDP protocol settings on your server in order to allow Windows XP SP3 clients connect.&lt;/P&gt;
&lt;P&gt;Open Terminal Server Configuration snap-in and modify the RDP connection properties as follows:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_6.png" mce_href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_6.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=509 alt=image src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb_2.png" width=412 border=0 mce_src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Note that the tick has been removed from the "Allow connections only from computers running Remote Desktop with Network Level Authentication".&amp;nbsp; I have the Encryption level set of Client Compatible but there is no reason why you cannot use High.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_8.png" mce_href="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_8.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=509 alt=image src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb_3.png" width=410 border=0 mce_src="http://blogs.technet.com/blogfiles/pfe-ireland/WindowsLiveWriter/WindowsServer2008TerminalServicesPresent_E14F/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Make sure that the Use client-provided log on information radial button is selected.&lt;/P&gt;
&lt;P&gt;You should now be in a position to make use of the SSO functionality from your Windows XP clients.&amp;nbsp; However, there is a KB titled &lt;A href="http://support.microsoft.com/kb/953760" target=_blank mce_href="http://support.microsoft.com/kb/953760"&gt;When you enable SSO for a terminal server from a Windows XP SP3-based client computer, you are still prompted for user credentials when you log on to the terminal server&lt;/A&gt; which comes with a patch.&amp;nbsp; During my testing I did not come across this problem ... but I figured it was worth noting.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3119914" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/pfe-ireland/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://blogs.technet.com/pfe-ireland/archive/tags/Terminal+Server/default.aspx">Terminal Server</category><category domain="http://blogs.technet.com/pfe-ireland/archive/tags/Vista/default.aspx">Vista</category><category domain="http://blogs.technet.com/pfe-ireland/archive/tags/Windows+XP/default.aspx">Windows XP</category></item></channel></rss>