<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>different minds about different platforms</title>
        <link>http://geekswithblogs.net/dirksblog/Default.aspx</link>
        <description>a blog of Dirk Eisenberg (&gt;)</description>
        <language>de-DE</language>
        <copyright>Dirk Eisenberg</copyright>
        <managingEditor>dirk.eisenberg@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>different minds about different platforms</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/dirksblog/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>moved</title>
            <link>http://geekswithblogs.net/dirksblog/archive/2009/08/26/134335.aspx</link>
            <description>Etwas hin und her mit meinem System und nun ist es soweit. Ich habe mich entschlossen meinen Blog auf eine WordPress-Basierende Plattform umzustellen. Jeder Leser, Kommentar und jede Kritik ist willkommen aber in Zukunft auf:&lt;br /&gt;
&lt;a href="javascript:void(0);/*1251319707285*/"&gt;&lt;br /&gt;
&lt;/a&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.dirk-eisenberg.de"&gt;http://www.dirk-eisenberg.de/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;Dank gebührt den Betreiber von geekswithblogs.net für die tolle Engine die ich kostenfrei nutzen durfte.&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134335"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134335" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/134335.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2009/08/26/134335.aspx</guid>
            <pubDate>Wed, 26 Aug 2009 20:47:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/134335.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2009/08/26/134335.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/134335.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/134335.aspx</trackback:ping>
        </item>
        <item>
            <title>enteo v6 - Multi Target Policy</title>
            <category>Frontrange</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2009/06/24/133033.aspx</link>
            <description>Im Rahmen meiner verschiedenen Kundenbesuche werde ich ab und an mit einer sich wiederholenden Frage konfrontiert: Wie kann ich einen sauberen Compliance-Bar erzeugen wenn ich die Software über verschiedene Gruppen zuweisen muss?&lt;br /&gt;
&lt;br /&gt;
Der scheinbar offensichtlichste Weg ober ein Policy-Objekt je Gruppe (eine Zuweisung pro Gruppe) führt hier nicht zum Ziel. Viel einfacher lässt sich das Thema via Multi-Target-Policy-Objekte erreichen. Hierbei handelt es sich um normale &lt;a href="http://www.enteo.com" title=""&gt;enteo&lt;/a&gt; v6 Policy-Objekte die aber nicht ein spezifisches Ziel haben (OU, Gruppe oder Computer) sondern eine Liste von Zielen. Dies kann erreich werden, in dem der Eigenschaften-Dialog einer Policy via Kontext-Menu aufgerufen wird. Hinter dem Reiter "Ziele" verbirgt sich die Liste aller Ziele. &lt;br /&gt;
&lt;br /&gt;
Leider ist diese leistungsfähige Feature nicht so sehr bekannt wie es sein sollte. Als Hintergrund hierzu sollte man wissen das &lt;a href="http://www.enteo.com" title=""&gt;enteo&lt;/a&gt; v6 nur Multi-Target-Policy-Objekte kennt und der Sonderfall eine Policy mit nur einem Target ist. Die Policy auf nur ein Target hat eben nur ein Element in seiner Target-Liste und kenn jederzeit um weitere Elemente wie oben beschrieben erweitert werden. &lt;br /&gt;
&lt;br /&gt;
Einen Pferdefuß gibt es natürlich auch hier und diese möchte ich nicht verheimlichen: Installations-Parameter können nur an Policy und Policy-Instance verändert werden und somit nicht per Target spezifisch konfiguriert werden. Kommt diese Anforderung hinzu, muss wieder der Weg über mehrere Policy-Objekte gewählt werden oder die Parameter werden an jeder einzelnen Policy-Instance spezifisch konfiguriert.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133033"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133033" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/133033.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2009/06/24/133033.aspx</guid>
            <pubDate>Wed, 24 Jun 2009 21:12:55 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/133033.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2009/06/24/133033.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/133033.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/133033.aspx</trackback:ping>
        </item>
        <item>
            <title> new on twitter</title>
            <category>Other</category>
            <category>Frontrange</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2009/06/24/133032.aspx</link>
            <description>Neben den v6 Artikeln in meinem Blog habe ich mir vorgenommen ab und an in twitter kleine Status-Meldungen zu unserem Produkt abzugeben. Wer spass daran hat einfach unter http://www.twitter.com/deisenbe !&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133032"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133032" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/133032.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2009/06/24/133032.aspx</guid>
            <pubDate>Wed, 24 Jun 2009 21:02:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/133032.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2009/06/24/133032.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/133032.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/133032.aspx</trackback:ping>
        </item>
        <item>
            <title>enteo v6 - Package Library</title>
            <category>Frontrange</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2009/06/20/132957.aspx</link>
            <description>Ich habe mich heute entschlossen nach und nach meine privaten v6 Pakete, die ich so gebaut habe und bauen werden frei zur Verfügung zu stellen. Jeder der also interesse an ein paar &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; scripts hat, kann diese inklusive einer Beschreibung wie die entsprechenden Original-Sources zu intergrieren sind hier abrufen:&lt;br /&gt;
