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

<channel>
	<title>Scripte-Blog</title>
	<atom:link href="http://scripte.hans-online.de/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://scripte.hans-online.de</link>
	<description>Scripte und Infos für Active Directory, Exchange und Windows</description>
	<lastBuildDate>Mon, 19 Jul 2010 07:39:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Active Directory Daten mittels T-SQL auslesen</title>
		<link>http://scripte.hans-online.de/?p=215</link>
		<comments>http://scripte.hans-online.de/?p=215#comments</comments>
		<pubDate>Mon, 19 Jul 2010 07:38:19 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Active Directory]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=215</guid>
		<description><![CDATA[Einen Linked Server hinzufügen: EXEC sp_addlinkedserver &#8216;ADSI&#8217;, &#8216;Active Directory Services 2.5&#8242;, &#8216;ADSDSOObject&#8217;, &#8216;adsdatasource&#8217; Das SQL Statement sieht dann so aus: SELECT [Name], SN [Last Name], ST State FROM OPENQUERY( ADSI, &#8216;SELECT Name, SN, ST FROM &#8221;LDAP://Domaincontroller/DC=YourDomain,DC=local&#8221; WHERE objectCategory = &#8221;Person&#8221; AND objectClass = &#8221;user&#8221;&#8217;)]]></description>
			<content:encoded><![CDATA[<p>Einen Linked Server hinzufügen: EXEC sp_addlinkedserver &#8216;ADSI&#8217;, &#8216;Active Directory Services 2.5&#8242;, &#8216;ADSDSOObject&#8217;, &#8216;adsdatasource&#8217;</p>
<p>Das SQL Statement sieht dann so aus:</p>
<p>SELECT [Name], SN [Last Name], ST State<br />
FROM OPENQUERY( ADSI,</p>
<p>&#8216;SELECT Name, SN, ST FROM &#8221;LDAP://Domaincontroller/DC=YourDomain,DC=local&#8221;</p>
<p>WHERE objectCategory = &#8221;Person&#8221; AND objectClass = &#8221;user&#8221;&#8217;)</p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=215</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Server 2008 R2 / sidHistory Filterung und quarantaine</title>
		<link>http://scripte.hans-online.de/?p=216</link>
		<comments>http://scripte.hans-online.de/?p=216#comments</comments>
		<pubDate>Fri, 25 Jun 2010 12:32:00 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=216</guid>
		<description><![CDATA[Nachdem ich nun Stunden damit verbracht habe, die sidHistory Filterung auszuschalten obwohl sie &#8220;angeblich&#8221; aus ist, bin ich nun auf die Lösung gestoßen: bei den Parametern /enableSIDHistory und /quarantine gibt man üblicherweise NO an (weil ja alles in Englisch ist). Wenn es aber ein deutsches Betriebssystem ist, dann muss man hier aber NEIN angeben, dann klappt&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich nun Stunden damit verbracht habe, die sidHistory Filterung auszuschalten obwohl sie &#8220;angeblich&#8221; aus ist, bin ich nun auf die Lösung gestoßen:</p>
<p>bei den Parametern /enableSIDHistory und /quarantine gibt man üblicherweise NO an (weil ja alles in Englisch ist). Wenn es aber ein deutsches Betriebssystem ist, dann muss man hier aber NEIN angeben, dann klappt&#8217;s sofort.</p>
<p>Da kommt doch kein Mensch drauf&#8230;.. <img src='http://scripte.hans-online.de/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=216</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010 Relay für Anonyme Sender/Empfänger einrichten</title>
		<link>http://scripte.hans-online.de/?p=206</link>
		<comments>http://scripte.hans-online.de/?p=206#comments</comments>
		<pubDate>Wed, 05 May 2010 08:06:18 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=206</guid>
		<description><![CDATA[Damit der durch die GUI angelegte Receive Connector auch wirklich nach extern relay macht, muss ein Recht &#8220;Accept any recipient&#8221; am Connector hinzugefügt werden. Das geht nicht mittels GUI, sondern entweder mit ADSIEdit.msc (u.a. siehe hier: &#8220;Exchange 2007 Receive Connector Authentication&#8220; ) oder  mit dem Powershellbefehl: Get-ReceiveConnector &#8220;Anonymous Relay&#8221; &#124; Add-ADPermission -User &#8220;NT AUTHORITY\ANONYMOUS LOGON&#8221; -ExtendedRights [...]]]></description>
			<content:encoded><![CDATA[<p>Damit der durch die GUI angelegte Receive Connector auch wirklich nach extern relay macht, muss ein Recht &#8220;Accept any recipient&#8221; am Connector hinzugefügt werden. Das geht nicht mittels GUI, sondern entweder mit ADSIEdit.msc (u.a. siehe hier: &#8220;<a title="Exchange 2007 Rceive Connector Authentication" href="http://scripte.hans-online.de/?p=107" target="_blank">Exchange 2007 Receive Connector Authentication</a>&#8220; ) oder  mit dem Powershellbefehl:</p>
<p>Get-ReceiveConnector &#8220;Anonymous Relay&#8221; | Add-ADPermission -User &#8220;NT AUTHORITY\ANONYMOUS LOGON&#8221; -ExtendedRights &#8220;Ms-Exch-SMTP-Accept-Any-Recipient&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=206</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010 mit Outlook 2003 Ordneransicht wird nicht aktualisiert</title>
		<link>http://scripte.hans-online.de/?p=204</link>
		<comments>http://scripte.hans-online.de/?p=204#comments</comments>
		<pubDate>Tue, 04 May 2010 09:02:02 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Exchange]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=204</guid>
		<description><![CDATA[Die UDP Registrierung zwischen Exchange 2010 und Outlook 2003 wird nicht mehr unterstützt, so dass der Client auf sein Polling Verfahren zurück fällt. Das kann bis zu 1 Minute dauern. So lange wird die Ansicht in Outlook nicht aktualisiert. Lösunge 1.) Outlook im Cached Mode verwenden, Lösung 2.) Die Pollzeit etwas heruntersetzen (Artikel von MS: [...]]]></description>
			<content:encoded><![CDATA[<p>Die UDP Registrierung zwischen Exchange 2010 und Outlook 2003 wird nicht mehr unterstützt, so dass der Client auf sein Polling Verfahren zurück fällt. Das kann bis zu 1 Minute dauern. So lange wird die Ansicht in Outlook nicht aktualisiert.<br />
Lösunge 1.) Outlook im Cached Mode verwenden, Lösung 2.) Die Pollzeit etwas heruntersetzen (Artikel von MS: <a href="http://support.microsoft.com/kb/2009942/en-us">http://support.microsoft.com/kb/2009942/en-us</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=204</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010 mit Outlook vor Version 2007 / RPC Verschlüsselung</title>
		<link>http://scripte.hans-online.de/?p=200</link>
		<comments>http://scripte.hans-online.de/?p=200#comments</comments>
		<pubDate>Wed, 28 Apr 2010 06:34:52 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Exchange]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=200</guid>
		<description><![CDATA[Bei der Migration nach Exchange 2010 kann es bei älteren Outlook Clients zu Verbindungsproblemen kommen. Das liegt dann u.U. daran, dass die Verbindung über RPC vom CAS Server verschlüsselt angefordert wird, das per Default nicht aktiviert ist. Es gibt mehrere Lösungsansätze, der schnellste Weg ist einfach die Verschlüsselungsanforderung auf allen CAS Serven zu deaktivieren. Set-RpcClientAccess [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Migration nach Exchange 2010 kann es bei älteren Outlook Clients zu Verbindungsproblemen kommen. Das liegt dann u.U. daran, dass die Verbindung über RPC vom CAS Server verschlüsselt angefordert wird, das per Default nicht aktiviert ist.<br />
Es gibt mehrere Lösungsansätze, der schnellste Weg ist einfach die Verschlüsselungsanforderung auf allen CAS Serven zu deaktivieren.</p>
<p>Set-RpcClientAccess –Server –EncryptionRequired $False</p>
<p>Weitere Infos hier: <a href="http://support.microsoft.com/kb/2006508/en-us">http://support.microsoft.com/kb/2006508/en-us</a></p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=200</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2007 Transport Agent (RoutingAgent) VB.NET selbst gemacht</title>
		<link>http://scripte.hans-online.de/?p=172</link>
		<comments>http://scripte.hans-online.de/?p=172#comments</comments>
		<pubDate>Thu, 21 Jan 2010 12:25:37 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Exchange]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=172</guid>
		<description><![CDATA[Seit Exchange 2007 gibt es die Möglichkeit, auf dem Hub-Transportserver Regeln einzurichten. (Ähnlich wie in Outlook) Leider hat Microsoft die maximale Größe für den Regelspeicher auf 8k beschränkt. Viele Regeln passen da nicht rein, insbesondere wenn die Regeln viel Inhalt (Mailadressen oder Wörter) enthalten. Als Lösung/Workaround wird deshalb ein Transport Agent vorgeschlagen. Hier eine Lösung [...]]]></description>
			<content:encoded><![CDATA[<p>Seit Exchange 2007 gibt es die Möglichkeit, auf dem Hub-Transportserver Regeln einzurichten. (Ähnlich wie in Outlook)</p>
<p>Leider hat Microsoft die maximale Größe für den Regelspeicher auf 8k beschränkt. Viele Regeln passen da nicht rein, insbesondere wenn die Regeln viel Inhalt (Mailadressen oder Wörter) enthalten.</p>
<p>Als Lösung/Workaround wird deshalb ein Transport Agent vorgeschlagen.</p>
<p>Hier eine Lösung für einen RoutingAgent, der Mailverteiler nur im BCC Feld zulässt. Sollte ein Mailverteiler in To oder CC verwendet werden, wird die Nachricht zurückgeschickt. Die Gruppen werden anhand des Active Directory Attributes &#8220;msExchRequireAuthToSendTo&#8221; gefiltert, welches auf TRUE stehen muss. <span id="more-172"></span></p>
<p>Beispiel (Class Library):<br />
Bitte die folgenden Dateien zum Projekt hinzufügen (C:\Program Files\Microsoft\Exchange Server\Public) und dann darauf referenzieren:<br />
- Microsoft.Exchange.Data.Common.dll<br />
- Microsoft.Exchange.Data.Common.xml<br />
- Microsoft.Exchange.Data.Transport.dll<br />
- Microsoft.Exchange.Data.Transport.xml</p>
<blockquote>
<pre> 
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Diagnostics
Imports Microsoft.Exchange.Data.Transport
Imports Microsoft.Exchange.Data.Transport.Email
Imports Microsoft.Exchange.Data.Transport.Smtp
Imports Microsoft.Exchange.Data.Transport.Routing
Imports Microsoft.Exchange.Data.Common
Imports Microsoft.Exchange.Data.Mime
Imports Microsoft.Exchange.Data.ContentTypes.Tnef
Imports System.DirectoryServices</pre>
<pre>Namespace DYNASYSAgents</pre>
<pre>NotInheritable Class DYNASYSBCCRAFactory
          Inherits RoutingAgentFactory
          Public Overrides Function CreateAgent(ByVal server As SmtpServer) As RoutingAgent
                         Return New MyDYNASYSBCCRoutingAgent
          End Function
End Class</pre>
<pre>Public Class MyDYNASYSBCCRoutingAgent
          Inherits RoutingAgent</pre>
<pre>          Private Sub MySubmittedMessage(ByVal source As SubmittedMessageEventSource,_
                           ByVal e As QueuedMessageEventArgs) Handles Me.OnSubmittedMessage
                  Try
                  Dim cNachricht As String =_
                           "Bitte verwenden Sie die Mailverteiler nur im BCC: Feld." &amp; vbCrLf
                 <span style="color: #008000;"> </span><span style="color: #008000;">'*** TRUE: Nur monitoren und als Kopie ins Exchangepostfach,'*** False: Prozess ist enabled und die 
                           Mails werden aktiv geblockt!!!</span></pre>
<pre>                  Dim lMonitorOnly As Boolean = True
                  Dim xSMTPs As New ArrayList
                  Dim cExchangeMeldungenSMTP As String ="@DYNASYS.de" '*** immer eine Kopie an das Teampostfach
                  <span style="color: #008000;">'*** eine Mailadresse einer Gruppe (immer nur 1 Eintrag)</span>
                  Dim xGroupSMTP As String Dim lFound As Boolean = False</pre>
<pre>                  Dim xToRecipient As Microsoft.Exchange.Data.Transport.Email.EmailRecipientCollection
                  Dim xCCRecipient As Microsoft.Exchange.Data.Transport.Email.EmailRecipientCollection
                  Dim xRecipient As Microsoft.Exchange.Data.Transport.Email.EmailRecipient
                  Dim normalRejectResponse As New Microsoft.Exchange.Data.Transport.Smtp.SmtpResponse
                           ("500", "", "your message has been rejected")
                  Dim cMyBody As Email.Body</pre>
<pre>                  <span style="color: #008000;">'***
                  '*** ist der Sender aus der DYNASYS? Dann die To und CC Empfänger prüfen
                  '***</span>
                  If e.MailItem.Message.Sender.SmtpAddress.ToUpper.IndexOf("@DYNASYS.DE") &gt; 0 Or
                                    e.MailItem.Message.Sender.SmtpAddress.ToUpper.IndexOf("@DYNASYS.AT") &gt; 0 Or
                                    e.MailItem.Message.Sender.SmtpAddress.ToUpper.IndexOf("DYNASYS-GROUP.COM")
                  &gt; 0 Then</pre>
<pre>                           xSMTPs = GetSMTPAddresses() <span style="color: #008000;">'*** Hole alle Mailadressen für die Blacklist</span></pre>
<pre>                           <span style="color: #008000;">'***
                           '*** Hole alle Mailempfänger aus To und CC
                           '***</span>
                           xToRecipient = e.MailItem.Message.To
                           xCCRecipient = e.MailItem.Message.Cc</pre>
<pre>                           lFound = False <span style="color: #008000;">'*** Flag für Überprüfung</span></pre>
<pre>                           <span style="color: #008000;">'***
                           '*** Alle im To Feld
                           '***</span>
                           For Each xRecipient In xToRecipient <span style="color: #008000;">'** Alle TO:</span>
                                    For Each xGroupSMTP In xSMTPs
                                             If xRecipient.SmtpAddress.ToUpper = xGroupSMTP.ToUpper Then
                                                      lFound = True
                                                      <span style="color: #008000;">'*** ein Treffer ist ausreichend um die Mail zu blockieren</span>
                                                      Exit For
                                             End If
                                    Next
                           Next
                           <span style="color: #008000;">'***
                           '*** Alle im CC Feld.
                           '*** Ist aber nur nötig, wenn im To Feld noch nichts gefunden wurde.
                           '*** ansonsten würde die Mail ja eh schon blockiert werden
                           '***</span>
                           If Not lFound Then
                                    For Each xRecipient In xCCRecipient '*** Alle CC:
                                             For Each xGroupSMTP In xSMTPs
                                                      If xRecipient.SmtpAddress.ToUpper = xGroupSMTP.ToUpper Then
                                                               lFound = True
                                                               <span style="color: #008000;">'*** ein Treffer ist ausreichend um die Mail zu blockieren</span>
                                                               Exit For
                                                      End If
                                             Next
                                    Next
                           End If</pre>
<pre>                           If lFound Then
                                    <span style="color: #008000;">'*** Diese Mail darf nicht gesendet werden, weil in To oder CC eine Gruppe verwendet wird....</span>
                                    If Not lMonitorOnly Then
                                             <span style="color: #008000;">'*** Achtung: geht nur, wenn der Monitorbetrieb ausgeschalten ist lMonitorOnly=FALSE
                                             '*** Alle Empfänger entfernen</span></pre>
<pre>                                             e.MailItem.Recipients.Clear()
                                             <span style="color: #008000;">'*** Sender als Empfänger einsetzen</span>
                                             e.MailItem.Recipients.Add(e.MailItem.Message.Sender.SmtpAddress)
                                             <span style="color: #008000;">'*** Betreff ergänzen um Hinweistext</span>
                                             e.MailItem.Message.Subject = "[Exchange Server: Ihre Nachricht wurdenicht zugestellt!]:"_
                                                      &amp; e.MailItem.Message.Subject
                                             <span style="color: #008000;">'*** Priorität auf Hoch stellen - hat jedoch bisher keinen Effekt bei der Mail gehabt</span>
                                             e.MailItem.DeliveryPriority = DeliveryPriority.High
                                            <span style="color: #008000;"> '* DSN (Deliver Status Notification auf Full setzen</span>
                                             e.MailItem.DsnFormatRequested = DsnFormatRequested.Full
                                             <span style="color: #008000;">'*** Der Exchangeserver ist nun der Absender</span>
                                             e.MailItem.Message.Sender.DisplayName = "Microsoft Exchange"
                                             <span style="color: #008000;">'*** und die Mailadresse des Postmasters einsertzen</span>
                                             e.MailItem.Message.Sender.SmtpAddress = "postmaster@DYNASYS.de"
                                            <span style="color: #008000;"> '*** Hole den Body der Nachricht</span>
                                             cMyBody = e.MailItem.Message.Body
                                             <span style="color: #008000;">'*** lese den Body in "originalBody" ein</span>
                                             Dim originalBody As System.IO.Stream = cMyBody.GetContentReadStream()
                                             <span style="color: #008000;">'*** Setze einen Writer drauf, damit der Body erweitert werden kann</span>
                                             Dim newBody As System.IO.Stream = cMyBody.GetContentWriteStream()
                                             <span style="color: #008000;">'*** Prüfe/Hole die Codierung (Encoding) der Mail, die müssen wir beibehalten</span>
                                             Dim encoding As Text.Encoding = Text.Encoding.GetEncoding(cMyBody.CharsetName)</pre>
<pre>                                             <span style="color: #008000;">'*** Unterscheide das BodyFormat nach HTML, Text und RTF
</span>                                             Select Case e.MailItem.Message.Body.BodyFormat.ToString.ToUpper
                                             Case "HTML"
                                                      Dim conversion As New Microsoft.Exchange.Data._
                                                               TextConverters.HtmlToHtml
                                                     <span style="color: #008000;"> '*** Hei HTML andere convertierung verwenden</span>
                                                      conversion.InputEncoding = encoding
                                                      conversion.HeaderFooterFormat = Microsoft.Exchange.Data._
                                                                                                            TextConverters.HeaderFooterFormat.Html
                                                      conversion.Header = cNachricht</pre>
<pre>                                                     <span style="color: #008000;"> '*** Den Text wollen wir als Header einfügen (am Kopf der Nachricht)</span>
                                                      conversion.Convert(originalBody, newBody)<span style="color: #008000;"> '*** Schreibe den Text in die Originalnachricht</span> 

                                             Case "TEXT"
                                                      Dim conversion As New Microsoft.Exchange.Data._
                                                               TextConverters.TextToText
                                                      conversion.InputEncoding = encoding
                                                      conversion.HeaderFooterFormat = Microsoft.Exchange.Data._
                                                      TextConverters.HeaderFooterFormat.Text
                                                      conversion.Header = cNachricht
                                                      conversion.Convert(originalBody, newBody)
                                             Case "RTF"
                                                               Dim conversion As New Microsoft.Exchange.Data._
                                                                        TextConverters.RtfToRtf
                                                               conversion.Header = cNachricht
                                                               conversion.Convert(originalBody, newBody)
                                             End Select
                                             <span style="color: #008000;">'*** Text wurde geschrieben, also Hilfsobjekte schließen</span>
                                             newBody.Close()
                                             originalBody.Close()
                                    End If
                                    <span style="color: #008000;">'*** eine Kopie an das Éxchangemeldungen Postfach</span>
                                    e.MailItem.Recipients.Add(New RoutingAddress(cExchangeMeldungenSMTP))
                                   <span style="color: #008000;"> '*** Nun wird die Mail weiterverarbeitet/zugestellt</span>
                           End If
                  End If
         Catch ex As Exception
                  <span style="color: #008000;">'*** place your code here</span>
         End Try
End Sub</pre>
<pre>Private Function GetSMTPAddresses() As ArrayList
         Dim xSearchRoot As New DirectoryEntry
         Dim objSearcher As New DirectorySearcher<span style="color: #008000;"> '*** Such Object</span>
         Dim objSearchResultCollection As SearchResultCollection <span style="color: #008000;">'*** Ergebnis Sammlung</span>
         Dim objResult As SearchResult <span style="color: #008000;">'* Einzelergebnis</span>
         Dim xGroupSMTP As New ArrayList <span style="color: #008000;">'*** Eine Sammlung an SMTP Adressen</span>
         Dim cSMTP As String <span style="color: #008000;">'*** Eine SMTP Adresse</span>
         Dim aHelp As ResultPropertyValueCollection
         Dim xSMTP As String
         Try
                  objSearcher.SearchRoot = xSearchRoot
                  objSearcher.Filter = "(msExchRequireAuthToSendTo=TRUE)"
                  objSearcher.PropertiesToLoad.Add("name")
                  objSearcher.PropertiesToLoad.Add("cn")
                  objSearcher.PropertiesToLoad.Add("MailNickName")
                  objSearcher.PropertiesToLoad.Add("proxyaddresses")
                  objSearchResultCollection = objSearcher.FindAll()</pre>
<pre>                  For Each objResult In objSearchResultCollection
                           <span style="color: #008000;">'*** analysiere nun alle Mailadressen (SMTPs interessieren uns)</span>
                           aHelp = objResult.Properties("proxyaddresses")
                           <span style="color: #008000;">'*** Weil es mehr als eine Mailadresse pro Gruppe geben kann...</span>
                                    For Each xSMTP In aHelp
                                             xSMTP = xSMTP.ToUpper '*** GROSSBUCHSTABEN
                                            <span style="color: #008000;"> '*** Neben den SMTP Adressen gibt es auch X400 Adressen, die wollen wir aber nicht</span>
                                             If xSMTP.Substring(0, 5) = "SMTP:" Then
                                                      <span style="color: #008000;">'*** Entferne SMTP:, damit es eine ordentliche Mailadresse wird.</span>
                                                      cSMTP = xSMTP.Replace("SMTP:", "")
                                                      xGroupSMTP.Add(cSMTP)
                                             End If
                                    Next
                  Next</pre>
<pre>                  Catch ex As Exception
                           xGroupSMTP = Nothing
                  End Try</pre>
<pre>         Return xGroupSMTP
End Function
End Class
End Namespace</pre>
</blockquote>
<p>Installiert wird der Agent so:<br />
(Powershell)</p>
<blockquote>
<pre style="text-align: left;">Install-TransportAgent
         -Name "DYNASYSBCCSMTPAgent"
         -TransportAgentFactory DYNASYSBCCRuleAgent.DYNASYSAgents.DYNASYSBCCRAFactory
         -AssemblyPath "D:\Program Files\Microsoft\Exchange Server\TransportRoles\agents\Rule\DYNASYSBCCRuleAgent.dll"</pre>
<pre style="text-align: left;">Enable-TransportAgent -Identity "DYNASYSBCCSMTPAgent"</pre>
<pre style="text-align: left;">Restart-Service "Microsoft Exchange Transport"</pre>
</blockquote>
<p>Wichtig: Die Powershell muss danach geschlossen werden, damit die Installation abgeschlossen ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=172</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LAM v5.0 Works with Windows Server 2008 R2</title>
		<link>http://scripte.hans-online.de/?p=163</link>
		<comments>http://scripte.hans-online.de/?p=163#comments</comments>
		<pubDate>Thu, 10 Dec 2009 12:18:46 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=163</guid>
		<description><![CDATA[Der neue LAM v5.0 hat den Plattformtest für WwWS2008R2 (Works with Windows Server 2008 R2) bestanden.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a rel="attachment wp-att-165" href="http://scripte.hans-online.de/?attachment_id=165"></a>Der neue LAM v5.0 hat den Plattformtest für WwWS2008R2 (Works with Windows Server 2008 <span style="color: #ff0000;">R2</span>) bestanden.</p>
<p style="text-align: center;"><a rel="attachment wp-att-165" href="http://scripte.hans-online.de/?attachment_id=165"><img class="size-full wp-image-165   aligncenter" title="WorksWithwindowServer2008R2" src="http://scripte.hans-online.de/wp-content/uploads/2009/12/WorksWithwindowsr2.jpg" alt="WorksWithwindowServer2008R2" width="253" height="93" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=163</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2007 Message Tracking</title>
		<link>http://scripte.hans-online.de/?p=154</link>
		<comments>http://scripte.hans-online.de/?p=154#comments</comments>
		<pubDate>Thu, 10 Dec 2009 11:49:25 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Exchange]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=154</guid>
		<description><![CDATA[Mich nervt diese umständliche Eingabe an Informationen beim Message Tracking. Ich brauche eine Quick and Dirty Lösung, da zu 95% immer nach Sender, Empfänger und Betreff in einem Bestimmten Zeitraum gesucht wird. Die Angabe des Servers (Hub oder MBX) soll automatisch (immer) erfolgen. Schnell mal eine Lösung mit Powershell gebastelt, somit leicht modifizierbar! (Suchen über [...]]]></description>
			<content:encoded><![CDATA[<p>Mich nervt diese umständliche Eingabe an Informationen beim Message Tracking. Ich brauche eine Quick and Dirty Lösung, da zu 95% immer nach Sender, Empfänger und Betreff in einem Bestimmten Zeitraum gesucht wird. Die Angabe des Servers (Hub oder MBX) soll automatisch (immer) erfolgen.</p>
<p>Schnell mal eine Lösung mit Powershell gebastelt, somit leicht modifizierbar! (Suchen über mehrere Tage würde das Zeitfenster pro Tag auf die angegebenen Zeiten beschränken. Da muss ich mir noch was überlegen, wie der LogParser wirklich Date+Time erkennen kann.)</p>
<p><span id="more-154"></span></p>
<pre style="text-align: justify;"><span style="color: #008000;">#$erroractionpreference = "SilentlyContinue"
</span><span style="color: #008000;">#####
</span><span style="color: #008000;">##### Array-Pfade zu den Log-Files der Exchangeserver (MBX, HUB, Edge)
</span><span style="color: #008000;">#####</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;"># Achtung: Array!
</span><span style="color: #008000;">$aPfad =
</span><span style="color: #008000;">"'\\EX02\d$\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\MessageTracking\MSGTR*.LOG'",
"'\\EX03\d$\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\MessageTracking\MSGTR*.LOG'",
</span><span style="color: #008000;">"'\\EX08\d$\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\MessageTracking\MSGTR*.LOG'",
"'\\EX09\d$\Program Files\Microsoft\Exchange Server\TransportRoles\Logs\MessageTracking\MSGTR*.LOG'"
</span><span style="color: #008000;">$cPfad = [string]::join(", ", $aPfad)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">###########################################################################################</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">Function SearchLogs {
</span><span style="color: #008000;">#
</span><span style="color: #008000;"># Suche alle Logs, baue zuerst das Datumsformat zusammen
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$Sender = $objTextBoxS.Text
</span><span style="color: #008000;">$DateVon = $objDatePickerVon.Value.ToShortDateString().Substring(6,4) + "-" +
$objDatePickerVon.Value.ToShortDateString().Substring(3,2) + "-" +
$objDatePickerVon.Value.ToShortDateString().Substring(0,2)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">
</span><span style="color: #008000;">$TimeVon = $objTimePickerVon.Value.ToLongTimeString()
</span><span style="color: #008000;">$DateBis = $objDatePickerBis.Value.ToShortDateString().Substring(6,4) + "-" +
$objDatePickerBis.Value.ToShortDateString().Substring(3,2) + "-" +
$objDatePickerBis.Value.ToShortDateString().Substring(0,2)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">
</span><span style="color: #008000;">$TimeBis = $objTimePickerBis.Value.ToLongTimeString()
</span><span style="color: #008000;">$Sender = $objTextBoxS.Text
</span><span style="color: #008000;">$Recipient = $objTextboxR.Text
</span><span style="color: #008000;">$Subject = $objTextBoxMS.Text

</span><span style="color: #008000;">$cHelp = ""
</span><span style="color: #008000;">if($Sender.length -gt 0) {
</span><span style="color: #008000;">     $cHelp = $cHelp + " and sender-address like '%%$Sender%%' "
</span><span style="color: #008000;">}</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">if ($Recipient.Length -gt 0) {
     </span><span style="color: #008000;">$cHelp = $cHelp + " and recipient-address like '%%$Recipient%%' "
</span><span style="color: #008000;">}</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">if ($Subject.Length -gt 0) {
     </span><span style="color: #008000;">$cHelp = $cHelp + " and message-subject like '%%$Subject%%' "
</span><span style="color: #008000;">}
</span><span style="color: #008000;">$Execute = [char]34 + "select filename,substr([#Fields: date-time],0,10) AS DATE,
substr([#Fields: date-time],11,12) As Time, client-ip, client-hostname, server-ip,
server-hostname,connector-id,source,event-id,message-id,recipient-address,recipient-status,
total-bytes, recipient-count, message-subject,sender-address, return-path
from $cPfad where (date &gt;='$DateVon' and time &gt;=$TimeVon) and (date &lt;= '$DateBis' and time &lt;='$TimeBis') $cHelp
order by date,time asc" + [char]34 + " -i:CSV -nSkipLines:4 -o:DATAGRID"</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">
</span><span style="color: #008000;">$objTextBoxResult.Text = $Execute</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">[Diagnostics.Process]::start("C:\Program Files (x86)\Log Parser 2.2\logparser.exe",$Execute)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">}</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">###########################################################################################
</span><span style="color: #008000;">###########################################################################################
</span><span style="color: #008000;"># Message Tracking Log Parser über alle Exchange-Logs gleichzeitig #
</span><span style="color: #008000;"># MAIN Application #
</span><span style="color: #008000;"># (c) 2009 by M.Hans@dynasys.de #
</span><span style="color: #008000;"># #
</span><span style="color: #008000;">###########################################################################################</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Variable and Inputs
</span><span style="color: #008000;">#
</span><span style="color: #008000;">#
</span><span style="color: #008000;"># etwas .Net benötigen wir dazu
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
</span><span style="color: #008000;">[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
</span><span style="color: #008000;">$WhatToDo = "CANCEL"
</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Formular
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objForm = New-Object System.Windows.Forms.Form
</span><span style="color: #008000;">$objForm.Text = "Message Tracking..."
</span><span style="color: #008000;">$objForm.Size = New-Object System.Drawing.Size(480,330)
</span><span style="color: #008000;">$objForm.FormBorderStyle = "FixedSingle"
</span><span style="color: #008000;">$objForm.StartPosition = "CenterScreen"
</span><span style="color: #008000;">$objForm.KeyPreview = $True
</span><span style="color: #008000;">$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape") {$WhatToDo="CANCEL"; $objForm.Close()}})</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Suche Button
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$SearchButton = New-Object System.Windows.Forms.Button
</span><span style="color: #008000;">$SearchButton.Location = New-Object System.Drawing.Size(22,250)
</span><span style="color: #008000;">$SearchButton.Size = New-Object System.Drawing.Size(95,23)
</span><span style="color: #008000;">$SearchButton.Text = "Suche..."
</span><span style="color: #008000;">$SearchButton.Add_Click({SearchLogs ;})
</span><span style="color: #008000;">$objForm.Controls.Add($SearchButton)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Cancel Button
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$CancelButton = New-Object System.Windows.Forms.Button
</span><span style="color: #008000;">$CancelButton.Location = New-Object System.Drawing.Size(348, 250)
</span><span style="color: #008000;">$CancelButton.Size = New-Object System.Drawing.Size(95,23)
</span><span style="color: #008000;">$CancelButton.Text = "Cancel"
</span><span style="color: #008000;">$CancelButton.Add_Click({$WhatToDo="CANCEL";$objForm.Close()})
</span><span style="color: #008000;">$objForm.Controls.Add($CancelButton)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;"># ###############
</span><span style="color: #008000;"># Label-"Sender"
</span><span style="color: #008000;"># ###############</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objLabelS = New-Object System.Windows.Forms.Label
</span><span style="color: #008000;">$objLabelS.Location = New-Object System.Drawing.Size(18, 18)
</span><span style="color: #008000;">$objLabelS.Size = New-Object System.Drawing.Size(120,13)
</span><span style="color: #008000;">$objLabelS.Text = "Sender (Mailadresse):"
</span><span style="color: #008000;">$objForm.Controls.Add($objLabelS)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># TextBox-Sender
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objTextBoxS = New-Object System.Windows.Forms.TextBox
</span><span style="color: #008000;">$objTextBoxS.Location = New-Object System.Drawing.Size(155, 15)
</span><span style="color: #008000;">$objTextBoxS.Size = New-Object System.Drawing.Size(286, 20)
</span><span style="color: #008000;">$objForm.Controls.Add($objTextBoxS)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;"># ###############
</span><span style="color: #008000;"># Label-"Recipient"
</span><span style="color: #008000;"># ###############</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objLabelR = New-Object System.Windows.Forms.Label
</span><span style="color: #008000;">$objLabelR.Location = New-Object System.Drawing.Size(18, 40)
</span><span style="color: #008000;">$objLabelR.Size = New-Object System.Drawing.Size(135,13)
</span><span style="color: #008000;">$objLabelR.Text = "Empfänger (Mailadresse):"
</span><span style="color: #008000;">$objForm.Controls.Add($objLabelR)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># TextBox-Recipient
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objTextBoxR = New-Object System.Windows.Forms.TextBox
</span><span style="color: #008000;">$objTextBoxR.Location = New-Object System.Drawing.Size(155, 37)
</span><span style="color: #008000;">$objTextBoxR.Size = New-Object System.Drawing.Size(286, 20)
</span><span style="color: #008000;">$objForm.Controls.Add($objTextBoxR)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;"># ###############
</span><span style="color: #008000;"># Label-"Subject"
</span><span style="color: #008000;"># ###############</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objLabelMS = New-Object System.Windows.Forms.Label
</span><span style="color: #008000;">$objLabelMS.Location = New-Object System.Drawing.Size(18, 65)
</span><span style="color: #008000;">$objLabelMS.Size = New-Object System.Drawing.Size(135,13)
</span><span style="color: #008000;">$objLabelMS.Text = "Subject:"
</span><span style="color: #008000;">$objForm.Controls.Add($objLabelMS)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># TextBox-Subject
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objTextBoxMS = New-Object System.Windows.Forms.TextBox
</span><span style="color: #008000;">$objTextBoxMS.Location = New-Object System.Drawing.Size(155, 62)
</span><span style="color: #008000;">$objTextBoxMS.Size = New-Object System.Drawing.Size(286, 20)
</span><span style="color: #008000;">$objForm.Controls.Add($objTextBoxMS)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;"># ###############
</span><span style="color: #008000;"># Label-Datum Von
</span><span style="color: #008000;"># ###############</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objLabelVon = New-Object System.Windows.Forms.Label
</span><span style="color: #008000;">$objLabelVon.Location = New-Object System.Drawing.Size(18, 87)
</span><span style="color: #008000;">$objLabelVon.Size = New-Object System.Drawing.Size(135,13)
</span><span style="color: #008000;">$objLabelVon.Text = "Datum von:"
</span><span style="color: #008000;">$objForm.Controls.Add($objLabelVon)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Date Picker
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objDatePickerVon = New-Object System.Windows.Forms.DateTimePicker
</span><span style="color: #008000;">$objDatePickerVon.Location = New-Object System.Drawing.Size(155, 84)
</span><span style="color: #008000;">$objDatePickerVon.Size = New-Object System.Drawing.Size(186, 20)
</span><span style="color: #008000;">$objForm.Controls.Add($objDatePickerVon)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Time Picker
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objTimePickerVon = New-Object System.Windows.Forms.DateTimePicker
</span><span style="color: #008000;">$objTimePickerVon.Format = 4 # Time
</span><span style="color: #008000;">$objTimePickerVon.ShowUpDown = $TRUE
</span><span style="color: #008000;">$objTimePickerVon.Location = New-Object System.Drawing.Size(341, 84)
</span><span style="color: #008000;">$objTimePickerVon.Size = New-Object System.Drawing.Size(100, 20)
</span><span style="color: #008000;">$objForm.Controls.Add($objTimePickerVon)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;"># ###############
</span><span style="color: #008000;"># Label-Datum Bis
</span><span style="color: #008000;"># ###############</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objLabelBis = New-Object System.Windows.Forms.Label
</span><span style="color: #008000;">$objLabelBis.Location = New-Object System.Drawing.Size(18, 109)
</span><span style="color: #008000;">$objLabelBis.Size = New-Object System.Drawing.Size(135,13)
</span><span style="color: #008000;">$objLabelBis.Text = "Datum bis:"
</span><span style="color: #008000;">$objForm.Controls.Add($objLabelBis)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Date Picker
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objDatePickerBis = New-Object System.Windows.Forms.DateTimePicker
</span><span style="color: #008000;">$objDatePickerBis.Location = New-Object System.Drawing.Size(155, 106)
</span><span style="color: #008000;">$objDatePickerBis.Size = New-Object System.Drawing.Size(186, 20)
</span><span style="color: #008000;">$objForm.Controls.Add($objDatePickerBis)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Time Picker
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objTimePickerBis = New-Object System.Windows.Forms.DateTimePicker
</span><span style="color: #008000;">$objTimePickerBis.Format = 4 # Time
</span><span style="color: #008000;">$objTimePickerBis.ShowUpDown = $TRUE
</span><span style="color: #008000;">$objTimePickerBis.Location = New-Object System.Drawing.Size(341, 106)
</span><span style="color: #008000;">$objTimePickerBis.Size = New-Object System.Drawing.Size(100, 20)
</span><span style="color: #008000;">$objForm.Controls.Add($objTimePickerBis)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># TextBox-Result Statement
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objTextBoxResult = New-Object System.Windows.Forms.TextBox
</span><span style="color: #008000;">$objTextBoxResult.MultiLine = $TRUE
</span><span style="color: #008000;">$objTextBoxResult.ReadOnly = $True
</span><span style="color: #008000;">$objTextBoxResult.ScrollBars = 2
</span><span style="color: #008000;">$objTextBoxResult.Location = New-Object System.Drawing.Size(20, 134)
</span><span style="color: #008000;">$objTextBoxResult.Size = New-Object System.Drawing.Size(423, 100)
</span><span style="color: #008000;">$objForm.Controls.Add($objTextBoxResult)</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Form vorbereiten
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">$objForm.Add_Shown({$objForm.Activate()})</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Main Dialog
</span><span style="color: #008000;">#</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">[void] $objForm.ShowDialog()</span></pre>
<pre style="text-align: justify;"><span style="color: #008000;">#
</span><span style="color: #008000;"># Ende
</span><span style="color: #008000;">#</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=154</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Server 2008 R2 Active Directory Powershell</title>
		<link>http://scripte.hans-online.de/?p=151</link>
		<comments>http://scripte.hans-online.de/?p=151#comments</comments>
		<pubDate>Tue, 17 Nov 2009 07:43:28 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=151</guid>
		<description><![CDATA[1.) CmdLets importieren import-module activedirectory import-module servermanager &#8230;.]]></description>
			<content:encoded><![CDATA[<p>1.) CmdLets importieren<br />
import-module activedirectory</p>
<p>import-module servermanager<br />
&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=151</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NRM v3.0 Works with Windows Server 2008</title>
		<link>http://scripte.hans-online.de/?p=144</link>
		<comments>http://scripte.hans-online.de/?p=144#comments</comments>
		<pubDate>Mon, 14 Sep 2009 17:25:45 +0000</pubDate>
		<dc:creator>Matthias Hans</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://scripte.hans-online.de/?p=144</guid>
		<description><![CDATA[Works with Windows Server 2008 now! NRM hat den Plattformtest für Windows Server 2008 bestanden. (Windows Server 2008 und Managed Code) Mehr Infos gibts hier! Matthias]]></description>
			<content:encoded><![CDATA[<p>Works with Windows Server 2008 now!<br />
NRM hat den Plattformtest für Windows Server 2008 bestanden. (Windows Server 2008 und Managed Code)</p>
<p>Mehr Infos gibts <a title="NRM v3.0" href="http://scripte.hans-online.de/?p=122" target="_blank">hier</a>!</p>
<p>Matthias</p>
]]></content:encoded>
			<wfw:commentRss>http://scripte.hans-online.de/?feed=rss2&amp;p=144</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
