<?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>DeveloperS</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/sansom/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/sansom/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:41:51 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Sample tool for testing Secure FTP Server</title>
      <link>https://docs.microsoft.com/archive/blogs/sansom/sample-tool-for-testing-secure-ftp-server</link>
      <pubDate>Sat, 24 Oct 2009 01:35:00 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sansom/2009/10/24/sample-tool-for-testing-secure-ftp-server/</guid>
      <description><![CDATA[Here is a sample tool for testing Secure FTP server that I have writtent to test the IIS7 Secure...]]></description>
      <content:encoded><![CDATA[<P>Here is a sample tool for testing Secure FTP server that I have writtent to test the IIS7 Secure FTP. This tool can connect to the FTP server using SSL and lists the directory contents current working directory.</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_8.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_8.png" mce_href="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_8.png"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_3.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_3.png" width=658 height=268 mce_src="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_3.png"></A> </P>
<P>Here is how you can use the tool.</P>
<P>1) Either you can pass the remote host as command line argument or run the executable and use </P>
<P>open &lt;remote host&gt; as below</P>
<P>ftps&gt; <BR>Usage: <BR>open hostname <BR>eg: open localhost <BR>eg: open <A href="ftp://ftp.foo.com/" mce_href="ftp://ftp.foo.com">ftp.foo.com</A> <BR></P>
<P>If you capture a network trace you will observe the traffic as below. This shows the Control connection on port 21 and then the data connection happening on port 5110 as we configure Passive FTP Port range. in IIS7.</P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_10.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_10.png" mce_href="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_10.png"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_4.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_4.png" width=580 height=153 mce_src="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_4.png"></A> </P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_4.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_4.png" mce_href="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_4.png"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_1.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_1.png" width=699 height=132 mce_src="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_1.png"></A> </P>
<P><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_6.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_6.png" mce_href="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_6.png"><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_2.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_2.png" width=707 height=197 mce_src="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/SampletoolfortestingSecureFTPServer_D0C1/image_thumb_2.png"></A></P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/91/24/16/FTPS.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-91-24-16/FTPS.zip">FTPS.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Kerberos SPN Viewer and Helper Tool Sample</title>
      <link>https://docs.microsoft.com/archive/blogs/sansom/kerberos-spn-viewer-and-helper-tool-sample</link>
      <pubDate>Mon, 12 Oct 2009 15:54:00 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sansom/2009/10/12/kerberos-spn-viewer-and-helper-tool-sample/</guid>
      <description><![CDATA[Kerberos SPN Viewer and Helper Tool   Here is the sample tool I have written to simplify listing the...]]></description>
      <content:encoded><![CDATA[<p style="margin-left: 27pt"><span style="font-family: trebuchet ms; color: black"><strong>Kerberos SPN Viewer and Helper Tool </strong></span></p>  <p style="margin-left: 27pt"><span style="font-family: trebuchet ms; color: black">Here is the sample tool I have written to simplify listing the ServicePrincipalName (SPN) and an integrated helper tool which can help us find out what SPN should we set based on the configuration that we are using.</span> <span style="font-family: trebuchet ms; color: black"></span></p>  <p style="margin-left: 27pt">&#160; <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_2.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_thumb.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_thumb.png" width="204" height="244" /></a> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_4.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_thumb_1.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_thumb_1.png" width="207" height="244" /></a> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_6.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_thumb_2.png" original-url="https://blogs.msdn.com/blogfiles/sansom/WindowsLiveWriter/KerberosSPNViewerandHelperToolSample_1229B/image_thumb_2.png" width="204" height="244" /></a> </p>  <p style="margin-left: 27pt" mce_keep="true">&#160;</p>  <p style="margin-left: 27pt"><span style="font-family: trebuchet ms; color: black">The Viewer part of the tool is meant to display the SPNs registered for a given criteria. Viewer Tab as you can see below expects the following as Input for displaying the results. </span></p>  <ol style="margin-left: 81pt">   <li>     <div><span style="font-family: trebuchet ms; color: black">Account Info </span></div>      <ol>       <li><span style="font-family: trebuchet ms; color: black">You can either select a Computer Account or Domain Account or Both for which you like to view the SPNs for. </span></li>        <li><span style="font-family: trebuchet ms; color: black">If you select Computer Account, you specify the NETBIOS name of the machine. Example: IISPRODSVR. This will search for all the computers accounts registered in the forest. </span></li>        <li><span style="font-family: trebuchet ms; color: black">If you select the Domain Account you can specify simply the UserName. Example JohnDoe. You don't have to specify the domain name. This will search for all the user accounts in the forest. </span></li>        <li><span style="font-family: trebuchet ms; color: black">If you select Both, this will search for both the Computer &amp; User accounts. </span></li>        <li><span style="font-family: trebuchet ms; color: black">Using a &quot;*&quot; for a wildcard search. But using a wild card search might take a long time. You do not really need to look at all the SPNs in the entire forest anyway. </span></li>     </ol>   </li>    <li>     <div><span style="font-family: trebuchet ms; color: black">Search By SPN Type </span></div>      <ol>       <li><span style="font-family: trebuchet ms; color: black">This has a list of predefined Service Classes that you can select from. Either you can select one of them or select &quot;*&quot; which will look for all the SPN classes registered with the given criteria. This is the first part of the SPN <strong>HTTP</strong>/IISPRODSRV.myDomain.com </span></li>        <li><span style="font-family: trebuchet ms; color: black">Hostname is the second part of the SPN HTTP/<strong>IISPRODSRV.myDomain.com. </strong>Either you can enter the &quot;*&quot; or the Hostname if you have this info. </span></li>     </ol>   </li>    <li>     <div><span style="font-family: trebuchet ms; color: black">SPN List </span></div>      <ol>       <li><span style="font-family: trebuchet ms; color: black">This pane will show you the list in a treeview. Right clicking the treeview will expand the tree. </span></li>     </ol>   </li>    <li>     <div><span style="font-family: trebuchet ms; color: black">Status </span></div>      <ol>       <li><span style="font-family: trebuchet ms; color: black">This will display status of the query or any other info which might be thrown by the application when you hit the Query Button at the bottom. </span></li>     </ol>   </li> </ol>  <blockquote>   <p><span style="font-family: trebuchet ms; color: black">The Helper part of this tool is meant for users to find the SPN that they require to set based on the application they are using. The UI is made simple and easy to understand and use. </span></p> </blockquote>  <ol style="margin-left: 81pt">   <li>     <div><span style="font-family: trebuchet ms; color: black">Technology </span></div>      <ol>       <li><span style="font-family: trebuchet ms; color: black">You can choose IIS or SQL based in this based on whether you are attempting to find the required SPNs for IIS or SQL </span></li>        <li><span style="font-family: trebuchet ms"><span style="color: black">IIS will use the default port as 80 and if you are configuring a different port you may wants have a look at the knowledge base article KB929650 <a href="https://support.microsoft.com/kb/929650"></a>https://support.microsoft.com/kb/929650<span style="color: black"> or </span><a href="https://support.microsoft.com/kb/908209/"></a>908209<span style="color: black"> (</span><a href="https://support.microsoft.com/kb/908209/">https://support.microsoft.com/kb/908209/</a> ) Internet Explorer 6 cannot use the Kerberos authentication protocol to connect to a Web server that uses a non-standard port on Windows XP or Windows Server 2003 </span></span></li>        <li><span style="font-family: trebuchet ms; color: black">If you are choosing the SQL option, you will notice the port textbox gets enabled to allow you specify the port SQL is running under. </span></li>     </ol>   </li>    <li>     <div><span style="font-family: trebuchet ms; color: black">Details </span></div>      <ol>       <li><span style="font-family: trebuchet ms; color: black">The CheckBox at the top is for specifying the service that you want to set/find spn for is Clustered or Not </span></li>        <li><span style="font-family: trebuchet ms; color: black">If you are using a domain account as the service identity you specify that in the Account Name textbox. If you are using Machine Account like Network Service or Local System, you can choose Machine Account. You do not have to specify any name in this case. </span></li>        <li><span style="font-family: trebuchet ms; color: black">Machine Name text can be used to specify the Netbios name of the machine the service is running on. If the Service is clustered, then you can specify the Clustername in this. </span></li>        <li>         <div><span style="font-family: trebuchet ms; color: black">If you are using a host header instead of cluster name to access the service, you will need take care of couple of additional things here </span></div>          <ol>           <li><span style="font-family: trebuchet ms; color: black">If the host header you are using is created as an CNAME in DNS, then you will require the SPN for the FQDN of what the ALIAS is mapped to. </span></li>            <li><span style="font-family: trebuchet ms; color: black">If the host header is created as a HOST RECORD in DNS, you will require SPN for the FQDN of the HOST header. </span></li>         </ol>       </li>        <li><span style="font-family: trebuchet ms; color: black">The machine name or cluster name that you specify should be able to resolve through DNS. Make sure you are able to resolve the machine name properly.</span></li>     </ol>   </li> </ol>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/90/63/84/SPNViewer.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-09-90-63-84/SPNViewer.zip">SPNViewer.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Sample VBS script for sending and recieving messages from MSMQ</title>
      <link>https://docs.microsoft.com/archive/blogs/sansom/sample-vbs-script-for-sending-and-recieving-messages-from-msmq</link>
      <pubDate>Mon, 17 Aug 2009 04:07:00 GMT</pubDate>
      <dc:creator><![CDATA[SanthoshOnline]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/sansom/2009/08/17/sample-vbs-script-for-sending-and-recieving-messages-from-msmq/</guid>
      <description><![CDATA[Option Explicit 
Const MQ_RECEIVE_ACCESS = 1 Const MQ_SEND_ACCESS = 2 Const MQ_DENY_NONE = 0...]]></description>
      <content:encoded><![CDATA[<DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Option Explicit </DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Const MQ_RECEIVE_ACCESS = 1 <BR>Const MQ_SEND_ACCESS = 2 <BR>Const MQ_DENY_NONE = 0 <BR>Const MQ_PEEK_ACCESS = 32 </DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Dim Transaction</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Dim FormatName<BR>FormatName = WScript.Arguments.Named("f")<BR>If FormatName = "" Then<BR>Help()<BR>Wscript.Quit<BR>End If</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Dim MSMQQueueInfo <BR>Set MSMQQueueInfo = CreateObject("MSMQ.MSMQQueueInfo")<BR>MSMQQueueInfo.FormatName = FormatName </DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>If MSMQQueueInfo.IsTransactional2 Then<BR>Transaction = 3 'MQ_SINGLE_MESSAGE<BR>Else<BR>Transaction = 0 'MQ_NO_TRANSACTION<BR>End If</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Dim MSMQQueue<BR>Set MSMQQueue = CreateObject("MSMQ.MSMQQueue")</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Dim MSMQMessage<BR>Set MSMQMessage = CreateObject("MSMQ.MSMQMessage")</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Select Case WScript.Arguments(0)<BR>&nbsp;Case "/send"<BR>&nbsp;&nbsp;Set MSMQQueue = MSMQQueueInfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE)<BR>&nbsp;&nbsp;MSMQMessage.Body = "Testing Message Queue"<BR>&nbsp;&nbsp;MSMQMessage.Label = "SampleApp"<BR>&nbsp;&nbsp;MSMQMessage.Send MSMQQueue, Transaction <BR>&nbsp;&nbsp;WScript.Echo "Message Sent"<BR>&nbsp;Case "/peek"<BR>&nbsp;&nbsp;Set MSMQQueue = MSMQQueueInfo.Open(MQ_PEEK_ACCESS, MQ_DENY_NONE)<BR>&nbsp;&nbsp;WScript.Echo "If queue is empty, the command will wait until a message comes into queue"<BR>&nbsp;&nbsp;WScript.Echo "Receiving Message....."<BR>&nbsp;&nbsp;Set MSMQMessage = MSMQQueue.Peek <BR>&nbsp;&nbsp;WScript.Echo "Label: " &amp; CStr (MSMQMessage.Label) <BR>&nbsp;&nbsp;WScript.Echo "Body: " &amp; CStr (MSMQMessage.Body) <BR>&nbsp;&nbsp;WScript.Echo "Received Message"</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>&nbsp;Case "/receive"<BR>&nbsp;&nbsp;Set MSMQQueue = MSMQQueueInfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)<BR>&nbsp;&nbsp;WScript.Echo "If queue is empty, the command will wait until a message comes into queue"<BR>&nbsp;&nbsp;WScript.Echo "Receiving Message....."<BR>&nbsp;&nbsp;Set MSMQMessage = MSMQQueue.Receive <BR>&nbsp;&nbsp;WScript.Echo "Label: " &amp; CStr (MSMQMessage.Label) <BR>&nbsp;&nbsp;WScript.Echo "Body: " &amp; CStr (MSMQMessage.Body) <BR>&nbsp;&nbsp;WScript.Echo "Received Message"</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>&nbsp;Case else<BR>&nbsp;&nbsp;Wscript.Echo "Usage:"<BR>&nbsp;&nbsp;Wscript.Echo "msmq.vbs /send"<BR>&nbsp;&nbsp;Wscript.Echo "msmq.vbs /peek"<BR>&nbsp;&nbsp;Wscript.Echo "msmq.vbs /receive"<BR>End Select</DIV>
<DIV class=ExternalClass83BA9BFFFF93416C8A2597E4FC3F1603>Function Help()<BR>&nbsp;&nbsp;Wscript.Echo "Usage:"<BR>&nbsp;&nbsp;Wscript.Echo "msmq.vbs /send /f:DIRECT=OS:machine\private$\test"<BR>&nbsp;&nbsp;Wscript.Echo "msmq.vbs /peek /f:DIRECT=OS:machine\private$\test"<BR>&nbsp;&nbsp;Wscript.Echo "msmq.vbs /receive /f:DIRECT=OS:machine\private$\test"<BR>End Function<BR></DIV></DIV>]]></content:encoded>
    </item>
  </channel>
</rss>