&lt;br /&gt;
http://www.dirk-eisenberg.de/DEI/Projects.html&lt;br /&gt;
&lt;br /&gt;
Rückmeldungen zu Problemen oder Fehlern sowie andere Kritik und Anregungen sind herzlich willkommen.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132957"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132957" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/132957.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2009/06/20/132957.aspx</guid>
            <pubDate>Sat, 20 Jun 2009 17:49:25 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/132957.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2009/06/20/132957.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/132957.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/132957.aspx</trackback:ping>
        </item>
        <item>
            <title>GPG für Mail.app</title>
            <category>Apple Mac OS X</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2009/04/21/131341.aspx</link>
            <description>Jeder der via PGP seine Mails einfach unter einem MAC signieren und verschlüssel will, sollte sich folgenden Artikel anschauen: &lt;a href="javascript:void(0);/*1240307481450*/"&gt;http://blog.dirkeinecke.de/2008/01/apple-mail-und-pgp.html&lt;/a&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131341"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131341" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/131341.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2009/04/21/131341.aspx</guid>
            <pubDate>Tue, 21 Apr 2009 16:51:32 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/131341.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2009/04/21/131341.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/131341.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/131341.aspx</trackback:ping>
        </item>
        <item>
            <title>MAC OS X Internals - www.kernelthread.com</title>
            <category>Apple Mac OS X</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2009/01/03/128328.aspx</link>
            <description>Wer schon immer mal eine sehr schön aufbereitete Antwort auf die Frage was ist MAC OS bekommen wollte, sollten diesem Link folgene &amp;gt;&amp;gt;&lt;a href="http://www.kernelthread.com/mac"&gt;hier&lt;/a&gt;&amp;lt;&amp;lt;. Amit Singh der Autor von MAC OS X Internals hat auf seiner &lt;a href="javascript:void(0);/*1230981309571*/"&gt;Website&lt;/a&gt; sehr schon die historie sowie viele technische Details zu diesem Betriebssystem zusammengestellt. Viel Spass beim Lesen.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128328"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128328" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/128328.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2009/01/03/128328.aspx</guid>
            <pubDate>Sat, 03 Jan 2009 18:15:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/128328.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2009/01/03/128328.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/128328.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/128328.aspx</trackback:ping>
        </item>
        <item>
            <title>using System.Security.Principal</title>
            <category>.NET Coding</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/12/19/128068.aspx</link>
            <description>&lt;p&gt;Mit &lt;a title="" href="http://de.wikipedia.org/wiki/.NET" target="_blank"&gt;.NET&lt;/a&gt; 2.0 wurde der namespace System.Security.Principal um ein paar Klassen zur Verwaltung von Accounts erweitert. Hierbei handelt es sich um die gute alte Abstraktion von &lt;font face="Courier New"&gt;LookupAccountSid&lt;/font&gt; und &lt;font face="Courier New"&gt;LookupAccountName&lt;/font&gt;. Diese Funktionen finden sich in den neuen Klassen &lt;font face="Courier New"&gt;NTAccount &lt;/font&gt;und &lt;font face="Courier New"&gt;SecurityIndentifier&lt;/font&gt; wieder. Beide Klassen basieren auf einer Basis-Klasse mit dem Namen &lt;font face="Courier New"&gt;IdentityReference&lt;/font&gt;. Folgendes Beispiel zeigt wie man aus einem User-Account die entsprechende SID erzeugt. Diese Vorgang ist natürlich auch umgedreht möglich:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;NTAccount user = new NTAccount("Administrator");&lt;br /&gt;
