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

<channel>
	<title>Markus Bäker &#187; adds</title>
	<atom:link href="http://www.mbaeker.de/tag/adds/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mbaeker.de</link>
	<description>Use %~dp0 !!!</description>
	<lastBuildDate>Tue, 31 Jan 2012 10:49:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Profilepfad per Batch-Datei auslesen</title>
		<link>http://www.mbaeker.de/2011/06/profilepfad-per-batch-datei-auslesen/</link>
		<comments>http://www.mbaeker.de/2011/06/profilepfad-per-batch-datei-auslesen/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 18:51:30 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[Batchdatei]]></category>
		<category><![CDATA[HAL]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=554</guid>
		<description><![CDATA[Bei einigen Automatisierungen ist es notwendig den Profilpfad eines Benutzers auszulesen und einen eventuellen DFS Pfad in einen physikalischen Pfad aufzulösen. Hierfür habe ich eine kleine Batch-Datei geschrieben: Der Profilpfad wird in Zeile 3 mit Hilfe von adfind anhand des Benutzernamens ermittelt, per for ausgewertet und an eine Umgebungsvariable übergeben. Diese wird in Zeile 7 [...]]]></description>
			<content:encoded><![CDATA[<p>Bei einigen Automatisierungen ist es notwendig den Profilpfad eines Benutzers auszulesen und einen eventuellen DFS Pfad in einen physikalischen Pfad aufzulösen.</p>
<p>Hierfür habe ich eine kleine Batch-Datei geschrieben:</p>
<pre class="brush: plain; title: ; notranslate">
@echo off
set samaccountname=%~1
for /f &quot;tokens=* usebackq&quot; %%a in (`AdFind.exe -f &quot;samaccountname=%samaccountname%&quot; profilePath /list`) do (
set profilePath=%%a
)

for /f &quot;delims=&lt;&gt; usebackq tokens=1,2,3,4,5&quot; %%a in (`dfsutil diag viewdfspath %profilepath%`) do (
     if NOT %%e.==. set profilePath=%%e
)

echo %profilePath%
</pre>
<p>Der Profilpfad wird in Zeile 3 mit Hilfe von adfind anhand des Benutzernamens ermittelt, per for ausgewertet und an eine Umgebungsvariable übergeben.<br />
Diese wird in Zeile 7 an dfsutil übergeben, dass mit dem Befehl diag den physikalischen Pfad anzeigt (ermittelt mit dem aktuellen Standort). Die Ausgabe wird erneut mittels for ausgewertet, wobei die Zeilen an den Größer- und Kleinerzeichen getrennt werden. An fünfter Stelle steht dabei der physikalische Pfad. Handelt es sich bei dem Profilpfad um keinen DFS basierten, dann ist die fünfte Stelle leer und wird daher nicht an die Variable übergeben.</p>
<p>Innerhalb einer anderen Batch-Datei kann diese einfach per call getprofilepath.cmd SAMACCOUNTNAME aufgerufen und die Variable profilePath später weiterverwendet werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/06/profilepfad-per-batch-datei-auslesen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADDS: Nicht gel&#246;schtes Profil beim Abmelden</title>
		<link>http://www.mbaeker.de/2011/03/adds-nicht-gelschtes-profil-beim-abmelden/</link>
		<comments>http://www.mbaeker.de/2011/03/adds-nicht-gelschtes-profil-beim-abmelden/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 17:59:06 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Active Directory Domain Service]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[GPO]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[Winlogon]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=419</guid>
		<description><![CDATA[Probembeschreibung: In einigen sichereren Umgebungen sollen servergespeicherte Profile beim Abmelden gelöscht werden. Nach einem Upgrade auf IE8 war dies bei einem Kunden nicht mehr der Fall. Es blieben immer Reste von Anwendungsdateien zurück. Im Speziellen fiel dabei die index.dat vom IE8 auf. Fehleranalyse: Um der Ursache auf den Grund zu gehen, wurde das Debugging bei [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="icon-12" border="0" alt="icon-12" align="left" src="http://www.mbaeker.de/wp-content/uploads/2011/03/icon-12.png" width="64" height="64" />Probembeschreibung:</strong> In einigen sichereren Umgebungen sollen servergespeicherte Profile beim Abmelden gelöscht werden. Nach einem Upgrade auf IE8 war dies bei einem Kunden nicht mehr der Fall. Es blieben immer Reste von Anwendungsdateien zurück. Im Speziellen fiel dabei die index.dat vom IE8 auf.</p>
<p><strong>Fehleranalyse:</strong> Um der Ursache auf den Grund zu gehen, wurde das Debugging bei der Profilverarbeitung erhöht: Aktivieren des Environment Debug Loggings von Winlogon (<a href="http://support.microsoft.com/kb/221833/en-us"><u>http://support.microsoft.com/kb/221833/en-us</u></a>). Die dabei im Log gefundenen Fehler wurde an Google übergeben <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://www.mbaeker.de/wp-content/uploads/2011/03/wlEmoticon-winkingsmile.png" /></p>
<p><strong>Ursache:</strong> Ursache ist ein Fehler im IE8 mit einer speziellen Gruppenrichtlinieneinstellung (Hinzufügen von Trusted Domains per GPO). Das Problem ist hier beschrieben: <a href="http://support.microsoft.com/kb/974277/en-us"><u>http://support.microsoft.com/kb/974277/en-us</u></a></p>
<p>Der darin beschriebene Workraround mit einer manuellen Registryeinstellung wurde getestet und war erfolgreich. Folgende Einstellung muss durchgeführt werden:</p>
<p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_USE_IETLDLIST_FOR_DOMAIN_DETERMINATION]</p>
<p>&quot;winlogon.exe&quot;=dword:00000000</p>
<p>Diese Einstellung ist natürlich auch per GPO verteilbar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/03/adds-nicht-gelschtes-profil-beim-abmelden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADDS: Nicht suchen, sondern finden!</title>
		<link>http://www.mbaeker.de/2010/02/adds-nicht-suchen-sondern-finden/</link>
		<comments>http://www.mbaeker.de/2010/02/adds-nicht-suchen-sondern-finden/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 21:00:08 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Active Directory Domain Service]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/2010/02/adds-nicht-suchen-sondern-finden/</guid>
		<description><![CDATA[Mir begegnen regelmäßig Situationen, in dem im ADDS und Eventlog bestimmte Dinge nachgeschaut werden müssen. Dabei gehen viele direkt ins Eventlog und suchen nach dem Namen des gesperrten Users oder ähnliches. Gerade in größeren Umgebungen ist diese Vorgehensweise sehr ineffizient und auch nicht präzise, da andere Ereignisse die Suchergebnisse beeinträchtigen können. Daher sollte die Devise [...]]]></description>
			<content:encoded><![CDATA[<p><img title="icon-11" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="64" alt="icon-11" src="http://www.mbaeker.de/wp-content/uploads/2010/02/icon11.png" width="64" align="left" border="0" /> Mir begegnen regelmäßig Situationen, in dem im ADDS und Eventlog bestimmte Dinge nachgeschaut werden müssen. Dabei gehen viele direkt ins Eventlog und suchen nach dem Namen des gesperrten Users oder ähnliches. Gerade in größeren Umgebungen ist diese Vorgehensweise sehr ineffizient und auch nicht präzise, da andere Ereignisse die Suchergebnisse beeinträchtigen können.</p>
<p>Daher sollte die Devise sein: Zuerst Zeitpunkt und Ort herausfinden und dann im Eventlog nachschauen.</p>
<p>Solange am Objekt nichts geändert wurde, ist der letzte Änderungszeitpunkt und Ort eigenschaftsgenau kontrollierbar.</p>
<p>Dazu ein kleines Beispiel: Ein Anwender beschwert sich, dass sein Konto ständig gesperrt wird. Er hat vor einigen Stunden sein Kennwort geändert.</p>
<p>Bevor das Konto zurückgesetzt wird, werden noch schnell wichtige Eigenschaften mittels repadmin extrahiert:</p>
<blockquote><p>repadmin /showobjmeta * &quot;CN=User1,OU=Benutzer,,DC=temp,DC=local&quot; &gt; user.txt</p>
</blockquote>
<p>Dabei werden die Metadaten des per DN angegebenen Objektes (CN=…) auf allen Domänenkontrollern (*) ausgelesen und in eine Textdatei gespeichert.</p>
<p>In der Textdatei steht jetzt pro Domänencontroller eine Liste aller Attribute des Objektes und weitere wesentliche Parameter. Für dieses Beispiel relevant ist die LockoutTime:</p>
<blockquote><p>153243532 Standardname-des-ersten-Standorts\dc1&#160;&#160; 1100175 2010-11-23 11:11:11&#160;&#160; 37 lockoutTime</p>
</blockquote>
<p>Dieser Eintrag zeigt deutlich, dass das Attribut lockoutTime (also wann das Konto gesperrt wurde) auf dem Domänencontroller dc1 um 11:11 geändert wurde.</p>
<p>Somit kann man direkt diese Daten nutzen und ins Securitylog vom dc1 um 11:11 schauen.</p>
<p>&#160;</p>
<blockquote><p>Ereignistyp:&#160;&#160;&#160; Fehlerüberw.</p>
<p>Ereignisquelle: Security</p>
<p>Ereigniskategorie:&#160;&#160;&#160;&#160;&#160; (9)</p>
<p>Ereigniskennung:&#160;&#160;&#160;&#160;&#160;&#160;&#160; 675</p>
<p>Datum:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 23.11.2010</p>
<p>Zeit:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 11:11:11</p>
<p>Benutzer:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; NT-AUTORITÄT\SYSTEM</p>
<p>Computer:&#160;&#160;&#160;&#160;&#160;&#160; dc1</p>
<p>Beschreibung:</p>
<p>Fehlgeschlagene Vorbestätigung:</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Benutzername:&#160;&#160; user1</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Benutzerkennung:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TEMP\user1</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Dienstname:&#160;&#160;&#160;&#160; krbtgt/TEMP.LOCAL</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Vorauthentifizierungstyp:&#160;&#160;&#160;&#160;&#160;&#160; 0&#215;2</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Fehlercode:&#160;&#160;&#160;&#160; 0&#215;18</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Clientadresse:&#160; 192.2.0.10</p>
</blockquote>
<p>Die Sperrung ging als vom Client 192.2.0.10 aus. Eine Rückfrage beim User ergibt direkt, dass er das Kennwort an einem anderen Client geändert hat, aber an dem oben angegebenen Client schon länger angemeldet ist.</p>
<p>Aufwand: 5 Minuten. Wilde Sucherei: Minimal. Präzision: Hoch <img src='http://www.mbaeker.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2010/02/adds-nicht-suchen-sondern-finden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rollout von WinZip 12 mit SCCM</title>
		<link>http://www.mbaeker.de/2009/10/rollout-von-winzip-12-mit-sccm/</link>
		<comments>http://www.mbaeker.de/2009/10/rollout-von-winzip-12-mit-sccm/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 21:24:25 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[Batchdatei]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[msi]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=221</guid>
		<description><![CDATA[Hier mal eine kleine Batchdatei zur Verteilung von WinZip inkl. des Lizenzfiles: @echo off rem alte winzip version deinstallieren MsiExec.exe /X{CD95F661-A5C4-44F5-A6AA-ECDD91C240B5} /l* %systemroot%\deinstall_winzip111.log /qn REBOOT=REALLYSUPPRESS rem copy Lizenzfile to all Users profile md &#8220;%ALLUSERSPROFILE%\WinZip\&#8221; copy /y &#8220;%~dp0winzip.wzmul&#8221; &#8220;%ALLUSERSPROFILE%\WinZip\&#8221; rem neue Version installieren: rem Erklärung der Parameter: rem /noqp = no quickpick icon in system tray [...]]]></description>
			<content:encoded><![CDATA[<p>Hier mal eine kleine Batchdatei zur Verteilung von WinZip inkl. des Lizenzfiles:</p>
<p>@echo off</p>
<p>rem alte winzip version deinstallieren</p>
<p>MsiExec.exe /X{CD95F661-A5C4-44F5-A6AA-ECDD91C240B5} /l* %systemroot%\deinstall_winzip111.log /qn REBOOT=REALLYSUPPRESS</p>
<p>rem copy Lizenzfile to all Users profile</p>
<p>md &#8220;%ALLUSERSPROFILE%\WinZip\&#8221;</p>
<p>copy /y &#8220;%~dp0winzip.wzmul&#8221; &#8220;%ALLUSERSPROFILE%\WinZip\&#8221;</p>
<p>rem neue Version installieren:</p>
<p>rem Erklärung der Parameter:</p>
<p>rem /noqp = no quickpick icon in system tray</p>
<p>rem /notip = no tip of the day</p>
<p>rem /noc4u = don&#8217;t check for updates</p>
<p>rem /nopredefinedjobs = no predefined sample jobs in the Winzip menu</p>
<p>rem ADDDESKTOPICON=0 (Disable the WinZip Desktop icon to the user&#8217;s desktop)</p>
<p>rem ADDMENUGROUP=1 (Add a WinZip Menu Group item to&#8230; Start-&gt; All Programs -&gt; WinZip for each user )</p>
<p>rem ADDSTARTMENU=0 (Disable WinZip to the top of each user&#8217;s Start Menu)</p>
<p>rem  ALLUSERS=1 (per Machine)</p>
<p>rem Accept=Yes (Accept EULA)</p>
<p>msiexec /i &#8220;%~dp0wz121gev.msi&#8221; /qn /l* %systemroot%\install_winzip121.log ADDDESKTOPICON=0 ADDMENUGROUP=1 ADDSTARTMENU=0 ALLUSERS=1 Accept=Yes INSTALLCMD=&#8221;/noqp /notip /noc4u /nopredefinedjobs /autoinstall&#8221; REBOOT=REALLYSUPPRESS /m winzip.mif</p>
<p>In SCCM ein Package mit den Installationsfiles erstellen. Die WinZip MSI Version von der CD kopieren und ins gleiche Verzeichnis die Lizenzdatei hineinstellen. Als Programm die oben beschriebene Batchdatei eintragen. Bei den  Reporting Information wird im Dateinamen winzip eingetragen.</p>
<p>Mein Standardvorgehen:</p>
<ul>
<li>Möglichst keine statischen Pfade, sondern immer Variablen (z.B. %systemroot% anstatt c:\windows)</li>
<li>Möglichst immer absolute Pfade zu Dateien &#8211; man weiss ja nie worauf gerade der aktuelle Pfad zeigt. Daher immer ein %~dp0 (%0: Pfad zu Batchdatei, ~: Falls &#8220;, dann entfernen, d: Laufwerksbuchstabe, p: Pfad, %~dp0: Pfad zur Batchdatei ohne Name der Batchdatei (aber mit \ am Ende))</li>
<li>Möglichst viel loggen, dass hilft beim Debuggen</li>
<li>Möglichst immer die original Setupdateien verwenden. Der Hersteller dürfte dort bereits sein KnowHow eingebaut haben.</li>
</ul>
<p>Noch Fragen? -&gt; Comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2009/10/rollout-von-winzip-12-mit-sccm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firewalltests in VMWare</title>
		<link>http://www.mbaeker.de/2009/05/firewalltests-in-vmware/</link>
		<comments>http://www.mbaeker.de/2009/05/firewalltests-in-vmware/#comments</comments>
		<pubDate>Mon, 04 May 2009 17:33:16 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[VMWare]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[ESX]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[M0n0wall]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=102</guid>
		<description><![CDATA[Um genaue Portangaben bei einer AD Replikation machen zu können, habe ich innerhalb eines VMWare Servers 2.0 eine Testumgebung mit zwei Domänencontroller und einer Firewall dazwischen aufgebaut. Leider ermöglicht VMWare dort nur sehr eingeschränkte Netzwerkeinstellungen (im ESX wäre es einfacher). Als einfache Firewall nutzte ich M0n0wall: Eine sehr kleiner Linuxfirewall mit vielen netten Features.  Bei [...]]]></description>
			<content:encoded><![CDATA[<p>Um genaue Portangaben bei einer AD Replikation machen zu können, habe ich innerhalb eines VMWare Servers 2.0 eine Testumgebung mit zwei Domänencontroller und einer Firewall dazwischen aufgebaut. Leider ermöglicht VMWare dort nur sehr eingeschränkte Netzwerkeinstellungen (im ESX wäre es einfacher).</p>
<p>Als einfache Firewall nutzte ich <a href="http://m0n0.ch/wall/beta.php" target="_blank">M0n0wall</a>: Eine sehr kleiner Linuxfirewall mit vielen netten Features.  Bei VMWare existiert eine fertige Appliance zum herunterladen.</p>
<p>Da ich nur eine interne Netzwerkkarte zur Verfügung hatte, habe ich Monowall drei Netzwerkkarten ins gleiche &#8220;Host-Only&#8221; Netz gegeben. Eine davon wurde als externes Interface definiert und nicht weiter verwendet &#8211; die nächste als internes Interface (LAN) und die letzte als optionales Interface.</p>
<p>Über die Weboberfläche habe ich dann das optionale Interface als LAN2 umbenannt.</p>
<p class="MsoNormal"><span lang="EN-US"></span></p>
<p class="MsoNormal"><span lang="EN-US"> LAN hat eine Adresse im Subnetz 192.168.58.0/24 erhalten. LAN2 eine Adresse im Netzwerk 192.168.59.0/24. Die DCs wurden ebenfalls jeweils in unterschiedliche Subnetze gepackt und als Gateway die jeweilige Adresse der Netzwerkkarte von M0n0wall angegeben.</span></p>
<p class="MsoNormal"><span lang="EN-US">Um die beiden Netzwerkkarten zu verbinden müssen statische Routen in der Firewall hinterlegt werden:<br />
</span></p>
<p class="MsoNormal"><span lang="EN-US">Statische Routen:</span></p>
<p><span lang="EN-US">Interface Network Gateway Description</span></p>
<p><span lang="EN-US"> LAN2 192.168.58.0/24 192.168.58.15</span></p>
<p><span lang="EN-US"> LAN 192.168.59.0/24 192.168.59.1 </span><br />
Normalerweise gehen Pakete auf diesen internen Routen nicht über die Firewall. Um diese doch zu filtern, ist ein Einstellung zu ändern:</p>
<blockquote>
<p class="MsoNormal"><span lang="EN-US">Filtering bridge </span><strong><span style="font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;" lang="EN-US">Enable filtering bridge</span></strong><span lang="EN-US"><br />
<span class="vexpl">This will cause bridged packets to pass through the packet filter in the same way as routed packets do (by default bridged packets are always passed). If you enable this option, you&#8217;ll have to add filter rules to selectively permit traffic from bridged interfaces.</span></span></p></blockquote>
<p>Danach gelten auch die Firewallregeln für den Verkehr zwischen LAN und LAN2.</p>
<p>Mit diesem Setup konnte ich dann genau die notwendigen Ports für die Replikation inklusive der festgelegten dynamischen RPC Ports für die AD Replikation und dem FRS ermitteln.</p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="EN-US"><span class="vexpl"><br />
</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2009/05/firewalltests-in-vmware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User und OUs für ADDS Test</title>
		<link>http://www.mbaeker.de/2009/04/user-und-ous-fur-adds-test/</link>
		<comments>http://www.mbaeker.de/2009/04/user-und-ous-fur-adds-test/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 18:05:51 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=99</guid>
		<description><![CDATA[Ein kleines Skript um 2000 User und 20 OUs mit jeweils weiteren 10 OUs anzulegen: setlocal ENABLEDELAYEDEXPANSION set basedn=OU=Test-OUs,dc=bktest,dc=intern dsadd ou %basedn% for /L %%i in (1,1,20) DO ( dsadd ou &#8220;OU=Test%%i,%basedn%&#8221; FOR /L %%a in (1,1,10) do ( dsadd ou &#8220;OU=Test%%a,OU=Test%%i,%basedn%&#8221; for /L %%e in (1,1,10) do ( dsadd user &#8220;CN=User%%i-%%a-%%e,OU=Test%%a,OU=Test%%i,%basedn%&#8221; -samid User%%i-%%a-%%e -fn [...]]]></description>
			<content:encoded><![CDATA[<p>Ein kleines Skript um 2000 User und 20 OUs mit jeweils weiteren 10 OUs anzulegen:</p>
<blockquote><p>setlocal ENABLEDELAYEDEXPANSION<br />
set basedn=OU=Test-OUs,dc=bktest,dc=intern</p>
<p>dsadd ou %basedn%</p>
<p>for /L %%i in (1,1,20) DO (<br />
dsadd ou &#8220;OU=Test%%i,%basedn%&#8221;<br />
FOR /L %%a in (1,1,10) do (<br />
dsadd ou &#8220;OU=Test%%a,OU=Test%%i,%basedn%&#8221;<br />
for /L %%e in (1,1,10) do (<br />
dsadd user &#8220;CN=User%%i-%%a-%%e,OU=Test%%a,OU=Test%%i,%basedn%&#8221; -samid User%%i-%%a-%%e -fn Test%%a -ln User%%i%%e -pwd T%%i-%%a-%%eest<br />
)<br />
)<br />
)<br />
endlocal</p></blockquote>
<p>Die Variable BaseDN muss entsprechend des eigenen ADDS Aufbaus angepasst werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2009/04/user-und-ous-fur-adds-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zertifikate von ADDS LDAP/SSL Verbindungen testen</title>
		<link>http://www.mbaeker.de/2009/01/zertifikate-von-adds-ldapssl-verbindungen-testen/</link>
		<comments>http://www.mbaeker.de/2009/01/zertifikate-von-adds-ldapssl-verbindungen-testen/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 07:28:56 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=46</guid>
		<description><![CDATA[Um schnell ein Zertifikat eines ADDS Servers zu überprüfen, bietet sich überraschender Weise ein Webbrowser wie der Firefox auf. Trägt man dort in der Adressleiste https://dns-name-des-domänencontrollers:636 ein. Beim Aufruf erscheint unten links das bekannte SSL-Schloss, dass man zur genaueren Inspektion nutzen kann. Aber: Neuere Firefoxversionen verhindern https Verbindungen auf ungewöhnlichen Ports. Daher muss hier eine [...]]]></description>
			<content:encoded><![CDATA[<p>Um schnell ein Zertifikat eines ADDS Servers zu überprüfen, bietet sich überraschender Weise ein Webbrowser wie der Firefox auf. Trägt man dort in der Adressleiste https://dns-name-des-domänencontrollers:636 ein. Beim Aufruf erscheint unten links das bekannte SSL-Schloss, dass man zur genaueren Inspektion nutzen kann.</p>
<p><strong>Aber:</strong> Neuere Firefoxversionen verhindern https Verbindungen auf ungewöhnlichen Ports. Daher muss hier eine Ausnahme für ldaps eingetragen werden:<br />
Um in die erweiterten Einstellungen des Firefoxes zu gelangen muss man in die Adressleiste <code>about:config</code> eingeben. Dort als zusätzlichen Eintrag network.security.ports.banned.override hinzufügen und als Wert den Port 636 hinterlegen (weitere Ports kann man durch Komma getrennt eingeben):</p>
<p><img class="size-full wp-image-45" title="firefox-ansicht-about-config" src="http://www.mbaeker.de/wp-content/uploads/2009/01/firefox-ansicht-about-config.png" alt="firefox-ansicht-about-config" width="491" height="166" /></p>
<p>Details s.a. <a href="http://kb.mozillazine.org/Network.security.ports.banned.override">http://kb.mozillazine.org/Network.security.ports.banned.override</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2009/01/zertifikate-von-adds-ldapssl-verbindungen-testen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpsMgr ADDS 2003 Management Pack Bug</title>
		<link>http://www.mbaeker.de/2009/01/opsmgr-adds-2003-management-pack-bug/</link>
		<comments>http://www.mbaeker.de/2009/01/opsmgr-adds-2003-management-pack-bug/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 17:26:22 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Operations Manager]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[adds]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[scom]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=35</guid>
		<description><![CDATA[Heute konnte ich mir endlich die Zeit nehmen einen Alert im SCOM genauer zu betrachten. Obwohl über 2GB auf der NTDS Platte des DCs frei waren und die Subdomäne nur eine Datenbankgröße von 512MB hat, meldete SCOM regelmäßig, dass die Platte zu voll sei. In diesem Fall sieht die Berechnung folgendermaßen aus: Name der Regel [...]]]></description>
			<content:encoded><![CDATA[<p>Heute konnte ich mir endlich die Zeit nehmen einen Alert im SCOM genauer zu betrachten. Obwohl über 2GB auf der NTDS Platte des DCs frei waren und die Subdomäne nur eine Datenbankgröße von 512MB hat, meldete SCOM regelmäßig, dass die Platte zu voll sei.</p>
<p>In diesem Fall sieht die Berechnung folgendermaßen aus:</p>
<p>Name der Regel im MP: <strong><em>AD Database Drive Free Collection</em></strong></p>
<p>Aktuelle Größen:</p>
<p><em>ntds.dit: 454672 kbytes<br />
ntds.logs: 10240 kbytes</em> (das MP Skript betrachtet nur das edb.log File)</p>
<p>Folgende Defaultparameter werden an das Skript übergeben (sind überschreibbar):<br />
<em>&lt;Threshold_DIT&gt;0.2&lt;/Threshold_DIT&gt; (also 20%)<br />
&lt;Boundary_DIT&gt;500000&lt;/Boundary_DIT&gt;<br />
&lt;Boundary_LOG&gt;200000&lt;/Boundary_LOG&gt;<br />
&lt;Threshold_LOG&gt;0.05&lt;/Threshold_LOG&gt;</em></p>
<p>Die Berechnung sieht so aus (aus dem Skript kopiert):</p>
<p><em>lReserveLog = lSizeDB * CDbl(LOG_THRESHOLD)<br />
If (lReserveLog &lt; LOG_BOUNDARY) Then<br />
lReserveLog = LOG_BOUNDARY<br />
End If<br />
lReserveDB = lSizeDB * CDbl(DIT_THRESHOLD)<br />
If (lReserveDB &lt; DIT_BOUNDARY) Then<br />
lReserveDB = DIT_BOUNDARY<br />
End If</em></p>
<p>Anhand dieses Beispiels:</p>
<ul>
<li>DIT: 454MByte*0.2 -&gt; 90,8MB (&lt;500000) -&gt; Boundary 500MByte</li>
<li>LOG: 454MByte*0,05 -&gt; 22,7MB (&lt;200000) -&gt; Boundary 200MByte</li>
</ul>
<p>Die Berechnung der Logfilegröße basiert auf der ADDS Datenbankgröße (DIT)</p>
<p>Die Logdateien und die DB liegen auf der gleichen Partition. Daher gilt:</p>
<p><em> If (lFreeSpaceDB &lt; (lReserveDB + lReserveLog)) Then<br />
bSuccess = False</em></p>
<p><em> strMessage = &#8220;Free space (&#8221; &amp; lFreeSpaceDB &amp; &#8220;KB) on drive &#8221; &amp;  UCase(Left(strPathDB, 2)) &amp; &#8221; is lower than the required reserved space for AD Database and Log file. It should be at least &#8221; &amp; (lReserveLog + lReserveDB) &amp; &#8221; KBytes.&#8221;</em></p>
<p>Somit muss der freie Platz größer als 700MByte sein. Was in diesem Beispiel zutrifft.</p>
<p>Trotzdem erscheint im Eventlog und im SCOM die Fehlermeldung:</p>
<p><em>AD Database and Log : Free space (2614404KB) on drive D: is lower than the required reserved space for AD Database and Log file.<br />
It should be at least 3182704 KBytes.</em></p>
<p>Wenn man 3182704 durch die DB Größe (454672) teilt erhält man exakt 7. Die entspricht 2+5, d.h. es gibt ein Problem mit dem Komma-Trenner (<em><strong>,</strong></em> in deutsch, <strong><em>.</em></strong> in english)</p>
<p>Ich habe dies überprüft, in dem ich das Skript angepasst habe, damit es die erhaltenen Parameter auch in die Registry speichert (<em>setData</em>..):<br />
Die Boundary Werte sind korrekt, aber Threshold Werte sind auf 5 (log) und 2 (dit) !</p>
<p><em><strong>Lösung:</strong></em></p>
<p>Override auf deutschen DCs mit 0,05 und 0,2</p>
<p><em><strong>Test:</strong></em><br />
Die Datenbankplatte wurde etwas gefüllt. Kurz darauf wurde folgende korrekte Meldung generiert:</p>
<p><em>AD Database and Log : Free space (225996KB) on drive D: is lower than the required reserved space for AD Database and Log file. It should be at least 700000 KBytes</em></p>
<p>Natürlich könnte man als Alternativen Workaround immer die 7fache Größe der Datenbank als freien Speicherplatz bereitstellen, aber gerade wenn man Domänencontroller virtualisiert und die Platten vollständig reserviert, ist dies kein gangbarer Weg. Microsoft sollte hier wie üblich auf die Ländereinstellungen achten! (Oder Nachkommastellen vermeiden. Die Prozentwerte könnten auch als 5% angegeben werden, anstatt 0.05)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2009/01/opsmgr-adds-2003-management-pack-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

