<?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"
	>

<channel>
	<title>blog.tiews.info</title>
	<atom:link href="http://blog.tiews.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tiews.info</link>
	<description>All You Have 2 Know...</description>
	<pubDate>Wed, 01 Oct 2008 19:59:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>HFH - Literaturverzeichnis und Zitate mit Word 2007</title>
		<link>http://blog.tiews.info/2008/09/04/hfh-literaturverzeichnis/</link>
		<comments>http://blog.tiews.info/2008/09/04/hfh-literaturverzeichnis/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 18:42:52 +0000</pubDate>
		<dc:creator>Marcel</dc:creator>
		
		<category><![CDATA[Diplomarbeit]]></category>

		<category><![CDATA[HFH]]></category>

		<category><![CDATA[Hausarbeit]]></category>

		<category><![CDATA[Literaturverzeichnis]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=25</guid>
		<description><![CDATA[Quellen verwalten in Word 2007
Das neue Word 2007 hat eine integrierte Literaturverwaltung. Sie ersetzt keine professionelle Quellenverwaltung, wie man sie für Haus- und Diplomarbeiten benötigt - erleichtert aber für wirklich in der Arbeit verwendete Quelle die Formatierung und Erstellung des Literaturverzeichnisses.

Die Quellenverwaltung von Word 2007 ist über das Menü Verweise &#62; Zitate und Literaturverzeichnis &#62; [...]]]></description>
			<content:encoded><![CDATA[<h5>Quellen verwalten in Word 2007</h5>
<p>Das neue Word 2007 hat eine integrierte Literaturverwaltung. Sie ersetzt keine professionelle Quellenverwaltung, wie man sie für Haus- und Diplomarbeiten benötigt - erleichtert aber für wirklich in der Arbeit verwendete Quelle die Formatierung und Erstellung des Literaturverzeichnisses.</p>
<p><span id="more-25"></span></p>
<p>Die Quellenverwaltung von Word 2007 ist über das Menü <em>Verweise </em>&gt; <em>Zitate und Literaturverzeichnis</em> &gt; <em>Quellen verwalten</em> erreichbar. In diesem Fenster gibt es zwei Listen. Zum einen die <em>Masterliste</em>, die alle Quellen enthält, und zum anderen eine <em>Aktuelle Liste</em>, die alle Quellen des gerade zu bearbeitenden Dokumentes enthält.<br />
Zitate lassen sich über <em>Verweise</em> &gt; <em>Zitate und Literaturverzeichnis</em> &gt; <em>Zitat einfügen</em> in das Dokument einfügen.<br />
Ein Literaturverzeichnis kann über <em>Verweise</em> &gt; <em>Zitate und Literaturverzeichnis</em> &gt; <em>Literaturverzeichnis </em>in das Dokument eingefügt werden.</p>
<p>Standardmäßig werden von Microsoft bereits verschiedene &#8220;Formatvorlagen&#8221; für Zitate und Quellenangaben mitgeliefert. Leider entspricht keine dieser Vorlagen den Forderungen der HFH, doch zum Glück lassen sich die vorhandenen Vorlagen anpassen bzw. eigene Vorlagen erstellen.</p>
<h5>Einbinden der neuen Formatvorlage</h5>
<p>Da die mit Word 2007 mitgelieferten Formatvorlagen relativ komplex sind und viele Teile enthalten, die nicht gebraucht werden, habe ich eine neue Vorlage erstellt. Um die von mir erstellte Vorlage benutzen zu können, muss</p>
<ul>
<li>diese Datei <a href="http://blog.tiews.info/wp-content/uploads/HFH.xsl">HFH.xsl</a> runtergeladen werden und</li>
<li>unter <em>[Office-Installationsverzeichnis]</em>\<em>Office12</em>\<em>Bibliography</em>\<em>Style</em> gespeichert werden.</li>
</ul>
<p>Anschließend kann unter <em>Verweise &gt; Formatvorlage</em> der Eintrag &#8220;HFH&#8221; gewählt werden.</p>
<h5>Was kann die neue Formatvorlage</h5>
<p>Bei der Erstellung der Vorlage habe ich versucht mich an den Studienbrief &#8220;Wissenschaftliches Arbeiten. Studienbrief 2:  Recherchieren, Zitieren, Gestalten - Ein praktische Hilfe zur Erstellung von Haus- und Diplomarbeiten&#8221; zu halten. Da der gesamte Studienbrief relativ umfangreich ist, hab ich erstmal die für mich wichtigen Teile in die Vorlage übernommen. Ein Anpassen der Vorlage ist jederzeit möglich.</p>
<p>Für Zitate bietet die neue Vorlage die folgenden Funktionen:</p>
<ul>
<li>sämtliche Typen von Quellen sind möglich,</li>
<li>Format für alle Quellen identisch,</li>
<li>beliebig Anzahl von Autoren möglich</li>
<li>Seitenangaben möglich (werden über die Eigenschaften des Zitates eingestellt)</li>
<li>Indirektes Zitat möglich (der Text &#8220;vgl.&#8221; wird mit angezeigt) - um diese Funktion zu aktivieren, muss in den Eigenschaften des Zitats der Haken &#8220;Titel&#8221; aktiviert werden. Dieser Umweg ist nötig, da Word 2007 keine Unterscheidung zwischen direktem und indirektem Zitat macht.</li>
</ul>
<p>Für das Literaturverzeichnis werden die folgenden Quellentypen und Felder unterstützt:</p>
<ul>
<li>Buch (Book)</li>
<li>Buchabschnitt (BookSection)</li>
<li>Zeitschriftenaufsätze und Artikel in Magazinen (ArticleInAPeriodical)</li>
<li>Zeitungsartikel (JournalArticle)</li>
<li>Webseite/Artikel von einer Webseite (InternetSite/DocumentFromInternetSite)</li>
</ul>
<p>Alle von dieser Vorlage unterstützten Felder werden in der Quellenverwaltung von Word als &#8220;empfohlene Felder&#8221; angezeigt.</p>
<p>Bei Fragen zur Verwendung/Bedienung einfach melden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/09/04/hfh-literaturverzeichnis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Programmatically remove BiztalkAssembly resource from an Application</title>
		<link>http://blog.tiews.info/2008/09/03/programmatically-remove-biztalkassembly-resource-from-an-application/</link>
		<comments>http://blog.tiews.info/2008/09/03/programmatically-remove-biztalkassembly-resource-from-an-application/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 11:08:23 +0000</pubDate>
		<dc:creator>Marcel</dc:creator>
		
		<category><![CDATA[Biztalk]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=26</guid>
		<description><![CDATA[Here is a short C# code snippet about how to remove a BizTalk assembly resource from a BizTalk application.

To use this code you have to add BizTalk.Application.Deployment.Engine.dll (located in the BizTalk installation folder) and Microsoft.BizTalk.Admin.dll (located in the GAC) as reference.
public static void RemoveAssemblyResource(
   string pAssemblyDisplayName,
   string pApplicationName,
   string [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a short C# code snippet about how to remove a BizTalk assembly resource from a BizTalk application.<br />
<span id="more-26"></span><br />
To use this code you have to add BizTalk.Application.Deployment.Engine.dll (located in the BizTalk installation folder) and Microsoft.BizTalk.Admin.dll (located in the GAC) as reference.</p>
<pre>public static void RemoveAssemblyResource(
   string pAssemblyDisplayName,
   string pApplicationName,
   string pServerName,
   string pMgmtDatabase)
{
   Microsoft.BizTalk.ApplicationDeployment.Group lDepGroup =
      new Microsoft.BizTalk.ApplicationDeployment.Group();

   try
   {
      lDepGroup.DBName = pMgmtDatabase;
      lDepGroup.DBServer = pServerName;

      Microsoft.BizTalk.ApplicationDeployment.Application lApp =
         lDepGroup.Applications[pApplicationName];

      if (lApp.IsSystem)
         throw new Exception(&#8221;System applications can not be changed!&#8221;);

      lApp.ResourceCollection.Remove(string.Empty, pAssemblyDisplayName);
   }
   catch
   {
      lDepGroup.Abort();
      throw;
   }
   finally
   {
      lDepGroup.Dispose();
   }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/09/03/programmatically-remove-biztalkassembly-resource-from-an-application/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Vista Sidebar Gadget: Fritz!Box Anrufliste</title>
		<link>http://blog.tiews.info/2008/06/02/vista-sidebar-gadget-fritzbox-anrufliste/</link>
		<comments>http://blog.tiews.info/2008/06/02/vista-sidebar-gadget-fritzbox-anrufliste/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 19:25:28 +0000</pubDate>
		<dc:creator>Marcel</dc:creator>
		
		<category><![CDATA[Vista Gadgets]]></category>

		<category><![CDATA[Fritz!Box]]></category>

		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=21</guid>
		<description><![CDATA[Das Fritz!Box Anrufliste Gadget zeigt in der Sidebar von Vista die Anrufliste der Fritz!Box an.
Die Anrufliste wird direkt von der Fritz!Box geladen und angezeigt.

Funktionen:

regelmäßige Aktualisierung der Anrufliste
die sechs aktuellsten Anrufe werden dauerhaft in der Sidebar angezeigt
detailierte Liste mit allen gespeicherten Anrufen als Flyout
Tooltip mit detailierten Informationen zum jeweiligen Anruf
Fritz!Box IP, Fritz!Box Password und Aktualisierungsintervall konfigurierbar

Das [...]]]></description>
			<content:encoded><![CDATA[<p>Das Fritz!Box Anrufliste Gadget zeigt in der Sidebar von Vista die Anrufliste der Fritz!Box an.</p>
<p>Die Anrufliste wird direkt von der Fritz!Box geladen und angezeigt.</p>
<p><span id="more-21"></span></p>
<p>Funktionen:</p>
<ul>
<li>regelmäßige Aktualisierung der Anrufliste</li>
<li>die sechs aktuellsten Anrufe werden dauerhaft in der Sidebar angezeigt</li>
<li>detailierte Liste mit allen gespeicherten Anrufen als Flyout</li>
<li>Tooltip mit detailierten Informationen zum jeweiligen Anruf</li>
<li>Fritz!Box IP, Fritz!Box Password und Aktualisierungsintervall konfigurierbar</li>
</ul>
<p>Das Gadget in der Sidebar:</p>
<p style="text-align: center;"><a href="http://blog.tiews.info/wp-content/uploads/2008/05/fritzboxal_sample1.png"><img class="size-medium wp-image-22" title="Fritz!Box Anrufliste in der Sidebar" src="http://blog.tiews.info/wp-content/uploads/2008/05/fritzboxal_sample1-123x300.png" alt="Fritz!Box Anrufliste in der Sidebar" width="123" height="300" /></a></p>
<p>In einem Flyout werden alle Anrufe in einer detailierten Liste angezeigt:</p>
<p style="text-align: center;"><a href="http://blog.tiews.info/wp-content/uploads/2008/05/fritzboxal_sample2.png"><img class="size-full wp-image-24" title="Flyout mit allen Anrufen" src="http://blog.tiews.info/wp-content/uploads/2008/05/fritzboxal_sample2.png" alt="Flyout mit allen Anrufen" width="500" height="338" /></a></p>
<p>Das Gadget hab ich mit meiner 7270 getestet - sollte aber auch mit verschiedenen anderen Boxen funktionieren.</p>
<p style="text-align: center;"><a class="dlimg" href="http://blog.tiews.info/wp-content/plugins/download-monitor/download.php?id=1" title="Download Fritz!Box Anrufliste Gadget"><img src="http://blog.tiews.info/wp-content/plugins/download-monitor/img/download.png" alt="Download Fritz!Box Anrufliste Gadget" /></a></p>
<p class="dlstat">Downloaded a total of 674 times</p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/06/02/vista-sidebar-gadget-fritzbox-anrufliste/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Truecrypt - Daten sicher auf dem USB-Stick transportieren</title>
		<link>http://blog.tiews.info/2008/05/05/truecrypt-daten-sicher-auf-dem-usb-stick-transportieren/</link>
		<comments>http://blog.tiews.info/2008/05/05/truecrypt-daten-sicher-auf-dem-usb-stick-transportieren/#comments</comments>
		<pubDate>Mon, 05 May 2008 18:37:38 +0000</pubDate>
		<dc:creator>Marcel</dc:creator>
		
		<category><![CDATA[Datensicherheit]]></category>

		<category><![CDATA[Truecrypt]]></category>

		<category><![CDATA[USB-Stick]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=17</guid>
		<description><![CDATA[Um Daten sicher auf einem USB-Stick zu transportieren, sollte man diese verschlüsseln.
So kann niemand ohne Weiteres - falls der Stick mal verloren gehen sollte oder in die falschen Hände gerät - die Daten lesen und missbrauchen.

Damit die Daten verschlüsselt werden können, ist i.d.R. ein zusätzliches Tool nötig. Eines dieser Tools ist Truecrypt.
Ziel/Problemstellung
Ich möchte an dieser [...]]]></description>
			<content:encoded><![CDATA[<p>Um Daten sicher auf einem USB-Stick zu transportieren, sollte man diese verschlüsseln.<br />
So kann niemand ohne Weiteres - falls der Stick mal verloren gehen sollte oder in die falschen Hände gerät - die Daten lesen und missbrauchen.</p>
<p><span id="more-17"></span></p>
<p>Damit die Daten verschlüsselt werden können, ist i.d.R. ein zusätzliches Tool nötig. Eines dieser Tools ist Truecrypt.</p>
<h5>Ziel/Problemstellung</h5>
<p>Ich möchte an dieser Stelle kein Tutorial für Truecrypt schreiben.<br />
Es geht lediglich darum, wie man mit Truecrypt verschlüsselte Daten auf dem USB-Stick möglichst komfortabel unter Windows einbinden kann - ohne sich jedesmal durch die GUI von Truecrypt oder die Kommandozeilen-Parameter zu kämpfen.</p>
<p>Ziel soll sein, dass</p>
<ul>
<li>die verschlüsselten Daten automatisch oder über einen Klick eingebunden werden,</li>
<li>das Verschlüsselungstool (in diesem Fall Truecrypt) nicht zwangsweise auf dem Rechner, an dem der USB-Stick angeschlossen wird, installiert sein muss,</li>
<li>das Verschlüsselungs-Tool auf dem Stick mittransportiert werden kann,</li>
<li>nicht der komplette USB-Stick verschlüsselt ist,</li>
<li>der Laufwerks-Buchstabe, unter dem der Stick eingebunden wird, nicht relevant ist</li>
<li>und auf dem USB-Stick noch Platz ist, um unverschlüsselte Daten zu speichern/transportieren, falls es dann mal doch nicht mit Truecrypt klappt.</li>
</ul>
<h5>Was ist Truecrypt?</h5>
<p>Mit diesem Tool (<a href="http://www.truecrypt.org" target="_blank">hier kostenlos erhältlich</a>) lassen sich komplette Festplatten-Partitionen verschlüsseln und mit einem Passwort sichern, aber auch einfach nur eine einzelne Truecrypt-Container-Datei erstellen.</p>
<p>Eine Truecrypt-Container-Datei</p>
<ul>
<li>läßt sich als ganz normales Laufwerk in Windows einbinden,</li>
<li>die darin enthaltenen Daten sind verschlüsselt und mit Passwort gesichert,</li>
<li>läßt sich auf einem USB-Stick leicht von PC zu PC transportieren</li>
<li>und ist auf verschiedensten Systemen (Windows, Linux, Mac OS) verwendbar.</li>
</ul>
<h5>Installation von Truecrypt</h5>
<p>Truecrypt muss nicht auf jedem Rechner installiert sein, an dem die verschlüsselten Daten verwendet werden sollen. Da wir jedoch Truecrypt auf dem USB-Stick mitnehmen wollen, muss es zumindest auf einem Rechner installiert sein, um an die ausführbaren Dateien zu kommen.</p>
<h5>Erstellen der Truecrypt-Container-Datei</h5>
<p>Als nächstes muß eine Truecrypt-Container-Datei erzeugt werden.<br />
Dazu gibt es in Truecrypt einen Wizard, der die Erstellung von verschlüsselten Datenträger erleichtert.<br />
An dieser Stelle wird nicht der komplette Wizard beschrieben, sondern lediglich die relevanten Einstellungen.</p>
<p>Der Wizard kann in Truecrypt über den Button <em>Create Volume</em> gestartet werden:</p>
<ul>
<li><em>Volume Type</em>: &#8220;Standard Truecrypt Volume&#8221;</li>
<li><em>Volume Location</em>:
<ul>
<li>wo der Container erstellt wird ist egal, da die Datei anschließend auf dem USB-Stick kopiert wird</li>
<li>der Dateiname sollte <em>DataSafe.tc</em> sein, damit die verwendeten Scripte einfach übernommen werden können</li>
</ul>
</li>
<li><em>Volume Size</em>:
<ul>
<li>Abhängig von der Größe des USB-Sticks und wieviel unverschlüsselter Speicherplatz noch frei sein soll</li>
<li>da Truecrypt auch auf dem Stick transportiert werden muss, ca. 4 MB freien Speicher dafür berücksichtigen</li>
<li>Beispiel: 4GB USB-Stick<br />
- 3GB für Truecrypt-Container (einzutragende Volume Size)<br />
- 1GB freier, unverschlüsselter Speicher auf dem USB-Stick (abzüglich ca. 4MB für Truecrypt)</li>
</ul>
</li>
<li>&#8230;</li>
</ul>
<h5>Erstellen der Verzeichnis/Datei-Struktur auf dem USB-Stick</h5>
<p>Damit das Einbinden der verschlüsselten Daten möglichst komfortabel ist, müssen eine paar Scripte erstellt werden.<br />
Keine Angst, in dieser Anleitung vorhanden und Anpassungen sind i.d.R. nicht nötig!<br />
Damit die Script ohne Anpassung funktionieren, ist es jedoch wichtig, dass die Verzeichnis-Struktur auf dem<br />
USB-Stick entsprechend dieser Anleitung erstellt wird und die Container-Datei &#8220;DataSafe.tc&#8221; genannt wurde.</p>
<p>Zu erstellende Verzeichnis-Struktur auf dem USB-Stick:</p>
<ul>
<li> [USB-Stick-Laufwerk]
<ul>
<li><em>DataSafe</em></li>
<li><em>Truecrypt </em>
<ul>
<li><em>Executable</em></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Die Struktur sollte dann wie auf diesem Screenshot aussehen (USB-Stick ist im Bild das Laufwerk H:):</p>
<p style="text-align: center;"><img class="size-full wp-image-20" title="Dateistruktur eines für Truecrypt konfigurierten USB-Sticks" src="http://blog.tiews.info/wp-content/uploads/2008/05/dateistruktur_truecrypt.png" alt="Dateistruktur eines für Truecrypt konfigurierten USB-Sticks" width="263" height="160" /></p>
<p>In das Verzeichnis <em>DataSafe </em>muss der erstellte Truecrypt-Container (<em>DataSafe.tc</em>) kopiert werden.</p>
<p>In das Verzeichnis <em>Truecrypt\Executeable</em> müssen die ausführbaren Dateien von Truecrypt kopiert werden. Dazu alle Dateien aus dem Verzeichnis, das bei der Installation von Truecrypt ausgewählt wurde, kopieren.</p>
<h5>Erstellen der Scripte</h5>
<p>Die folgenden Scripte/Dateien müssen alle auf dem USB-Stick abgelegt werden.</p>
<p><strong>Dateiname: AUTORUN.INF</strong><br />
Speicherort: direkt auf dem USB-Stick im obersten Verzeichnis (nicht in einem Unterverzeichnis des Sticks)</p>
<p>Inhalt der Datei:</p>
<pre>[AutoRun]
action=Mount DataSafe
OPEN=DataSafe\mount_safe.cmd
ICON=Truecrypt\Executable\TrueCrypt.exe

Shell=0
Shell\0=Unmount DataSafe
Shell\0\command=DataSafe\unmount_safe.cmd

Shell=1
Shell\1=Mount DataSafe
Shell\1\command=DataSafe\mount_safe.cmd</pre>
<p><strong>Dateiname: mount_safe.cmd</strong><br />
Speicherort: im Unterverzeichnis <em>DataSafe </em>des USB-Sticks</p>
<p>Inhalt der Datei:</p>
<pre>@ECHO OFF

REM %~d0 stellt das aktuelle Laufwerk (auf dem sich die Batch-Datei befindet) dar

start %~d0\truecrypt\executable\truecrypt.exe /history n /quit background /explore /volume %~d0\DataSafe\DataSafe.tc</pre>
<p><strong>Dateiname: unmount_safe.cmd</strong><br />
Speicherort: im Unterverzeichnis <em>DataSafe </em>des USB-Sticks</p>
<p>Inhalt der Datei:</p>
<pre>@ECHO OFF

start %~d0\truecrypt\executable\truecrypt.exe /dismount /quit /history n</pre>
<h5>Und wie kann man das ganze jetzt verwenden?</h5>
<p>Unterstützt das System (Windows Vista, Windows XP ServicePack 2) die Autostart-Funktion von USB-Geräten und ist die Autostart-Funktion des Systems aktiviert, sollte die bekannte Box</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-18 aligncenter" title="Autostart-Dialog von Windows Vista" src="http://blog.tiews.info/wp-content/uploads/2008/05/autostart_truecrypt.png" alt="Autostart-Dialog von Windows Vista" width="349" height="290" /></p>
<p>beim Einstecken des USB-Sticks aufgehen und einen Punkt <em>Mount DataSafe</em> enthalten. Diesen Punkt anklicken und die Passwort-Eingabe von Truecrypt für die Container-Datei sollte erscheinen.</p>
<p>Anschließend wird automatisch ein neues Laufwerk verbunden und der Explorer öffnet sich - angezeigt wird der Inhalt der verschlüsselten Container-Datei.</p>
<p>Sollte die Autostart-Funktion von Windows nicht angezeigt werden, dann im Kontext-Menü - Rechtsklick auf den Laufwerks-Buchstaben des USB-Sticks - <em>Mount DataSafe</em> auswählen.</p>
<p style="text-align: center;"><img class="size-full wp-image-19" title="Kontextmenü eines für Truecrypt konfigurierten USB-Sticks" src="http://blog.tiews.info/wp-content/uploads/2008/05/kontextmenu_truecrypt.png" alt="Kontextmenü eines für Truecrypt konfigurierten USB-Sticks" width="425" height="176" /></p>
<p>Um das verschlüsselte Laufwerk wieder zu deaktivieren, einfach im Kontext-Menü des USB-Sticks (Nicht des verschlüsselten Laufwerks!!!) den Punkt <em>Unmount DataSafe</em> auswählen.</p>
<p>Anschließend kann der USB-Stick wieder vom Rechner entfernt werden.</p>
<h5>Und das soll funktionieren?</h5>
<p>Getestet wurde diese Konfiguration des USB-Sticks bisher auf:</p>
<ul>
<li>Windows XP SP 2</li>
<li>Windows Vista Ultimate 64bit</li>
</ul>
<h5>FAQ</h5>
<ul>
<li><strong>Truecrypt startet auf bestimmten Rechnern nicht!</strong><br />
Um Truecrypt verwenden zu können, muss man Administrator-Rechte haben. Sollte das nicht der Fall sein, dann  muss Truecrypt durch einen Administrator installiert werden - anschließend können auch &#8220;Nicht-Administratoren&#8221; die Funktionalität nutzen.</li>
</ul>
<p>Hoffe das hilft ein bisschen, die (Daten)Welt sicherer zu machen! <img src='http://blog.tiews.info/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Sollte ich etwas vergessen haben oder unklar sein, einfach melden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/05/05/truecrypt-daten-sicher-auf-dem-usb-stick-transportieren/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Objekte unter .NET klonen</title>
		<link>http://blog.tiews.info/2008/05/02/objekte-unter-net-klonen/</link>
		<comments>http://blog.tiews.info/2008/05/02/objekte-unter-net-klonen/#comments</comments>
		<pubDate>Fri, 02 May 2008 21:09:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=16</guid>
		<description><![CDATA[Standardmäßig enthalten Variablen in .NET nur Referenzen auf Objekte und nicht &#8220;die Daten selbst&#8221; (abgesehen von &#8220;value types&#8221;). D.h. übergibt man eine Variable an eine Funktion, dann kann das Objekt, das sich hinter dieser Variable verbirgt, innerhalb der aufgerufenen Funktion dauerhaft verändert werden. Diese Änderung bleibt auch nach Rückkehr aus der Funktion bestehen.

Will man ein [...]]]></description>
			<content:encoded><![CDATA[<p>Standardmäßig enthalten Variablen in .NET nur Referenzen auf Objekte und nicht &#8220;die Daten selbst&#8221; (abgesehen von &#8220;value types&#8221;). D.h. übergibt man eine Variable an eine Funktion, dann kann das Objekt, das sich hinter dieser Variable verbirgt, innerhalb der aufgerufenen Funktion dauerhaft verändert werden. Diese Änderung bleibt auch nach Rückkehr aus der Funktion bestehen.<br />
<span id="more-16"></span><br />
Will man ein Objekt kopieren, so bietet sich folgende Methode an:</p>
<pre>using System.Runtime.Serialization.Formatters.Binary;
&nbsp;
class ObjectHelper
{
   public static object DeepClone(object Object2Clone)
   {
      BinaryFormatter lSerializer = new BinaryFormatter();
      System.IO.MemoryStream lMS = new System.IO.MemoryStream();
      lSerializer.Serialize(lMS,Object2Clone);
      lMS.Position=0;
      return lSerializer.Deserialize(lMS);
   }
}
</pre>
<p>Eine andere Möglichkeit wäre das Implementieren des ICloneable-Interfaces. Diese Variante ist jedoch mit deutlich mehr Aufwand verbunden und müßte für jede Klasse separat implementiert werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/05/02/objekte-unter-net-klonen/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IISReset for BizTalk</title>
		<link>http://blog.tiews.info/2008/05/02/iisreset-for-biztalk/</link>
		<comments>http://blog.tiews.info/2008/05/02/iisreset-for-biztalk/#comments</comments>
		<pubDate>Fri, 02 May 2008 20:42:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Biztalk]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=15</guid>
		<description><![CDATA[This small tool works like the IISReset for IIS. You can start/stop the BizTalk hosts from the command prompt.
The code is simple an easy customizable.


using System;
using System.Reflection;
using System.Collections;
using System.Management;

namespace BizTalk.Tools.Reset
{
   class CProgram
   {
      [STAThread]
      static int Main(string[ ] args)
   [...]]]></description>
			<content:encoded><![CDATA[<p>This small tool works like the IISReset for IIS. You can start/stop the BizTalk hosts from the command prompt.</p>
<p>The code is simple an easy customizable.<br />
<span id="more-15"></span></p>
<pre>
using System;
using System.Reflection;
using System.Collections;
using System.Management;

namespace BizTalk.Tools.Reset
{
   class CProgram
   {
      [STAThread]
      static int Main(string[ ] args)
      {
         CReset.ResetAction lAction=0;

         if(args.Length!=1) { Usage(); return 0; }
         else if(args[0].ToLower().CompareTo(&#8221;start&#8221;)==0)
         { lAction=CReset.ResetAction.Start; }
         else if(args[0].ToLower().CompareTo(&#8221;stop&#8221;)==0)
         { lAction=CReset.ResetAction.Stop; }
         else if(args[0].ToLower().CompareTo(&#8221;restart&#8221;)==0)
         { lAction=CReset.ResetAction.Restart; }
         else { Usage(); return 0; }

         CReset lReset = new CReset();
         lReset.LogInfo += new CReset.LogInfoHandler(WriteInfo);

         try
         {
            lReset.Reset(string.Empty,lAction);
         }
         catch(Exception ex)
         {
            Console.WriteLine(&#8221;\n!!! Error occured: {0} !!!\n&#8221;,ex.Message );
            return 1;
         }
         return 0;
      }

      static void Usage()
      {
         Console.WriteLine(
            &#8220;\nTool to Stop/Start/Restart BizTalk-HostInstances.&#8221;);
         Console.WriteLine(
            &#8220;\nusage:\n &#8221; + Assembly.GetExecutingAssembly().GetName().Name +
            &#8221; [START|STOP|RESTART]&#8220;);
      }

      static void WriteInfo(string Info)
      {
         Console.WriteLine(Info);
      }
   }

   class CReset
   {
      public delegate void LogInfoHandler(string Info);
      public event LogInfoHandler LogInfo;

      [Flags]
         public enum ResetAction { Start=1, Stop=2, Restart=Start|Stop }
      private enum HostState
      { Stopped=1, StartPending=2, StopPending=3,    Running=4, Unknown=8 }

      public CReset()    {}

      public void Reset(string Server, ResetAction Action )
      {
         OnLogInfo(&#8221;Action:&#8221; + Action.ToString());
         ManagementScope lMScope;
         if(Server.Length>0)
         {
            lMScope = new ManagementScope(
               &#8220;\\\\&#8221; + Server +    &#8220;\\root\\MicrosoftBizTalkServer&#8221;);
         }
         else
         {
            lMScope = new ManagementScope(@&#8221;root\MicrosoftBizTalkServer&#8221;);
         }

         // HostTypes: In-proc=1 / Isolated=2
         ObjectQuery lQuery = new ObjectQuery(
            &#8220;select * from MSBTS_HostInstance where HostType=1&#8243;);

         using(ManagementObjectSearcher
            lSearcher = new ManagementObjectSearcher(lMScope,lQuery))
         {
            ManagementObjectCollection ReturnCollection = lSearcher.Get();
            foreach (ManagementObject lHostInstance in ReturnCollection)
            {
               // States: Stopped=1 / Start pending=2 /
               // Stop pending=3 / Running=4 / Unknown=8
               HostState State=HostState.Unknown;
               switch ((uint)lHostInstance["ServiceState"])
               {
                  case 1: State=HostState.Stopped; break;
                  case 2:    State=HostState.StartPending; break;
                  case 3: State=HostState.StopPending; break;
                  case 4: State=HostState.Running;
                     break; default: State=HostState.Unknown; break;
               }

               OnLogInfo(
                  String.Format(&#8221;HostInstance <{0}> on Server <{1}> -> {2}&#8221;,
                  lHostInstance.Properties["HostName"].Value,
                  lHostInstance.Properties["RunningServer"].Value,State));

               if(State!=HostState.Stopped &#038;&#038;
                  (Action &#038; ResetAction.Stop)!=0)
               {
                  OnLogInfo(&#8221; Stopping&#8230;&#8221;);
                  lHostInstance.InvokeMethod(&#8221;Stop&#8221;,null);
                  OnLogInfo(&#8221; Stopped.&#8221;);
                  State=HostState.Stopped;
               }

               if(State!=HostState.Running &#038;&#038;
                  (Action &#038; ResetAction.Start)!=0)
               {
                  OnLogInfo(&#8221; Starting&#8230;&#8221;);
                  lHostInstance.InvokeMethod(&#8221;Start&#8221;,null);
                  OnLogInfo(&#8221; Started.&#8221;);
               }
            }
         }
      }

      private void OnLogInfo(string Info)
      {
         if(LogInfo!=null)
            LogInfo(Info);
      }
   }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/05/02/iisreset-for-biztalk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Manage active orchestration instances</title>
		<link>http://blog.tiews.info/2008/05/02/manage-active-orchestration-instances/</link>
		<comments>http://blog.tiews.info/2008/05/02/manage-active-orchestration-instances/#comments</comments>
		<pubDate>Fri, 02 May 2008 20:41:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Biztalk]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[BizTalk]]></category>

		<category><![CDATA[VBScript]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=14</guid>
		<description><![CDATA[
'------------------------------------------------------------------
' Save as "ManageActiveOrchestrations.vbs"
' WMI script to manage active Orchestration instances
'
' Marcel Tiews in 05
'------------------------------------------------------------------



Option Explicit

Const SState_ReadyToRun = 1
Const SState_Active = 2
Const SState_SuspendedResumable = 4
Const SState_Dehydrated = 8
Const SState_Completed = 16
Const SState_SuspendedNotResumable = 32
Const SState_InBreakpoint = 64

EnumInstances

Sub EnumInstances()

   Dim objArgs: Set objArgs = WScript.Arguments
   Dim StdIn : Set StdIn = WScript.StdIn

 [...]]]></description>
			<content:encoded><![CDATA[<pre>
'------------------------------------------------------------------
' Save as "ManageActiveOrchestrations.vbs"
' WMI script to manage active Orchestration instances
'
' Marcel Tiews in 05
'------------------------------------------------------------------
</pre>
<p><span id="more-14"></span></p>
<pre>
Option Explicit

Const SState_ReadyToRun = 1
Const SState_Active = 2
Const SState_SuspendedResumable = 4
Const SState_Dehydrated = 8
Const SState_Completed = 16
Const SState_SuspendedNotResumable = 32
Const SState_InBreakpoint = 64

EnumInstances

Sub EnumInstances()

   Dim objArgs: Set objArgs = WScript.Arguments
   Dim StdIn : Set StdIn = WScript.StdIn

   on error resume next

   Dim strOrchName : strOrchName = ""
   Dim strChangeStatus : strChangeStatus = "no"

   If Err <> 0 Then
      PrintWMIErrorThenExit Err.Description, Err.Number, false
   End If

   If (objArgs.Count > 0) Then
      strOrchName = &#8221; where AssemblyName like &#8220;&#8221;" &#038; objArgs(0) &#038; &#8220;&#8221;"&#8221;
   If (objArgs.Count > 1) Then
      strChangeStatus = objArgs(1)
   End If
   Else
      PrintUsage()
      wscript.quit 1
   End If

   Dim strQuery, InstSet, Inst

   strQuery = &#8220;SELECT * FROM MSBTS_ServiceInstance &#8221; &#038; strOrchName
   set InstSet = GetObject(&#8221;Winmgmts:!root\MicrosoftBizTalkServer&#8221;).ExecQuery(strQuery)
   wscript.echo strQuery
   wscript.echo
   wscript.echo &#8220;&#8230;Please wait, this could take a while&#8230;&#8221;

   &#8216;Check for error condition before continuing.
   If Err <> 0 Then
      PrintWMIErrorThenExit Err.Description, Err.Number, false
   End If

   &#8216;Report on number of instances&#8230;
   Dim strCommand
   wscript.echo InstSet.Count &#038; &#8221; Instances were found.&#8221;
   wscript.echo
   If InstSet.Count > 0 Then
      For Each Inst In InstSet
         wscript.echo &#8221; Instance-ID: &#8221; &#038; Inst.InstanceID
         wscript.echo &#8221;    ServiceName: &#8221; &#038; Inst.ServiceName
         wscript.echo &#8221;    Assembly: &#8221; &#038; Inst.AssemblyName &#038; &#8221; (&#8221; &#038; Inst.AssemblyVersion &#038; &#8220;)&#8221;
         wscript.echo &#8221;    Status: &#8221; &#038; PrintStatus(Inst.ServiceStatus)

      If(strChangeStatus = &#8220;yes&#8221;) Then
         wscript.echo
         wscript.echo &#8220;Action: [r]esume | [s]uspend | [t]erminate&#8221;
         strCommand = StdIn.ReadLine
         If ( strCommand = &#8220;r&#8221; ) Then
            Inst.Resume
         Elseif ( strCommand = &#8220;t&#8221; ) Then
            Inst.Terminate
         Elseif ( strCommand = &#8220;s&#8221; ) Then
            Inst.Suspend
         Else
            wscript.echo &#8220;!!!Nothing done!!!&#8221;
         End If
         If Err <> 0 Then
            PrintWMIErrorThenExit Err.Description, Err.Number, true
         End If
      End If
      wscript.echo
      next
   End If

End Sub

Function PrintStatus(ServiceStatus)
   Select case ServiceStatus
   Case SState_ReadyToRun
         PrintStatus = &#8220;ReadyToRun&#8221;
   Case SState_Active
      PrintStatus = &#8220;Active&#8221;
   Case SState_SuspendedResumable
      PrintStatus = &#8220;SuspendedResumable&#8221;
   Case SState_Dehydrated
      PrintStatus = &#8220;Dehydrated&#8221;
   Case SState_Completed
      PrintStatus = &#8220;Completed&#8221;
   Case SState_SuspendedNotResumable
      PrintStatus = &#8220;SuspendedNotResumable&#8221;
   Case SState_InBreakpoint
      PrintStatus = &#8220;InBreakpoint&#8221;
   Case Else
      PrintStatus = &#8220;Unknown&#8221;
   End Select
End Function

Sub PrintWMIErrorThenExit(strErrDesc, ErrNum, ContinueOnError)
   On Error Resume Next
   Dim objWMIError : Set objWMIError =   CreateObject(&#8221;WbemScripting.SwbemLastError&#8221;)

   If ( TypeName(objWMIError) = &#8220;Empty&#8221; ) Then
      wscript.echo strErrDesc &#038; &#8221; (HRESULT: &#8221; &#038; Hex(ErrNum) &#038; &#8220;).&#8221;
   Else
      wscript.echo objWMIError.Description &#038; &#8220;(HRESULT: &#8221; &#038; Hex(ErrNum) &#038; &#8220;).&#8221;
      Set objWMIError = nothing
   End If

   If(ContinueOnError=false) Then
      wscript.quit 0
   End If
End Sub

Sub PrintUsage()
   WScript.Echo &#8220;Usage:&#8221; + Chr(10) + Chr(10) + _
   &#8220;cscript ManageActiveOrchestrations.vbs <AssemblyName> [yes|no]&#8221; + _
   Chr(10) + Chr(10) + &#8221; Where: &#8221; + Chr(10) + _
   &#8221;  <AssemblyName> = The Name of the Assembly.&#8221; + Chr(10) + _
   &#8221;  [yes|no] = Show dialog to terminate/suspend/resume instances.&#8221; + Chr(10)
End Sub
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/05/02/manage-active-orchestration-instances/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BizTalk 2006 - Manage application references</title>
		<link>http://blog.tiews.info/2008/05/02/biztalk-2006-manage-application-references/</link>
		<comments>http://blog.tiews.info/2008/05/02/biztalk-2006-manage-application-references/#comments</comments>
		<pubDate>Fri, 02 May 2008 20:35:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Biztalk]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.tiews.info/?p=13</guid>
		<description><![CDATA[For some reason Microsoft has forgotten or missed to add the ability of managing references between BizTalk applications to BTSTask.
Therefore I have written a small command-line tool to overcome this issue.
You can

list the references of an application
list all applications referencing a certain application
delete references
and add references to applications

using this tool.


using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Management;
using System.Reflection;
using [...]]]></description>
			<content:encoded><![CDATA[<p>For some reason Microsoft has forgotten or missed to add the ability of managing references between BizTalk applications to BTSTask.</p>
<p>Therefore I have written a small command-line tool to overcome this issue.</p>
<p>You can</p>
<ul>
<li>list the references of an application</li>
<li>list all applications referencing a certain application</li>
<li>delete references</li>
<li>and add references to applications</li>
</ul>
<p>using this tool.<br />
<span id="more-13"></span></p>
<pre>
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Management;
using System.Reflection;
using System.Text;

using ExplorerOM = Microsoft.BizTalk.ExplorerOM;

namespace ManageAppReferences
{
    class Program
    {
        static int Main(string\[] args)
        {
            string lApplication = string.Empty;
            string lRefApplication = string.Empty;
            CManageAppReferences.RefOperation lOperation =
               CManageAppReferences.RefOperation.Unknown;

            if(!ParseArguments(
                  args,
                  ref lApplication,
                  ref lRefApplication,
                  ref lOperation))
            {
                Usage(false);
                return 1;
            }

            try
            {
                Usage(true);
                CManageAppReferences lMAR = new CManageAppReferences(lApplication);
                lMAR.LogInfo += delegate(string Info) { Console.WriteLine(Info); };

                Console.WriteLine();

                switch(lOperation)
                {
                    case CManageAppReferences.RefOperation.List:
                        lMAR.List();
                        break;
                    case CManageAppReferences.RefOperation.ListBack:
                        lMAR.ListBack();
                        break;
                    case CManageAppReferences.RefOperation.Add:
                        lMAR.Add(lRefApplication);
                        break;
                    case CManageAppReferences.RefOperation.Remove:
                        lMAR.Remove(lRefApplication);
                        break;
                    default:
                        lMAR.List();
                        break;
                }
            }
            catch(Exception ex)
            {
                ConsoleColor oldColor = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(&#8221;Error: &#8221; + ex.Message);
                Console.ForegroundColor = oldColor;
                Console.WriteLine(&#8221;\nCommand failed.&#8221;);
                return 1;
            }

            return 0;
        }

        static bool ParseArguments(
                     string\[] Arguments,
                     ref string Application,
                     ref string RefApplication,
                     ref CManageAppReferences.RefOperation Operation)

        {
            if (Arguments == null ||
                    Arguments.Length == 0 ||
                    Arguments[0].StartsWith(&#8221;/?&#8221;) ||
                    Arguments[0].StartsWith(&#8221;-help&#8221;))
                return false;

            Application = Arguments[0].Trim();

            if (Arguments.Length > 1)
            {
                int lColon = Arguments[1].IndexOf(&#8221;:&#8221;);
                string lAction =
                     (lColon > -1) ?
                     Arguments[1].Substring(0, lColon).ToLower() :
                     Arguments[1].ToLower();

                switch (lAction)
                {
                    case &#8220;listback&#8221;:
                        Operation = CManageAppReferences.RefOperation.ListBack;
                        break;
                    case &#8220;list&#8221;:
                        Operation = CManageAppReferences.RefOperation.List;
                        break;
                    case &#8220;add&#8221;:
                        Operation = CManageAppReferences.RefOperation.Add;
                        RefApplication =
                        (lColon > -1) ?
                        Arguments[1].Substring(lColon + 1) :
                        string.Empty;
                        break;
                    case &#8220;remove&#8221;:
                        Operation = CManageAppReferences.RefOperation.Remove;
                        RefApplication =
                        (lColon > -1) ?
                        Arguments[1].Substring(lColon + 1) :
                        string.Empty;
                        break;
                    default:
                        Operation = CManageAppReferences.RefOperation.List;
                        break;
                }

                if(string.IsNullOrEmpty(RefApplication) &#038;&#038;
                    (Operation == CManageAppReferences.RefOperation.Add ||
                    Operation == CManageAppReferences.RefOperation.Remove)
                    )
                    return false;
            }

            return true;
        }

        static void Usage(bool Small)
        {
            Console.WriteLine(&#8221;\nMarcel Tiews - www.tiews.info&#8221;);
            Console.WriteLine(Assembly.GetExecutingAssembly().GetName().Name +
            &#8220;: Tool to Manage references between BTS-Applications.&#8221;);

            if (Small)
                return;
            Console.WriteLine(&#8221;\nUsage:\n   &#8221; +
            Assembly.GetExecutingAssembly().GetName().Name +
            &#8221; <Application> <Command>&#8220;);

            Console.WriteLine(&#8221;\n   Commands:&#8221;);
            Console.WriteLine(
               &#8221;      List                  - lists referenced applications (default)&#8221;);
            Console.WriteLine(
               &#8221;      ListBack              - lists back referenced applications&#8221;);
            Console.WriteLine(
               &#8221;      Add:<Application>     - adds reference to this application&#8221;);
            Console.WriteLine(
               &#8221;      Remove:<Application>  - removes reference to this application&#8221;);
            Console.WriteLine(&#8221;\n&#8221;);
        }

        public class CManageAppReferences
        {
            public enum RefOperation { Unknown, List, ListBack, Add, Remove }
            public delegate void LogInfoHandler(string Info);
            public event LogInfoHandler LogInfo;

            private ExplorerOM.Application _Application = null;
            private ExplorerOM.BtsCatalogExplorer _Explorer = null;
            private string _DBConnString = string.Empty;

            public CManageAppReferences(string ApplicationName)
            {
                SetConnectionStringFromWMI();
                _Explorer = new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();
                _Explorer.ConnectionString = _DBConnString;

                _Application = GetApplication(ApplicationName);
            }

            public bool List()
            {
                OnLogInfo(&#8221;References of &#8221; + _Application.Name);

                foreach (ExplorerOM.Application lApp in _Application.References)
                {
                    OnLogInfo(&#8221;   &#8221; + lApp.Name);
                }
                return true;
            }

            public bool ListBack()
            {
                OnLogInfo(&#8221;Back references of &#8221; + _Application.Name);

                foreach (ExplorerOM.Application lApp in _Application.BackReferences)
                {
                    OnLogInfo(&#8221;   &#8221; + lApp.Name);
                }
                return true;
            }

            public bool Add(string AddApplication)
            {
                OnLogInfo(&#8221;Add reference to &#8221; + AddApplication);
                ExplorerOM.Application lAddApp = GetApplication(AddApplication);
                _Application.AddReference(lAddApp);
                _Explorer.SaveChanges();
                OnLogInfo(&#8221;Reference added&#8221;);
                return true;
            }

            public bool Remove(string RemoveApplication)
            {
                OnLogInfo(&#8221;Remove reference to &#8221; + RemoveApplication);
                ExplorerOM.Application lRemApp = GetApplication(RemoveApplication);
                _Application.RemoveReference(lRemApp);
                _Explorer.SaveChanges();
                OnLogInfo(&#8221;Reference removed&#8221;);
                return true;
            }

            private ExplorerOM.Application GetApplication(string ApplicationName)
            {
                ExplorerOM.Application lApp = _Explorer.Applications[ApplicationName];
                if (lApp == null)
                    throw new ApplicationException(&#8221;Application \&#8221;" +
                        ApplicationName + &#8220;\&#8221; not found.&#8221;);
                return lApp;
            }

            private bool SetConnectionStringFromWMI()
            {
                string lServer = string.Empty;
                string lDatabase = string.Empty;
                bool lFound = false;

                using (ManagementObjectSearcher lMOSearcher =
                     new ManagementObjectSearcher())
                {
                    lMOSearcher.Scope =
                     new ManagementScope(@&#8221;root\MicrosoftBizTalkServer&#8221;);
                    lMOSearcher.Query =
                     new SelectQuery(&#8221;select * from MSBTS_GroupSetting&#8221;);

                    foreach (ManagementObject lMOGroupSetting in lMOSearcher.Get())
                    {
                        lServer = lMOGroupSetting["MgmtDbServerName"] as string;
                        lDatabase = lMOGroupSetting["MgmtDbName"] as string;
                        lFound = true;
                        break;
                    }
                }

                if (lFound)
                {
                    SqlConnectionStringBuilder lSB = new SqlConnectionStringBuilder();
                    lSB.DataSource = lServer;
                    lSB.InitialCatalog = lDatabase;
                    lSB.IntegratedSecurity = true;
                    _DBConnString = lSB.ToString();
                }

                return lFound;
            }

            private void OnLogInfo(string Info)
            {
                if (LogInfo != null)
                    LogInfo(Info);
            }
        }
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.tiews.info/2008/05/02/biztalk-2006-manage-application-references/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