SecurityIdentifie sid = null;&lt;br /&gt;
if ( user.IsValidTargetType(typeof(SecurityIdentifier)))&lt;br /&gt;
  sid = (SecurityIdentifier)user.Translate(typeof(SecurityIdentifier));&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128068"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128068" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/128068.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/12/19/128068.aspx</guid>
            <pubDate>Sat, 20 Dec 2008 04:42:51 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/128068.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/12/19/128068.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/128068.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/128068.aspx</trackback:ping>
        </item>
        <item>
            <title>VMWare Fusion: Zwei virtuelle Maschinen über den seriellen Port verbinden</title>
            <category>Virtualization</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/07/27/124059.aspx</link>
            <description>Jeder der schonmal einen Kernel-Mode-Treiber unter Windows geschrieben hat, kam auch mit dem Problem in Berührung diesen zu Debuggen. Das üblich Modell hierfür ist die Verwendung eines Null-Modem-Kabels und einem zweiten Rechner als Debugger. Zum Glück gibt es &lt;a title="" href="http://www.vmware.com"&gt;VMWare&lt;/a&gt; und das ganze kann in zwei virtuellen Maschinen bewerkstelligt werden. Hierfür koppelt man die beiden VMs über einen seriellen Port mit dem Type "Named Pipe". Auch auf der MAC Version ist genau dieses Möglich wie ich nach langem Suchen herausgefunden habe. Den Original-Eintrag findet man &lt;a href="javascript:void(0);/*1217179358839*/"&gt;hier&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Der Trick dabei ist eigentlich nur das die Oberfläche von &lt;a title="" href="http://www.vmware.com"&gt;VMWare&lt;/a&gt; Fusion die benötigten Einstellungen nicht her gibt. Trägt man das ganze in die .vmx-Datei selbst ein funktioniert es. Hier nochmal die Einstellungen:&lt;br /&gt;
&lt;br /&gt;
Auf der Client-Seite:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.present = "TRUE"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.fileType = "pipe"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.pipe.endPoint = "client"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.yieldOnMsrRead = "TRUE"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.startConnected = "TRUE"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.fileName = "/Volumes/Virtual Machines/VMware/Serial/devbox_com1"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
und auf der Server-Seite:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.present = "TRUE"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.fileType = "pipe"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.yieldOnMsrRead = "TRUE"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.startConnected = "TRUE"&lt;/span&gt;&lt;br style="font-family: Courier New;" /&gt;
&lt;span style="font-family: Courier New;"&gt;serial0.fileName = "/Volumes/Virtual Machines/VMware/Serial/devbox_com1"&lt;/span&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124059"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124059" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/124059.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/07/27/124059.aspx</guid>
            <pubDate>Mon, 28 Jul 2008 00:23:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/124059.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/07/27/124059.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/124059.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/124059.aspx</trackback:ping>
        </item>
        <item>
            <title>iPhone Software 2.0: Jailbreak und Unlock mit pwnage 2.0</title>
            <category>Apple Mac OS X</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/07/20/123914.aspx</link>
            <description>Schon ganz ungeduldig habe ich den Blog des &lt;a href="javascript:void(0);/*1216578322412*/"&gt;iphone Dev Teams&lt;/a&gt; beobachtet und auf das Release von pwnage 2.0 gewartet. Dieses Tool soll in der Lage sein bei meinem iPhone 2G den jailbreak und unlock durchzuführen. Um die Spannung zu nehmen, es hat geklappt und für alle die keinen MAC daheim haben, gibt es einen Möglichkeit den unlock auch durchzuführen.&lt;br /&gt;
&lt;br /&gt;
Ein kurz Anleitung wie der Prozess durchzuführen ist findet man &lt;a href="javascript:void(0);/*1216578448001*/"&gt;hier&lt;/a&gt;. Im weiteren Verlauf der Kommentare finden sich auch Links zu den Bootloader. Ich wollte eigenlich nur eine Hürde beschreiben. Wie bekommt man sein iPhone in den DFU mode?&lt;br /&gt;
&lt;br /&gt;
1. iPhone über USB andocken &lt;br /&gt;
2. iPhone über die Tastekombination Power + Home ausschalten (ca 7s)&lt;br /&gt;
3. Power + Home Taste ca zwei weitere Sekunden gedrückt halten&lt;br /&gt;
4. Danach die Power-Taste loslassen und Home gedrückt halten bis iTunes das Geräte im Recovery erkennt. Der Monitor des iPhones muss schwarz sein.&lt;br /&gt;
&lt;br /&gt;
Danach befindet sich das iPhone im DFU Mode und kann beliebige Images verdauen. Um ein Image (wie das von pwnage erzeugte) einzuspielen, einfach die alt-Taste (auf MAC) oder die CTRL-Taste gedrückt halten und dann auf Restore in iTunes drücken. Jetzt kann ein beliebiges .ipsw ausgewählt werden. So können auch Windows nutzer ihr iPhone unlocken wenn sie ein passendes .ipsw haben.&lt;br /&gt;
&lt;br /&gt;
 &lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123914"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123914" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/123914.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/07/20/123914.aspx</guid>
            <pubDate>Mon, 21 Jul 2008 01:35:31 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/123914.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/07/20/123914.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/123914.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/123914.aspx</trackback:ping>
        </item>
        <item>
            <title>Virtual Shadow Copy Services - Create Shadow Copy</title>
            <category>Coding</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/04/21/121470.aspx</link>
            <description>&lt;font color="#010001" size="2"&gt;
