<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Windows 2008 R2 on Remko's Blog</title><link>https://remkoweijnen.nl/blog/categories/windows-2008-r2/</link><description>Recent content in Windows 2008 R2 on Remko's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 13 Sep 2013 15:35:25 +0000</lastBuildDate><atom:link href="https://remkoweijnen.nl/blog/categories/windows-2008-r2/index.xml" rel="self" type="application/rss+xml"/><item><title>The publisher could not be verified when launching an application with RES Workspace Manager</title><link>https://remkoweijnen.nl/blog/2013/09/13/the-publisher-could-not-be-verified-when-launching-an-application-with-res-workspace-manger/</link><pubDate>Fri, 13 Sep 2013 15:35:25 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/09/13/the-publisher-could-not-be-verified-when-launching-an-application-with-res-workspace-manger/</guid><description>&lt;p&gt;Today I was troubleshooting a warning message that popped up when launching a network application with RES Workspace Manager:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/09/image.webp" class="glightbox thickbox" data-type="image" data-gallery="post-3380"&gt;&lt;img loading="lazy" decoding="async" title="Open file - Security Warning" style="display: inline" alt="The publisher could not be verified. Are you sure you want to run this software?" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/09/image_thumb.webp" width="240" height="170" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Usually this is a simple fix: add the servername (file://server) to the Local Intranet zone:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/09/clip_image002.jpg" class="glightbox thickbox" data-type="image" data-gallery="post-3380"&gt;&lt;img loading="lazy" decoding="async" title="Local intranet" style="display: inline" alt="You can add and remove websites from this zone. All websites in this zone will use the zone&amp;#39;s security settings." src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/09/clip_image002_thumb.jpg" width="240" height="209" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;That worked when I launched the application directly. However when launching the application with RES Workspace Manager I would still get the warning. Even stranger: when I clicked Cancel the application would still be launched.&lt;/p&gt;</description></item><item><title>ClickOnce Applications in Enterprise Environments</title><link>https://remkoweijnen.nl/blog/2013/08/05/clickonce-applications-in-enterprise-environments/</link><pubDate>Mon, 05 Aug 2013 16:51:21 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/08/05/clickonce-applications-in-enterprise-environments/</guid><description>&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/t71a733d.aspx" target="_blank"&gt;ClickOnce&lt;/a&gt; is a Microsoft technology that enables an end user to install an application from the web without administrative permissions.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;That's great isn't it? &lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;While ClickOnce may sound great to developers it's actually a nightmare for Enterprise administrators because they try to prevent users from installing software themselves.&lt;/p&gt; &lt;p&gt;ClickOnce also incorporates an Automatic Updates mechanism which means that users might run different or not tested/approved versions...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Virtual Environments &lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;It get's even worse in virtual environments such as VDI and SBC where machines are often non-persistent. Each time the users starts the application they will see a screen similar to the one below while they actually download and install it over and over again:&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/08/SNAGHTML87937a.webp" data-type="image" data-gallery="post-3308"&gt;&lt;img loading="lazy" decoding="async" title="SNAGHTML87937a" style="margin: 0px; display: inline" alt="SNAGHTML87937a" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/08/SNAGHTML87937a_thumb.webp" width="240" height="136" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If the environment is persistent, it's not guaranteed that the user works on the same machine each day. This means that the application will be installed on every box the user ever logs onto...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;How does it work? &lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;In order to understand how we can best treat ClickOnce applications we need to understand how they work since MSDN documentation does not describe this in detail. &lt;/p&gt;</description></item><item><title>Return username instead of computername to Applications</title><link>https://remkoweijnen.nl/blog/2012/12/06/return-username-instead-of-computername-to-applications/</link><pubDate>Thu, 06 Dec 2012 10:45:40 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/12/06/return-username-instead-of-computername-to-applications/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image8.webp" class="glightbox thickbox" data-type="image" data-gallery="post-2841"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right" title="image" alt="image" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image_thumb8.webp" width="87" height="74" /&gt;&lt;/a&gt;Some applications use the computer's name as a unique identifier, rather than using the user name. In a single-user-per-computer environment, this strategy works well. &lt;/p&gt; &lt;p&gt;However, in a Multi User environment such as Citrix XenApp or Microsoft's Remote Desktop Services (Terminal Server), all connected users report the same computername. &lt;/p&gt; &lt;p&gt;If the application relies on unique computernames to handle tasks such as file and record locking, then the application will fail. &lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image9.webp" class="glightbox thickbox" data-type="image" data-gallery="post-2841"&gt;&lt;img loading="lazy" decoding="async" style="margin: 11px 6px 5px 0px; display: inline; float: left" title="image" alt="image" align="left" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image_thumb9.webp" width="32" height="32" /&gt;&lt;/a&gt;We can however set an &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;186499"&gt;Application Compatibility Flag&lt;/a&gt; in the registry to return the username instead of the computername.&lt;/p&gt; &lt;p&gt;To demonstrate this behaviour I wrote a small Test Application called TestAppCompatFlags.exe.&lt;/p&gt;</description></item><item><title>My Network Places Internals</title><link>https://remkoweijnen.nl/blog/2012/07/19/my-network-places-internals/</link><pubDate>Thu, 19 Jul 2012 11:26:12 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/07/19/my-network-places-internals/</guid><description>&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/07/image2.webp" data-type="image" data-gallery="post-2673"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right" title="Nethood" alt="Nethood Icon" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/07/image_thumb2.webp" width="56" height="52" /&gt;&lt;/a&gt;I am using a PowerShell script to copy some elements of from the users old profile location to a new location. This includes the Nethood (&amp;quot;My Network Places&amp;quot;) folder which contains the Network Places shortcuts.&lt;/p&gt; &lt;p&gt;A user reported that she could not save documents to Network Places anymore and after inspection the Network Places shortcuts were broken.&lt;/p&gt; &lt;p&gt;I started comparing the old Nethood folder to the new and observed the following difference in Explorer:&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/07/image3.webp" data-type="image" data-gallery="post-2673"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/07/image_thumb3.webp" width="409" height="80" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When copying entries from the Nethood folder with Explorer manually they worked fine, so somehow Explorer gives the Nethood folder special treatment.&lt;/p&gt;</description></item><item><title>Switching to the Services Session</title><link>https://remkoweijnen.nl/blog/2012/02/24/switching-to-the-services-session/</link><pubDate>Fri, 24 Feb 2012 14:49:21 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/02/24/switching-to-the-services-session/</guid><description>&lt;p&gt;Just read a tweet from &lt;a href="http://twitter.com/andyjmorgan" target="_blank"&gt;@andyjmorgan&lt;/a&gt; about &lt;a href="http://twitter.com/andyjmorgan/statuses/173033102514462720" target="_blank"&gt;Interactive Service Detection&lt;/a&gt;. This made me remember that it's possible to switch to the Session 0 with an undocumented api in winsta.dll.&lt;/p&gt; &lt;p&gt;For this API to work you must have the Interactive Services Detection (UI0Detect) service running.&lt;/p&gt;</description></item><item><title>Remote Registry from 32 to 64 bit</title><link>https://remkoweijnen.nl/blog/2011/10/21/remote-registry-from-32-to-64-bit/</link><pubDate>Fri, 21 Oct 2011 09:05:11 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/10/21/remote-registry-from-32-to-64-bit/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/10/image5.webp" class="glightbox" data-type="image" data-gallery="post-2146"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/10/image_thumb5.webp" width="40" height="38" /&gt;&lt;/a&gt;Yesterday I needed to set a few registry keys remotely from a 32 bit windows machine to a 64 bit machine.&lt;/p&gt; &lt;p&gt;I used reg.exe to set the key but even though it returned success the key wasn't altered.&lt;/p&gt; &lt;p&gt;As I suspected the key was written to the Wow6432Node. In the help I couldn't find any switch to force reg.exe to use the 64-bit view.&lt;/p&gt; &lt;p&gt;On a 64 bit machine this is not a problem since both 32- and 64 bit versions of reg.exe exists. The 32 bit version of reg.exe defaults to the 32 bit view and the 64 bit version defaults to the 64 bit view.&lt;/p&gt; &lt;p&gt;But luckily reg.exe has a switch (that is not listed in the help) to force the View:&lt;/p&gt; &lt;ul&gt;</description></item><item><title>Prevent additional IP addresses from being registered in DNS</title><link>https://remkoweijnen.nl/blog/2011/10/18/prevent-additional-ip-addresses-from-being-registered-in-dns/</link><pubDate>Tue, 18 Oct 2011 15:01:33 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/10/18/prevent-additional-ip-addresses-from-being-registered-in-dns/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/10/SNAGHTML1aaf7885.webp" class="glightbox" data-type="image" data-gallery="post-2139"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right;" title="SNAGHTML1aaf7885" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/10/SNAGHTML1aaf7885_thumb.webp" alt="SNAGHTML1aaf7885" width="70" height="67" align="right" /&gt;&lt;/a&gt;In Windows 7 and 2008 R2 all IP Addresses are by default registered in DNS.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t want certain IP addresses to appear in DNS you can alter this behavior with Netsh using the &lt;strong&gt;skipassource&lt;/strong&gt; flag.&lt;/p&gt;
&lt;p&gt;Use the following syntax to add an additional IP Address with &lt;strong&gt;skipassource&lt;/strong&gt; flag:&lt;/p&gt;</description></item><item><title>GetUserObjectInformation fails with Access Denied</title><link>https://remkoweijnen.nl/blog/2011/08/16/getuserobjectinformation-fails-with-access-denied/</link><pubDate>Tue, 16 Aug 2011 21:11:01 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/08/16/getuserobjectinformation-fails-with-access-denied/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/08/image2.webp" class="glightbox" data-type="image" data-gallery="post-1994"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="Logon SID" border="0" alt="Logon SID" align="left" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/08/image_thumb2.webp" width="48" height="44" /&gt;&lt;/a&gt;Today I was reusing some old (pre vista) code the retrieves the Logon SID that I wrote a few years ago. The Logon SID is a special SID that identifies a logon session that has the form S-1-5-5-X-Y.&lt;/p&gt; &lt;p&gt;You can view your Logon SID with Process Explorer, right click a GUI process, select Properties and goto the Security Tab:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/08/SNAGHTML1b84fe6b.webp" class="glightbox" data-type="image" data-gallery="post-1994"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="explorer.exe:4484 Properties" border="0" alt="Process Explorer|Security Tab|Logon SID" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/08/SNAGHTML1b84fe6b_thumb.webp" width="274" height="317" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>GetTokenInformation with TokenLinkedToken returns error 1312</title><link>https://remkoweijnen.nl/blog/2011/08/11/gettokeninformation-with-tokenlinkedtoken-returns-error-1312/</link><pubDate>Thu, 11 Aug 2011 11:30:47 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/08/11/gettokeninformation-with-tokenlinkedtoken-returns-error-1312/</guid><description>&lt;p&gt;The &lt;a href="http://msdn.microsoft.com/en-us/library/aa446671(v=vs.85).aspx" target="_blank"&gt;GetTokenInformation&lt;/a&gt; function can be used with the TokenLinkedToken Information Class on Windows Vista and higher to the linked (Elevated) token.&lt;/p&gt;
&lt;p&gt;This is useful when User Account Control is enabled and you want to launch an elevated process e.g. from a service.&lt;/p&gt;</description></item><item><title>Programmatically Check if User Account Control is Enabled</title><link>https://remkoweijnen.nl/blog/2011/08/11/programmatically-check-if-user-account-control-is-enabled/</link><pubDate>Thu, 11 Aug 2011 11:27:13 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/08/11/programmatically-check-if-user-account-control-is-enabled/</guid><description>&lt;p&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline; float: left" align="left" src="https://remkoweijnen.nl/blog/wp-content/uploads/recovered/ac92b77a899e8666.png" width="28" height="34" /&gt;Snippet below can be used to programmatically determine if User Account Control is enabled:&lt;/p&gt; 
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;objectpascal&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".pas" href="data:text/plain;charset=utf-8;base64,dXNlcwogIEp3YVdpbmJhc2UsIEp3YVdpbk50OwoKZnVuY3Rpb24gSXNVQUNFbmFibGVkOiBCb29sZWFuOwp2YXIKICBoVG9rZW46IFRIYW5kbGU7CiAgdGV0OiBUT0tFTl9FTEVWQVRJT05fVFlQRTsKICBkd1NpemU6IERXT1JEOwpiZWdpbgogIFdpbjMyQ2hlY2soT3BlblByb2Nlc3NUb2tlbihHZXRDdXJyZW50UHJvY2VzcywgVE9LRU5fUVVFUlksIGhUb2tlbikpOwogIC8vIFRva2VuRWxldmF0aW9uVHlwZSBjbGFzcyBvbmx5IGF2YWlsYWJsZSBvbiBWaXN0YSsKICBXaW4zMkNoZWNrKEdldFRva2VuSW5mb3JtYXRpb24oaFRva2VuLCBUb2tlbkVsZXZhdGlvblR5cGUsIEB0ZXQsIFNpemVPZih0ZXQpLCBkd1NpemUpKTsKCiAgUmVzdWx0IDo9IHRldCA8PiBUb2tlbkVsZXZhdGlvblR5cGVEZWZhdWx0OwplbmQ7"&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-objectpascal" data-lang="objectpascal"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;uses&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;JwaWinbase&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;JwaWinNt&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;IsUACEnabled&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;var&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;hToken&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;THandle&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;tet&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;TOKEN_ELEVATION_TYPE&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;dwSize&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;DWORD&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;begin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;Win32Check&lt;span class="o"&gt;(&lt;/span&gt;OpenProcessToken&lt;span class="o"&gt;(&lt;/span&gt;GetCurrentProcess&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;TOKEN_QUERY&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;hToken&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// TokenElevationType class only available on Vista+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;Win32Check&lt;span class="o"&gt;(&lt;/span&gt;GetTokenInformation&lt;span class="o"&gt;(&lt;/span&gt;hToken&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;TokenElevationType&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;tet&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;SizeOf&lt;span class="o"&gt;(&lt;/span&gt;tet&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;dwSize&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ge"&gt;Result&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tet&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;TokenElevationTypeDefault&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;section class="comments"&gt;
&lt;h2&gt;1 Comments&lt;/h2&gt;
&lt;ol class="comment-list"&gt;
&lt;li class="comment depth-0"&gt;&lt;div class="comment-meta"&gt;&lt;span class="comment-author"&gt;&lt;a href="https://remkoweijnen.nl/blog/2011/08/11/gettokeninformation-with-tokenlinkedtoken-returns-error-1312/" rel="nofollow ugc"&gt;GetTokenInformation with TokenLinkedToken returns error 1312&lt;/a&gt;&lt;/span&gt; &lt;time datetime="2011-08-11"&gt;Aug 11, 2011&lt;/time&gt;&lt;/div&gt;&lt;div class="comment-body"&gt;&lt;p&gt;[...] specified logon session does not exist. It may already have been terminated.&amp;#8221;So you should check if User Account Control is enabled in such cases (or make this error non critical).share: Bookmark on Delicious Digg this post [...]&lt;/p&gt;</description></item><item><title>Programmatically determine if we run server core</title><link>https://remkoweijnen.nl/blog/2011/05/17/programmatically-determine-if-we-run-server-core/</link><pubDate>Tue, 17 May 2011 21:32:22 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/05/17/programmatically-determine-if-we-run-server-core/</guid><description>&lt;p&gt;If you want to check if you are running on a Server Core edition of Windows you can use the &lt;a href="http://msdn.microsoft.com/en-us/library/ms724358.aspx" target="_blank"&gt;GetProductInfo&lt;/a&gt; API.&lt;/p&gt; &lt;p&gt;GetProductInfo takes 4 input parameters that can be obtained using &lt;a href="http://msdn.microsoft.com/en-us/library/ms724451(VS.85).aspx" target="_blank"&gt;GetVersionEx&lt;/a&gt; and the &lt;a href="http://msdn.microsoft.com/en-us/library/ms724833(v=VS.85).aspx" target="_blank"&gt;OSVERSIONINFOEX&lt;/a&gt; structure:&lt;/p&gt; 
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;objectpascal&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".pas" href="data:text/plain;charset=utf-8;base64,dmFyCiAgb3N2aTogT1NWRVJTSU9OSU5GT0VYOwpiZWdpbgogIFplcm9NZW1vcnkoQG9zdmksIFNpemVPZihvc3ZpKSk7CiAgb3N2aS5kd09TVmVyc2lvbkluZm9TaXplIDo9IFNpemVPZihvc3ZpKTsKICBXaW4zMkNoZWNrKEdldFZlcnNpb25FeChvc3ZpKSk7"&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-objectpascal" data-lang="objectpascal"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;var&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;osvi&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;OSVERSIONINFOEX&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;begin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;ZeroMemory&lt;span class="o"&gt;(@&lt;/span&gt;osvi&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;SizeOf&lt;span class="o"&gt;(&lt;/span&gt;osvi&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;osvi&lt;span class="p"&gt;.&lt;/span&gt;dwOSVersionInfoSize&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;SizeOf&lt;span class="o"&gt;(&lt;/span&gt;osvi&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;Win32Check&lt;span class="o"&gt;(&lt;/span&gt;GetVersionEx&lt;span class="o"&gt;(&lt;/span&gt;osvi&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;No we call GetProductInfo:&lt;/p&gt;
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;&lt;span class="codelang"&gt;objectpascal&lt;/span&gt;&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download=".pas" href="data:text/plain;charset=utf-8;base64,dmFyCiAgZHdQcm9kVHlwZTogRFdPUkQ7CmJlZ2luCiAgV2luMzJDaGVjayhHZXRQcm9kdWN0SW5mbyhvc3ZpLmR3TWFqb3JWZXJzaW9uLCBvc3ZpLmR3TWlub3JWZXJzaW9uLAogICAgb3N2aS53U2VydmljZVBhY2tNYWpvciwgb3N2aS53U2VydmljZVBhY2tNaW5vciwgZHdQcm9kVHlwZSkpOw=="&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-objectpascal" data-lang="objectpascal"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;var&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;dwProdType&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;DWORD&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;begin&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;Win32Check&lt;span class="o"&gt;(&lt;/span&gt;GetProductInfo&lt;span class="o"&gt;(&lt;/span&gt;osvi&lt;span class="p"&gt;.&lt;/span&gt;dwMajorVersion&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;osvi&lt;span class="p"&gt;.&lt;/span&gt;dwMinorVersion&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;osvi&lt;span class="p"&gt;.&lt;/span&gt;wServicePackMajor&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;osvi&lt;span class="p"&gt;.&lt;/span&gt;wServicePackMinor&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;dwProdType&lt;span class="o"&gt;))&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>SasLibEx Screencast</title><link>https://remkoweijnen.nl/blog/2011/01/19/saslibex-screencast/</link><pubDate>Wed, 19 Jan 2011 22:36:44 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/01/19/saslibex-screencast/</guid><description>&lt;p&gt;I just recorded a SasLibEx Screencast, it shows some of the very powerfull features of SasLibEx.&lt;/p&gt;
&lt;p&gt;The following features are shown:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Simulate Ctrl Alt Del (Secure Attention Sequence)&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Cancel Ctrl Alt Del&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Lock Workstation&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Unlock Workstation (without credentials)&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Disable Ctrl Alt Del&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Enable Ctrl Alt Del again&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Cancel pending UAC request&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;&lt;span style="color: #35383d;"&gt;Is Desktop Locked&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:8c371d04-5435-4a86-a54a-5611345258b5" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;"&gt;
&lt;div&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="448" height="252" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="src" value="http://www.youtube.com/v/Nyl4_ECe5xI?hl=en&amp;amp;hd=1" /&gt;&lt;embed type="application/x-shockwave-flash" width="448" height="252" src="http://www.youtube.com/v/Nyl4_ECe5xI?hl=en&amp;amp;hd=1"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div style="width: 448px; clear: both; font-size: 0.8em;"&gt;SasLibEx Feature Demo #1&lt;/div&gt;
&lt;/div&gt;
&lt;section class="comments"&gt;
&lt;h2&gt;1 Comments&lt;/h2&gt;
&lt;ol class="comment-list"&gt;
&lt;li class="comment depth-0"&gt;&lt;div class="comment-meta"&gt;&lt;span class="comment-author"&gt;&lt;a href="http://topsy.com/www.remkoweijnen.nl/blog/2011/01/19/saslibex-screencast/?utm_source=pingback&amp;amp;amp;utm_campaign=L2" rel="nofollow ugc"&gt;Tweets die vermelden SasLibEx Screencast | Remko Weijnen&amp;#x27;s Blog (Remko&amp;#x27;s Blog) -- Topsy.com&lt;/a&gt;&lt;/span&gt; &lt;time datetime="2011-01-20"&gt;Jan 20, 2011&lt;/time&gt;&lt;/div&gt;&lt;div class="comment-body"&gt;&lt;p&gt;[...] Dit blogartikel was vermeld op Twitter door Remko Weijnen, Remko Weijnen. Remko Weijnen heeft gezegd: First #SasLibEx ScreenCast! showing simulate ctrl alt del, unlock workstation without credentials, disable cad and more http://bit.ly/fFM8wB [...]&lt;/p&gt;</description></item><item><title>Paging file and Memory Dump</title><link>https://remkoweijnen.nl/blog/2011/01/07/paging-file-and-memory-dump/</link><pubDate>Fri, 07 Jan 2011 13:45:55 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/01/07/paging-file-and-memory-dump/</guid><description>&lt;p&gt;I often hear that people configure the Paging File (on Citrix or Terminal Servers) on a seperate volume but, the reasons is either performance or the chance that the Paging File might corrupt the volume.&lt;/p&gt;
&lt;p&gt;However if at some point you would like to create a Memory Dump you must have a paging file on the boot volume.&lt;/p&gt;</description></item><item><title>Default User Profile: Remko’s solution</title><link>https://remkoweijnen.nl/blog/2011/01/04/default-user-profile-remkos-solution/</link><pubDate>Tue, 04 Jan 2011 15:46:18 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/01/04/default-user-profile-remkos-solution/</guid><description>&lt;p&gt;If you are implementing a Citrix, Terminal Server or even just a plain Client-Server environment you will need to create a Default User Profile at some point.&lt;/p&gt;
&lt;p&gt;The Default User Profile can be thought of as the initial registry settings that are used when a new profile is created.&lt;/p&gt;
&lt;p&gt;Many people think that the Default User Profile is available in regedit via HKEY_USERS.Default but this is NOT the Default User Profile.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/01/usersdefault.webp" class="glightbox" data-type="image" data-gallery="post-1066"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/01/usersdefault-small.webp" alt="UsersDefault" width="430" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Modify Internet Explorer 8 MUI Pack to install a single language</title><link>https://remkoweijnen.nl/blog/2011/01/03/modify-internet-explorer-8-mui-pack-to-install-a-single-language/</link><pubDate>Mon, 03 Jan 2011 12:10:22 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/01/03/modify-internet-explorer-8-mui-pack-to-install-a-single-language/</guid><description>&lt;p&gt;Today I wanted to install the Dutch Language pack for Internet Explorer 8, the Dutch language comes as part of the &lt;a title="Windows Internet Explorer 8 MUI Pack for Windows Server 2003 SP2" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=242bf57a-9dab-4ea9-ba46-33c0e32020a4&amp;amp;displaylang=en" target="_blank"&gt;Windows Internet Explorer 8 MUI Pack&lt;/a&gt; (in my case the version for Windows Server 2003 SP2).&lt;/p&gt;
&lt;p&gt;If you install the MUI Pack you will always end up with all 35 (!) languages installed. This behaviour is the same as the language pack for Internet Explorer 7 that I wrote about earlier (see &lt;a title="Modifying Microsoft Updates and/or hotfixes" href="https://remkoweijnen.nl/blog/2009/05/12/modifying-microsoft-updates-andor-hotfixes" target="_blank"&gt;Modifying Microsoft Updates and/or hotfixes&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The solution is really the same as for the IE7 language pack: you modify the inf file (in my case update_srv03.inf) but if you run update.exe it will refuse to use your modified inf file:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/01/ie8muierror.webp" class="glightbox" data-type="image" data-gallery="post-1055"&gt;&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/01/ie8muierror-small1.webp" alt="ie8muierror" width="430" height="76" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So we need to patch update.exe to accept your modified version!&lt;/p&gt;</description></item><item><title>Default Explorer View</title><link>https://remkoweijnen.nl/blog/2010/12/19/default-explorer-view/</link><pubDate>Sun, 19 Dec 2010 14:40:40 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2010/12/19/default-explorer-view/</guid><description>&lt;p&gt;As you probably know there are several different Folder Views in Windows Explorer:&lt;/p&gt;
&lt;img loading="lazy" decoding="async" src="https://remkoweijnen.nl/blog/wp-content/uploads/2010/12/explorerview.webp" alt="ExplorerView" width="183" height="276" /&gt;
&lt;p&gt;The Explorer keeps tracks of the last used View per Folder in the registry in the key HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags. This &lt;a title="Changes to the size, view, icon or position of a folder are lost" href="http://support.microsoft.com/kb/813711" target="_blank"&gt;KB article&lt;/a&gt; sort of desribes this functionality.&lt;/p&gt;</description></item></channel></rss>