&lt;p&gt;Einige Abende haben mich nun die icht mehr ganz so neuen Virtual Shadow Copy Services beschäftigt. Für alle die genauso wie ich eine Shadow Copy einer Partition anlegen wolle um mit ihrer Platte irgendetwas in einem stabilien Zustand zu bewerkstelligen sollte dieser Code hilfreich sein. Das Ziel des hier abgebildeten Codes soll es sein eine Virtual Shadow Copy einer Partition zu erzeugen und mit Hilfe von Win32-Apis auf diese zuzugreifen. Der Code beinhaltet natürlich viel zu wenig Error-Handling und achtet auch nicht auf die korrekte Freigabe von Resourcen. Nun aber los:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;CoInitializeEx( NULL, 0 );&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Zuerst muss COM initialisiert wert, dazu muss man wohl nichts mehr sagen.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;IVssBackupComponents&lt;/font&gt;&lt;font size="2"&gt;* &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;NULL&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;font size="2"&gt; ( &lt;/font&gt;&lt;font color="#010001" size="2"&gt;FAILED&lt;/font&gt;&lt;font size="2"&gt;( &lt;/font&gt;&lt;font color="#010001" size="2"&gt;CreateVssBackupComponents&lt;/font&gt;&lt;font size="2"&gt;( &amp;amp;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; ) ) )&lt;br /&gt;
&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;  return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; 1;&lt;br /&gt;
&lt;/font&gt;&lt;em&gt;Um überhaupt mit dem VSS-Api arbeiten zu können wird ein Pointer auf ads BackupComponents-Interface benötigt. Dieses Objekte stellt dann Methoden zur Verfügung um VSS zur Arbeit zu überreden. Wichtig bei allen folgenden Methoden-Aufrufen ist die Reihenfolge. Hier legt Microsoft genaue Abläufe fest die umbedingt eingehalten werden müssen. Wer sich nicht daran hält wird mit Error-Codes bestraft (ich habs probiert).&lt;/em&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;InitializeForBackup&lt;/font&gt;&lt;font size="2"&gt;( &lt;/font&gt;&lt;font color="#010001" size="2"&gt;NULL&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; );&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Nachdem wir Zugriff auf das BackupComponents-Objekt erhalten haben, ist die erste Amtshandlung dem System zu sagen wir wollen ein Backup machen. Hierzu muss die Methode InitializeForBackup aufgerufen werden. Erst hierdurch können die nachfolgenden Methoden aufgerufen werden.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;SetContext&lt;/font&gt;&lt;font size="2"&gt;( &lt;/font&gt;&lt;font color="#010001" size="2"&gt;VSS_CTX_BACKUP&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; );&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Dem System ist im dritten Schritt zu sagen welche Art von Backup und damit welche Art von Snapshot erzeugt werden soll. Hier gibt es verschiedene Möglichkeit, grundsätzlich sind aber zwei zu Unterscheide. Eine Variante bezieht die sogenannten Writer mit ein und die andere eben nicht. Writer stellen Userland-Applikation dar die auf bestimmte Aktionen des VSS-Systems reagieren und vor einem Backup bestimmte Aktionen zu beenden. Datenbanken würden alle wichtigen Informationen noch auf die Platte schreiben damit die Datenbank auch in einem brauchbaren Zustand ist. Hat man Softare die keinen VSS-Support bietet, muss wohl der Weg über Stop-Service und Start-Service eben dieser gegangen werden. Erst danach ist es ratsam eine Shadow-Copy zu erzeugen. Wie man Writer schreibt werde ich einem anderen Eintrag versuchen darzustellen.&lt;/em&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;IVssAsync&lt;/font&gt;&lt;font size="2"&gt;* &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pWriteMetaData&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;NULL&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;GatherWriterMetadata&lt;/font&gt;&lt;font size="2"&gt;( &amp;amp;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pWriteMetaData&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; );&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pWriteMetaData&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;Wait&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;();&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pWriteMetaData&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;Release&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;();&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Da wir Writer-Aktionen in unser Backup einbeziehen, müssen auch die Meta-Daten über diese abgefragt werden. Hierdurch erlangt das System genau Informationen welche Writer wie und wann benachrichtigt werden müssen. Diese Aktion kann durchaus etwas länger dauer. Aus diesem Grund wird hierfür eine Pointer für assynchrone Operationen zurückgegeben mit dessen Hilf das Ende abgewartet werden kann. &lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;VSS_ID&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#010001" size="2"&gt;snapshotSetId&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;StartSnapshotSet&lt;/font&gt;&lt;font size="2"&gt;( &amp;amp;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;snapshotSetId&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; );&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;VSS sieht die Sicherung des geamten Storage-Systems zu einem Zeitpunkt vor, daher reden wir nicht von einem Snapshot eines spezifischen Volumes sondern eine SnapShot-Set der eine Liste von einzubeziehenden Volumes verwaltet. Dadurch ist es Möglich z.B. die Partition für mdf und ldf in einem Snapshot-Set zu fixieren und später einfach zu sichern.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;VSS_ID&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#010001" size="2"&gt;SnapShotId&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;AddToSnapshotSet&lt;/font&gt;&lt;font size="2"&gt;( &lt;/font&gt;&lt;font color="#010001" size="2"&gt;L&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;"F:\\"&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#010001" size="2"&gt;GUID_NULL&lt;/font&gt;&lt;font size="2"&gt;, &amp;amp;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;SnapShotId&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; );&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Haben wir den Container, das SnapShot-Set angelegt, müssen jetzt noch die einzelnen Targets hinzugefügt werden. Die einfachste Methode ist es via Laufwerksbuchstaben eine ganze Partition hinzuzufügren. Dieser Vorgang kann mehrfach für andere Volumes wiederholt werden.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;SetBackupState&lt;/font&gt;&lt;font size="2"&gt;( &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;false&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#010001" size="2"&gt;VSS_BT_FULL&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; );&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Da auch inkrementielle Backups vorgesehen sind, ist noch die Art und Weise des Backups zu definieren. In diesem Beispiel wollen wir ein Full-Backup aller Dateien machen. Es gibt auch die Möglichkeit Dateien einzuschränken.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;IVssAsync&lt;/font&gt;&lt;font size="2"&gt;* &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pPrepare&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;NULL&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;PrepareForBackup&lt;/font&gt;&lt;font size="2"&gt;( &amp;amp;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pPrepare&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; );&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pPrepare&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;Wait&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;();&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pPrepare&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;Release&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;();&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Jetzt nähern wir uns dem Punkt der Wahrheit, dem VSS-System wird mitgeteilt das sich alle Writer und Provider auf das Backup vorbereiten müssen. Kurz darauf folgt dann die eigentlich Erzeugung des Snapshots.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;IVssAsync&lt;/font&gt;&lt;font size="2"&gt;* &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pDoShadowCopy&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;NULL&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;DoSnapshotSet&lt;/font&gt;&lt;font size="2"&gt;( &amp;amp;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pDoShadowCopy&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt; );&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pDoShadowCopy&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;Wait&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;();&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;pDoShadowCopy&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;Release&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;();&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Mit der Methode DoSnapshotSet wird dann für jede Komponente des Sets ein SnapShot erzeugt. Hierbei sorgt das Betriebssystem für die Konsistenz der Daten.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;VSS_SNAPSHOT_PROP&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#010001" size="2"&gt;props&lt;/font&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font size="2"&gt;;&lt;br /&gt;
&lt;/font&gt;&lt;font color="#010001" size="2"&gt;hr&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;GetSnapshotProperties&lt;/font&gt;&lt;font size="2"&gt;( &lt;/font&gt;&lt;font color="#010001" size="2"&gt;SnapShotId&lt;/font&gt;&lt;font size="2"&gt;, &amp;amp;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;props&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt; );&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Nun fehlt nur noch die Information für den Zugriff via Win32-Api. Hierfür stellt die abgerufene Struktur eine Device-Pfad zur Verfügung auf den vie CreateFile und anderen IO-Operation zugegriffen werden kann.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#010001" size="2"&gt;pBackupComponents&lt;/font&gt;&lt;font size="2"&gt;-&amp;gt;&lt;/font&gt;&lt;font color="#010001" size="2"&gt;Release&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;();&lt;/font&gt;&lt;br /&gt;
&lt;em&gt;Nur noch das Interface release und fertig.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Hinweis: In diesem Beispiel wurde ein temporärer Snapshot angelegt, d.h. wenn dieser nicht mehr benötigt wird, verschwindet dieser. Auch ein Restart des VSS-Service lässt den Snapshot verschiedenen. Will man persistente Snapshots, müssen die Flags entsprechend umkonfiguriert werden.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Mit dem Tool dosdev lassen sich so erzeugte Snapshots auch mounten und einem Laufwerksbuchstaben zuordnen. Mehr Informationen hierzu gibt es auf folgenden Seiten: &lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;em&gt;Aldi Olteans Blog &lt;a href="http://blogs.msdn.com/adioltean/archive/2006/09/18/761515.aspx"&gt;(1)&lt;/a&gt; &lt;a href="http://blogs.msdn.com/adioltean/archive/2005/10/04/477164.aspx"&gt;(2)&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
    &lt;li&gt;&lt;em&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cebf3c7c-7ca5-408f-88b7-f9c79b7306c0&amp;amp;DisplayLang=en"&gt;Downlod von dosdev&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Ich werde in den nächsten Artikeln versuchen Schritt für Schritt andere Funktionen auf C++-Ebene zu beschreiben. Hierbei werden Themen wie das Schreiben von VSS-Writern und VDS-Hardware-Providern adressiert. &lt;/em&gt;&lt;/p&gt;
&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121470"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121470" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/121470.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/04/21/121470.aspx</guid>
            <pubDate>Tue, 22 Apr 2008 02:07:23 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/121470.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/04/21/121470.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/121470.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/121470.aspx</trackback:ping>
        </item>
        <item>
            <title>enteo v6 - Part 2 - CMDB Eigenschaften verwenden</title>
            <category>Frontrange</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/04/19/121376.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;Ich bekommen immer mal wieder anfragen wie man von einem &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; v6 Objekt wie dem Computer Parameter auslesen kann und diese im Skript verwendet werden. Vor einiger Zeit habe ich dazu mal einen Artikel im &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt;-Forum gepostet. Dieser beschreibt nicht nur wie man die Properties ausliest, sondern wie mit Hilfe eines &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; Scripts verschiedene Werte gesetzt werden können. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;a href="http://forum.enteo.com/showpost.php?p=13988&amp;amp;postcount=11"&gt;&amp;gt;&amp;gt; Viel Spass mit dem Artikel &amp;lt;&amp;lt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121376"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121376" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/121376.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/04/19/121376.aspx</guid>
            <pubDate>Sat, 19 Apr 2008 15:46:39 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/121376.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/04/19/121376.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/121376.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/121376.aspx</trackback:ping>
        </item>
        <item>
            <title>enteo v6 - Part 1 - Klassifizierung von Befehlen</title>
            <category>Frontrange</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/04/06/121077.aspx</link>
            <description>Im ersten Teil der &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; Reihe möchte ich ein Feature genau beschreiben was hier und da vielleicht in Vergessenheit geraten ist. Die Möglichkeit Befehle in der &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; Script-Sprache zu klassifizieren gibt es schon sehr lange. Ich glaube die Funktion wurde mit dem NT-Support in das Produkt aufgenommen. Wozu braucht man das aber nun und wie funktioniert es:&lt;br /&gt;
&lt;br /&gt;
Wozu:&lt;br /&gt;
&lt;br /&gt;
Oftmals darf der angemeldete Benutzer nicht viel am System verändern aber das Logon-Verhalten des Benutzer steuert eigentlich indirekt die Installation. Daher gibt es die Möglichkeit Aufgaben an einen Dienst zu delegieren und somit Änderungen die administrative Rechte benötigen durchzuführen. &lt;br /&gt;
&lt;br /&gt;
Wie:&lt;br /&gt;
&lt;br /&gt;
(Fast) Jeder Befehl lässt sich im Scrip-Editor klassifizieren. Hierfür stehen folgende Möglichkeiten zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;immer ausführen &lt;/li&gt;
    &lt;li&gt;maschinenbezogen &lt;/li&gt;
    &lt;li&gt;maschinenbezogen per Service &lt;/li&gt;
    &lt;li&gt;userbezigen &lt;/li&gt;
    &lt;li&gt;userbezigen per Service &lt;/li&gt;
&lt;/ul&gt;
Für die Bewertung wann welche Klassifizierung verwendet wird, ist wichtig die Trennung zwischen Benutzerteil und Maschinenteil zu verstehen. Jedes &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; Script besteht immer aus einem Benutzer und Maschinenteil, egal ob man das sieht oder nicht. Bei der Installation des Paketes muss jetzt entschieden werde, welche Befehle ausgeführt werden müssen. Es gibt die Möglichkeit das Befehle im Rahmen des Maschinenteils oder im Rahmen des Benutzerteils ausgeführt werden. Diese Entscheidung muss entweder der Service-Installer oder der Auto-Installer, wobei der Service-Installer nur die Maschinenteile installieren kann und keine Benutzerteile da es ja keinen angemeldetet Benutzer gibt. Also wann wird nun was ausgeführt:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-WEIGHT: bold"&gt;immer ausführen:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;wird durch den ServiceInstaller oder den AutoInstaller ausgeführt &lt;/li&gt;
    &lt;li&gt;wird während der Installation des Benutzerteils als auch des Maschinenteils ausgeführt &lt;/li&gt;
    &lt;li&gt;wird im Kontext des jeweiligen Installers ausgeführt &lt;/li&gt;
&lt;/ul&gt;
&lt;span style="FONT-WEIGHT: bold"&gt;maschinenbezogen:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;wird durch den ServiceInstaller oder den AutoInstaller ausgeführt &lt;/li&gt;
    &lt;li&gt;wird nur während der Installation des Maschineteils ausgeführt &lt;/li&gt;
    &lt;li&gt;wird im Kontext des jeweiligen Installers ausgeführt &lt;/li&gt;
&lt;/ul&gt;
&lt;span style="FONT-WEIGHT: bold"&gt;maschinenbezogen per Service:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;wird durch den ServiceInstaller oder den AutoInstaller ausgeführt &lt;/li&gt;
    &lt;li&gt;wird nur während der Installation des Maschinenteils ausgeführt &lt;/li&gt;
    &lt;li&gt;wird im Kontext des Services ausgeführt &lt;/li&gt;
&lt;/ul&gt;
&lt;span style="FONT-WEIGHT: bold"&gt;userbezogen:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;wird nur durch den AutoInstaller ausgeführt &lt;/li&gt;
    &lt;li&gt;wird nur währned der Installation des Benutzerteils ausgeführt &lt;/li&gt;
    &lt;li&gt;wird im Kontext des AutoInstallers ausgeführt &lt;/li&gt;
&lt;/ul&gt;
&lt;span style="FONT-WEIGHT: bold"&gt;userbezogen per Service:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;wird nur durch den AutoInstaller ausgeführt &lt;/li&gt;
    &lt;li&gt;wird nur währned der Installation des Benutzerteils ausgeführt &lt;/li&gt;
    &lt;li&gt;wird im Kontext des Service ausgeführt &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das folgende Beispiel soll das Verhalten verdeutlichen. Ein skript bestehend aus:&lt;/p&gt;
&lt;p&gt;MsgBox("Immer ausführen")&lt;br /&gt;
MsgBox("Workstationbezogen")&lt;br /&gt;
MsgBox("Userbezogen")&lt;/p&gt;
&lt;p&gt;wird wie folgt ausgeführt wenn es nocht nicht installiert ist:&lt;/p&gt;
&lt;p&gt;Der Benutzer meldet sich an alos muss der Maschinen und der Benutzerteil installiert werden. Es ist ja noch nichts auf dem Client ausgeführt wurden. Es erscheinen also alle 3 Message-Boxen auf dem Bildschirm des Benutzers. &lt;/p&gt;
&lt;p&gt;Nach dieser Installation würde sich Benutzer 2 anmelden:&lt;/p&gt;
&lt;p&gt;Der Benutzer meldet sich an, wobei jetzt nur noch der Benutzerteil des neuen Benutzers installiert werden muss. Der Maschinenteil ist ja schon auf dem System. Also erscheinen 2 Message-Box auf dem Desktop des Benutzers (MsgBox("Immer ausführen") und MsgBox("Userbezogen")). &lt;/p&gt;
&lt;p&gt;Mit diesem Wissen kann man jetzt mal die Wirkung RegLoad-Befehl erforschen, insbesondere wenn dieser auf "Immer ausführen" steht und sowohl Teile in HKEY_CURRENT_USER als auch HKEY_CURRENT_MACHINE verändert. Fragen dazu dürfen gerne als Kommentar gestellt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;span style="FONT-WEIGHT: bold"&gt;&lt;/span&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121077"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121077" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/121077.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/04/06/121077.aspx</guid>
            <pubDate>Sun, 06 Apr 2008 17:54:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/121077.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/04/06/121077.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/121077.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/121077.aspx</trackback:ping>
        </item>
        <item>
            <title>enteo v6</title>
            <category>Frontrange</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/04/06/121076.aspx</link>
            <description>Ich habe lange überlegt ob ich in diesem Block auch die Produkte meines Arbeitgebers einbeziehen soll und habe mich diese Woche dafür entschieden. Dabei geht es nicht um Werbung für die &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; Produktlinie sondern um interessante Funktionen die dem ein oder anderem Admin das Leben erleichtern werden. Ich werde in unregelmäßigen Abständen interessante Thema aus der &lt;a title="" href="http://www.enteo.com"&gt;enteo&lt;/a&gt; Produktfamilie herausgreifen und hoffentlich wertvolle Tips geben. Das ersetzt aber nicht die Schulung, den Support und das &lt;a href="http://forum.enteo.com"&gt;enteo Support-Forum&lt;/a&gt;.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121076"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121076" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/121076.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/04/06/121076.aspx</guid>
            <pubDate>Sun, 06 Apr 2008 17:41:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/121076.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/04/06/121076.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/121076.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/121076.aspx</trackback:ping>
        </item>
        <item>
            <title>Debian Repository für iSCSI Enterprise Target</title>
            <category>Coding</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/03/02/120135.aspx</link>
            <description>Jeder der eine standard etch Installation sein eigen nennt kann jetzt entwerder via Apt oder per Download ein Debian-Paket für das iSCSI Enterprise Target 0.4.15  installieren. Ich werde in Zukunft diese Paket immer wieder aktualisieren. &lt;br /&gt;
&lt;a href="http://www.dirk-eisenberg.de/DEI/Projects.html"&gt;&lt;br /&gt;
hier gehts zum Paket&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Wer selbst mal Pakete erstellen und APT-Repositories aufsetzen möcht, dem helfen vielleicht die folgenden Informationen:&lt;br /&gt;
&lt;a href="http://www.debian-administration.org/articles/286"&gt;&lt;br /&gt;
Setting up your own APT repository with upload support&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.ibm.com/developerworks/linux/library/l-debpkg.html"&gt;Create Debian Linux packages&lt;/a&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120135"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=120135" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/120135.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/03/02/120135.aspx</guid>
            <pubDate>Mon, 03 Mar 2008 00:56:22 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/120135.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/03/02/120135.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/120135.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/120135.aspx</trackback:ping>
        </item>
        <item>
            <title>Dynamische Libraries mit dem Applikations-Bundle verteilen</title>
            <category>Apple Mac OS X</category>
            <link>http://geekswithblogs.net/dirksblog/archive/2008/02/07/119345.aspx</link>
            <description>auch auf einem Apple Mac nutzt man in der Regel dynamische Bibliotheken um komplexer werdende Software in verschiedene Module aufzuteilen. Wie auch unter Linux ist das aber so ein Sache wenn es dann um die Verteilung des gesamten Produkts geht. Die von Windows bekannte Side-by-Side-Execution greift leider nicht und somit such der Library-Loader eben nicht im  lokalen Verzeichnis nach der Datei. Also was tun. Apple hat zu diesem Zweck dsa Konzept der Bundles. Bundles sind eigentlich nur festgesetzte Verzeichnisstrukturen, die sowieso hinter jeder Applikation die mit XCode erzeugt wird, stehen. In diese Struktur wird die Library an eine bestimmte Stelle gelegt und der Build-Prozess angepasst. Hierzu sind folgende Schritte nötig:&lt;br /&gt;
&lt;br /&gt;
1. Library-Settings so anpassen das beim Linken immer relativ vom Verzeichnis des Executables referenziert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/dirksblog/2811/r_libsettings.jpg"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/dirksblog/2811/r_libsettings.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Hierfür legt man in den Project-Settings des XCode-Projektes den Install-Path der Library wie folgt fest: @executable_path/../Frameworks/yourlib.dylib.&lt;br /&gt;
&lt;br /&gt;
2. Einfühurng eines Custom-Build-Steps beim Erzeugen der eigentlichen Software einführen um die benötigten Libraries zu kopieren.&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/dirksblog/2811/r_buildstep.jpg" alt="" /&gt;&lt;br /&gt;
&lt;br /&gt;
Hierfür nehmen wir die Croos-Referenz auf das Library-Projekt aus dem letzen Beitrag wieder her und ziehen die sich darin befindliche .dylib auf den eben erzeugte Custom-Build-Step (sieh Abbildung).&lt;br /&gt;
&lt;br /&gt;
Wird nun das Hauptprojekt erzeugt, entsteht immer ein Applikations-Bundle was via Drag-n-Drop vom Benutzer installiert werden kann ohne das aufwändig Setupskripte Libraries an andere Stellen kopieren müssen. Das ganze ist dann nun nur noch hübsch in ein Disk-Image zu verpacken und fertig für den Rollout.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119345"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119345" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dirksblog/aggbug/119345.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dirk Eisenberg</dc:creator>
            <guid>http://geekswithblogs.net/dirksblog/archive/2008/02/07/119345.aspx</guid>
            <pubDate>Thu, 07 Feb 2008 06:03:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dirksblog/comments/119345.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dirksblog/archive/2008/02/07/119345.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dirksblog/comments/commentRss/119345.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dirksblog/services/trackbacks/119345.aspx</trackback:ping>
        </item>
    </channel>
</rss>