<?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; scripts</title>
	<atom:link href="http://www.mbaeker.de/tag/scripts/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>Diverse Tools f&#252;r SCCM  &#8211; Teil 3</title>
		<link>http://www.mbaeker.de/2011/08/diverse-tools-fr-sccm-teil-3/</link>
		<comments>http://www.mbaeker.de/2011/08/diverse-tools-fr-sccm-teil-3/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 09:31:37 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Batchdatei]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=667</guid>
		<description><![CDATA[Vor über einem Jahr habe ich angefangen meine SCCM Hilfsscripte hier zu veröffentlichen. Da ich noch eine ganze Reihe von diesen Batchdateien habe, kommen jetzt noch einige weitere Posts zu diesem Thema. Im Teil 2 wurde die Batch und vbs Datei vorgestellt, um auf eine Reihe von Clients die Hardwareinventur anzustossen. Dies geht genauso mit [...]]]></description>
			<content:encoded><![CDATA[<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border: 0px;" title="box" src="http://www.mbaeker.de/wp-content/uploads/2011/08/box.png" alt="box" width="58" height="58" align="left" border="0" />Vor über einem Jahr habe ich angefangen meine SCCM Hilfsscripte hier zu veröffentlichen. Da ich noch eine ganze Reihe von diesen Batchdateien habe, kommen jetzt noch einige weitere Posts zu diesem Thema.</p>
<p>Im Teil 2 wurde die Batch und vbs Datei vorgestellt, um auf eine Reihe von Clients die Hardwareinventur anzustossen.</p>
<p>Dies geht genauso mit dem Computer Policy Update:</p>
<p>startmachineupdate.cmd</p>
<pre class="brush: plain; title: ; notranslate">

@echo off
set PC=%1
if .%PC%==. set /p PC=Enter Computer Name to start HINV:
call %~dp0findip.bat %PC%
if %ip%.==. goto fehler
echo Start Machine Policy Update %PC%
cscript.exe //Nologo %~dp0sendsched.vbs {00000000-0000-0000-0000-000000000021}  %PC%
goto ende
:fehler
echo Abbruch, da Rechner %PC% auf ping nicht antwortet.
:ende
set ip=
</pre>
<p>und die dazugehörige startmachineupdateall.cmd:</p>
<pre class="brush: plain; title: ; notranslate">

for /F %%i in ('cscript.exe //NOLOGO %~dp0getcomputer.vbs %1 smsserver sitename') do call %~dp0startmachineupdate.cmd %%i
</pre>
<p>Benötigt dazu wird findip.bat und getcomputer.vbs aus <a href="http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-1/">Teil 1</a> bzw. <a href="http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-2/">Teil 2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/08/diverse-tools-fr-sccm-teil-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCCM: MSI Paket kompatibel machen</title>
		<link>http://www.mbaeker.de/2011/07/sccm-msi-paket-kompatibel-machen/</link>
		<comments>http://www.mbaeker.de/2011/07/sccm-msi-paket-kompatibel-machen/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 17:16:43 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[msi]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/2011/07/sccm-msi-paket-kompatibel-machen/</guid>
		<description><![CDATA[In seltenen Fällen kommt es noch vor, dass man eine alte Software auf einem aktuellen Windows 7 installieren muss. Damals haben die Entwickler nicht mit einem neuen Betriebssystem gerechnet oder erwartet, dass man rechtzeitig neue Lizenzen kauft. Teilweise hängt an der Client Software entsprechende Backend-Systeme, die nicht so einfach aktualisierbar sind. Hat man es somit [...]]]></description>
			<content:encoded><![CDATA[<p><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="lock_open" border="0" alt="lock_open" align="left" src="http://www.mbaeker.de/wp-content/uploads/2011/07/lock_open.png" width="58" height="58" />In seltenen Fällen kommt es noch vor, dass man eine alte Software auf einem aktuellen Windows 7 installieren muss. Damals haben die Entwickler nicht mit einem neuen Betriebssystem gerechnet oder erwartet, dass man rechtzeitig neue Lizenzen kauft. Teilweise hängt an der Client Software entsprechende Backend-Systeme, die nicht so einfach aktualisierbar sind.</p>
<p><a href="http://www.mbaeker.de/wp-content/uploads/2011/07/NotSupported.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="NotSupported" border="0" alt="NotSupported" src="http://www.mbaeker.de/wp-content/uploads/2011/07/NotSupported_thumb.png" width="335" height="161" /></a></p>
<p>Hat man es somit mit einem MSI Paket zu tun, dass einem aufgrund von nichtunterstütztem Betriebssystem den Dienst verweigert (s. Bild),&#160; so kann man verschiedene Wege wählen:</p>
<ul>
<li>Windows selber bietet die Möglichkeit an, die Kompatibilität zu korrigieren. Dazu wählte man im Kontextmenü des MSI-Pakets (“Rechter Mausklick”) den Punkt “Troubleshoot compatibility”. Genutzt wird dabei das Windows 7 eigene “Microsoft Diagnostic Tookit” (msdt.exe) mit dem Bereich PCWDiagnostic. Dieser wäre auch scriptbar. Weitere Informationen findet man unter <a title="http://technet.microsoft.com/de-de/library/ee424379%28WS.10%29.aspx" href="http://technet.microsoft.com/de-de/library/ee424379%28WS.10%29.aspx">http://technet.microsoft.com/de-de/library/ee424379%28WS.10%29.aspx</a> und den entsprechenden weiterführenden Links.</li>
<li>Elegant finde ich auch die Möglichkeit den entsprechenden Check direkt aus dem MSI File zu extrahieren. Dazu ist noch nicht einmal ein MSI Admin Studio oder ähnliches notwendig. Eine VBScript Datei und die Funktionalität des MSI Installers reichen aus. Zu finden ist dieses hilfreiche Skript unter <a title="http://lazynetworkadmin.com/content/view/20/1/" href="http://lazynetworkadmin.com/content/view/20/1/">http://lazynetworkadmin.com/content/view/20/1/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/07/sccm-msi-paket-kompatibel-machen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enteo, Powershell, Status und Ping</title>
		<link>http://www.mbaeker.de/2011/07/enteo-powershell-status-und-ping/</link>
		<comments>http://www.mbaeker.de/2011/07/enteo-powershell-status-und-ping/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 14:40:56 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Enteo]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[Neuinstallation]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=608</guid>
		<description><![CDATA[In diesem Blog-Post werden zwei weitere Komponenten des Scripts vorgestellt: Ping und somit den Status eines Rechners ermitteln und die Ermittlung ob ein Benutzer angemeldet ist. Je nach dem Status des Systems kann ein Rechner sofort neuinstalliert werden (wenn er aus ist, oder er läuft aber an einem Client kein Benutzer angemeldet ist). Sollte ein [...]]]></description>
			<content:encoded><![CDATA[<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border: 0px;" title="gears" src="http://www.mbaeker.de/wp-content/uploads/2011/07/gears1.png" alt="gears" width="105" height="105" align="left" border="0" />In diesem Blog-Post werden zwei weitere Komponenten des Scripts vorgestellt: Ping und somit den Status eines Rechners ermitteln und die Ermittlung ob ein Benutzer angemeldet ist.</p>
<p>Je nach dem Status des Systems kann ein Rechner sofort neuinstalliert werden (wenn er aus ist, oder er läuft aber an einem Client kein Benutzer angemeldet ist). Sollte ein Benutzer angemeldet sein, dann darf eine Neuinstallation nur nach einer gewissen Uhrzeit erzwungen werden (z.B. ausserhalb der normalen Arbeitszeit).</p>
<p>Hier die Funktion um die Erreichbarkeit eines Rechners zu ermitteln:</p>
<pre class="brush: powershell; title: ; notranslate">
function doPing
{param([string]$name)
   $ping = new-object System.Net.NetworkInformation.Ping
   $ping.send($name)
}
</pre>
<p>Als Übergabeparameter wird der Rechnername benötigt. Dies kann alternativ auch die IP Adresse sein. Verwendet wird die NetworkInformation-Class “Ping”. Die Funktion gibt ein Objekt des Typs <a href="http://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingreply_members%28v=vs.85%29.aspx" target="_blank">PingReply</a> zurück. Vergleicht man dessen Eigenschaft mit Success, dann weiß man, ob der Rechner erreichbar ist oder nicht (Beispiel für nicht ereichbar: (doPing $strIP).status -ne &#8220;Success&#8221;).</p>
<p>Die zweite Funktion versucht remote auszulesen, welcher Benutzer aktuell angemeldet ist:</p>
<pre class="brush: powershell; title: ; notranslate">
function getUser
{param([string]$pc)
   ((Gwmi -class Win32_ComputerSystem -ComputerName $pc)| select-object username).username
}
</pre>
<p>Auch hier wird als Parameter der Rechnername mitgegeben. Anstatt .Net/Powershell interne Funktionen zu nutzen, wird eine WMI Abfrage durchgeführt. Im Standard <a href="http://msdn.microsoft.com/en-us/library/aa394102%28v=vs.85%29.aspx" target="_blank">Win32_ComputerSystem</a> Objekt existiert die Eigenschaft UserName. Darin ist der gerade interaktiv angemeldet Benutzer hinterlegt (Consolenbenutzer). Vergleicht man mittels if (-not $username), ob der Wert leer ist, dann kann man einfach feststellen, ob gerade ein Benutzer angemeldet ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/07/enteo-powershell-status-und-ping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re-Import VMs into Hyper-V</title>
		<link>http://www.mbaeker.de/2011/05/re-import-vms-into-hyper-v/</link>
		<comments>http://www.mbaeker.de/2011/05/re-import-vms-into-hyper-v/#comments</comments>
		<pubDate>Tue, 03 May 2011 16:57:21 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Batchdatei]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[Snapshot]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/2011/05/re-import-vms-into-hyper-v/</guid>
		<description><![CDATA[Normaly you can only import a Virtual Machine (VM) into Hyper-V if you have exported it. If you lose your Hyper-V settings or have to import it into a new Hyper-V Server in case of a desaster recovery than you can use the steps descripted in this (and other) blog post: http://blogs.msdn.com/b/robertvi/archive/2008/12/19/howto-manually-add-a-vm-configuration-to-hyper-v.aspx The problem is [...]]]></description>
			<content:encoded><![CDATA[<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border: 0px;" title="tools" src="http://www.mbaeker.de/wp-content/uploads/2011/05/tools.png" border="0" alt="tools" width="99" height="99" align="left" />Normaly you can only import a Virtual Machine (VM) into Hyper-V if you have exported it. If you lose your Hyper-V settings or have to import it into a new Hyper-V Server in case of a desaster recovery than you can use the steps descripted in this (and other) blog post: <a title="http://blogs.msdn.com/b/robertvi/archive/2008/12/19/howto-manually-add-a-vm-configuration-to-hyper-v.aspx" href="http://blogs.msdn.com/b/robertvi/archive/2008/12/19/howto-manually-add-a-vm-configuration-to-hyper-v.aspx">http://blogs.msdn.com/b/robertvi/archive/2008/12/19/howto-manually-add-a-vm-configuration-to-hyper-v.aspx</a></p>
<p>The problem is that you have to handle many long pathes and cryptical GUIDs. I had to do that for a bunch of different VMs and being chronical lacy I created three batch files for it:</p>
<ol>
<li>importVM.cmd “GUID” “Path to Virtual Machine” creates the link and corrects the permissions on the link and the vm folder</li>
<li>importSnapshot.cmd “SnapshotGuid” “VMGuid” “Path to Snapshot” creates the snapshot link and the right permission.</li>
</ol>
<p>Not very impressiv? Well, the third batch files combines this two scripts:</p>
<ol>
<li>addMachine.cmd: Takes the basis path (the path where the sub-folder Virtual Machine, Snapshots exists) and extracts the VM-GUID, all Snapshots-GUIDs and the other pathes to automaticly create the links and permissions.</li>
</ol>
<p>So with one simple command (addMachine.cmd C:\ClusterStorage\Volume4\VM1) you can import the complete VM.</p>
<p>&#8212; addMachine.cmd &#8212;&#8212;</p>
<p><span id="more-454"></span></p>
<pre>setlocal ENABLEDELAYEDEXPANSION

set vmBasisPath=%~1

for /f %%a in ('dir "%vmBasisPath%\Virtual Machines\" /b /ad') do (
  set guid=%%a
)

echo %guid%
call "%~dp0importVM.cmd" %guid% "%vmBasisPath%"

for /f %%a in ('dir "%vmBasisPath%\Snapshots\" /b /ad') do (
  call "%~dp0importSnapshot.cmd" %%a %guid% "%vmBasisPath%\Snapshots"
)

endlocal</pre>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212; importVM.cmd &#8212;&#8212;&#8212;-</p>
<pre>setlocal

set guid=%~1
set vmPath=%~2
set xmlPath=%vmpath%\Virtual Machines\%guid%.xml

mklink "c:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\%guid%.xml" "%xmlpath%"

Icacls "c:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\%guid%.xml" /grant "NT VIRTUAL MACHINE\%GUID%":(F) /L
Icacls "%vmpath%" /grant "NT VIRTUAL MACHINE\%GUID%":(F) /T

Endlocal</pre>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>&#8212; importSnapshot.cmd &#8211;</p>
<pre>setlocal

set guid=%~1
set vmguid=%~2

rem C:\ClusterStorage\Volume4\mcFly2\Snapshots
set snapPath=%~3

if not EXIST "%snapPath%\%guid%.xml" goto ende

Mklink "C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%guid%.xml" "%snapPath%\%guid%.xml"
Icacls C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\%guid%.xml /grant "NT VIRTUAL MACHINE\%vmguid%":(F) /L

:ende
Endlocal</pre>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/05/re-import-vms-into-hyper-v/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Automatisch bestimmte Zertifikate auf Computern l&#246;schen</title>
		<link>http://www.mbaeker.de/2011/04/automatisch-bestimmte-zertifikate-auf-computern-lschen/</link>
		<comments>http://www.mbaeker.de/2011/04/automatisch-bestimmte-zertifikate-auf-computern-lschen/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 17:35:53 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Batchdatei]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[Zertifikates]]></category>
		<category><![CDATA[Zertifikatsvorlage]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=434</guid>
		<description><![CDATA[Es kann vorkommen, dass aufgrund eines Problems mit einer Zertifikatsvorlage alle Zertifikate davon auf den Clients gelöscht werden sollen, um einen sauberen Stand auf den Computern zu haben. Dazu habe ich eine kleine Batchdatei geschrieben, das alle Zertifikate im Computerstore ausliest und anhand der Seriennummer die Vorlage des Zertifikates ermittelt. Stimmt der Name der Vorlage [...]]]></description>
			<content:encoded><![CDATA[<p><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-13" border="0" alt="icon-13" align="left" src="http://www.mbaeker.de/wp-content/uploads/2011/04/icon-13.png" width="64" height="64" />Es kann vorkommen, dass aufgrund eines Problems mit einer Zertifikatsvorlage alle Zertifikate davon auf den Clients gelöscht werden sollen, um einen sauberen Stand auf den Computern zu haben.</p>
<p>Dazu habe ich eine kleine Batchdatei geschrieben, das alle Zertifikate im Computerstore ausliest und anhand der Seriennummer die Vorlage des Zertifikates ermittelt. Stimmt der Name der Vorlage mit dem angegebenen Vorlagenname (hier Vorlagename) überein, dann wird es gelöscht. </p>
<p>Die Batchdatei kann man mit Hilfe einer Gruppenrichtlinie oder einer Softwareverteilung an die Clients verteilen.</p>
<p>&#160;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; hier ausschneiden &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<blockquote><p>@echo off</p>
<p>setlocal ENABLEDELAYEDEXPANSION</p>
<p>rem Aktuelle Zertifikate im My-Store ausgeben (beinhaltet auch den COmputer Store)</p>
<p>certutil -store my &gt; %temp%\store.tmp</p>
<p>rem durch das ergebnis durchgehen</p>
<p>for /f &quot;delims=: tokens=1,*&quot; %%a in (%temp%\store.tmp) do (</p>
<p>&#160; rem seriennummer des aktuellen zertifikates zwischenspeichern</p>
<p>&#160; if %%a.==Seriennummer. (</p>
<p>&#160;&#160;&#160; set seriennummer=%%b</p>
<p>&#160; )</p>
<p>&#160; rem anhand ausgabe der vorlage erkennen ob es eine bestimmte Vorlage hat</p>
<p>&#160; if %%a.==Vorlage. (</p>
<p>&#160;&#160;&#160; echo %%a | findstr /i &quot;Vorlagenname&quot;</p>
<p>&#160;&#160;&#160; if ERRORLEVEL 0 (</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; certutil -delstore my !seriennummer!&#160;&#160;&#160;&#160;&#160; </p>
<p>&#160;&#160;&#160; )</p>
<p>&#160;&#160;&#160; set seriennummer=</p>
<p>&#160; )</p>
<p>)</p>
<p>del %temp%\store.tmp</p>
<p>Endlocal</p>
</blockquote>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; bis hier ausschneiden &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/04/automatisch-bestimmte-zertifikate-auf-computern-lschen/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Direktes &#214;ffnen einer Ansicht in der SCOM Konsole</title>
		<link>http://www.mbaeker.de/2011/03/direktes-ffnen-einer-ansicht-in-der-scom-konsole/</link>
		<comments>http://www.mbaeker.de/2011/03/direktes-ffnen-einer-ansicht-in-der-scom-konsole/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 17:53:05 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Operations Manager]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[autoit]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[scom]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=425</guid>
		<description><![CDATA[Manchmal möchte man die SCOM Konsole direkt mit einer bestimmten Ansicht/View starten. Dies ist zum Beispiel interessant, wenn man die Konsole nutzt, um den aktuellen Systemzustand auf einem großen Monitor dazustellen. Dazu gibt es einen alten, aber immer noch zutreffenden Blogartikel: http://myitforum.com/cs2/blogs/dhite/archive/2007/12/16/starting-the-opsmgr-2007-operations-console-from-the-command-line.aspx Dabei ist zu beachten, dass der Viewname der interne Name der Sicht ist. [...]]]></description>
			<content:encoded><![CDATA[<p><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-11" border="0" alt="icon-11" align="left" src="http://www.mbaeker.de/wp-content/uploads/2011/03/icon-11.png" width="64" height="64" />Manchmal möchte man die SCOM Konsole direkt mit einer bestimmten Ansicht/View starten. Dies ist zum Beispiel interessant, wenn man die Konsole nutzt, um den aktuellen Systemzustand auf einem großen Monitor dazustellen.</p>
<p>Dazu gibt es einen alten, aber immer noch zutreffenden Blogartikel: <a title="http://myitforum.com/cs2/blogs/dhite/archive/2007/12/16/starting-the-opsmgr-2007-operations-console-from-the-command-line.aspx" href="http://myitforum.com/cs2/blogs/dhite/archive/2007/12/16/starting-the-opsmgr-2007-operations-console-from-the-command-line.aspx">http://myitforum.com/cs2/blogs/dhite/archive/2007/12/16/starting-the-opsmgr-2007-operations-console-from-the-command-line.aspx</a></p>
<p>Dabei ist zu beachten, dass der Viewname der interne Name der Sicht ist. Diesen bekommt man teilweise nur heraus, wenn das Management Pack in de Authoring Console öffnet.</p>
<p>Alternativ kann man auch per AutoIT eine kleine EXE kompilieren, die die Konsole öffnet und per simulierte Tastendrücke die entsprechende Sicht öffnet.</p>
<p>Ein Beispielskipt kann so aussehen:</p>
<blockquote><p>Run(@ProgramFilesDir &amp; &quot;\System Center Operations Manager 2007\Microsoft.MOM.UI.Console.exe&quot;)     <br />WinWaitActive(&quot;System Center Operations Manager 2007 – SITENAME&quot;)      <br />Sleep(5000) ;five seconds      <br />WinActivate(&quot;System Center Operations Manager 2007 – SITENAME&quot;)      <br />send(&quot;Overv&quot;)      <br />send(&quot;+&quot;)      <br />sleep(2000)      <br />send(&quot;{DOWN}&quot;)      <br />sleep(5000)      <br />send(&quot;{DOWN}&quot;)      <br />send(&quot;{APPSKEY}&quot;)      <br />send(&quot;{DOWN}{DOWN}{DOWN}&quot;)      <br />send(&quot;{ENTER}&quot;)      <br />WinWaitActive(&quot;Service Overview&quot;)      <br />Sleep(5000)      <br />send(&quot;^T&quot;) ;send controll t (action pane ausblenden)      <br />WinSetState(&quot;Service Overview&quot;,&quot;&quot;,@SW_MAXIMIZE)</p>
</blockquote>
<p>Kurze Erklärung: Zuerst die Konsole öffnen (mit Variable, um möglichst sprachunabhängig zu sein), warten bis die Konsole aktiv ist (hier wird nach dem Titel des Fensters geschaut, in dem auch der Name de Site enthalten ist!), das Fenster sicherheitshalber nochmal aktivieren, Die ersten Buchstaben des Ordners eintippen (in diesem Beispiel Overview), per + aufklappen, zur zweiten Sicht im Ordner gehen, Kontextmenü öffnen, dort Öffnen in neuem Fenste auswählen, warten bis diese Sicht offen ist, die Actionpane ausblenden und am Ende nochmals das Sichtfenster maximieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2011/03/direktes-ffnen-einer-ansicht-in-der-scom-konsole/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diverse Tools f&#252;r SCCM &#8211; Teil 2</title>
		<link>http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-2/</link>
		<comments>http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-2/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 18:21:38 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Batchdatei]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=267</guid>
		<description><![CDATA[Im letzten Teil habe ich beschrieben, wie man mit einer einfachen Batchdatei remote eine Hardwareinventur anstoßen kann. Was ist aber, wenn man dies auf mehreren PCs gleichzeitig machen will? Z.B. bei allen PCs, die eine bestimmte Software angeboten bekommen und somit in einer SCCM Collection sind? Auch da hilft eine kleine Batchdatei: starthinvall.cmd for /F [...]]]></description>
			<content:encoded><![CDATA[<p>Im letzten Teil habe ich beschrieben, wie man mit einer einfachen Batchdatei remote eine Hardwareinventur anstoßen kann. Was ist aber, wenn man dies auf mehreren PCs gleichzeitig machen will? Z.B. bei allen PCs, die eine bestimmte Software angeboten bekommen und somit in einer SCCM Collection sind?</p>
<p>Auch da hilft eine kleine Batchdatei:</p>
<p>starthinvall.cmd</p>
<blockquote><p>for /F %%i in (&#8216;cscript.exe //NOLOGO %~dp0getcomputer.vbs %1 siteserver sitename&#8217;) do call %~dp0starthinv.cmd %%i</p></blockquote>
<p>Aufgerufen wird die Batchdatei mit den Namen der Collection, in der die Zielclients sind. Das passende getcomputer.vbs verbindet sich dann mit dem hinterlegten Siteserver und fragt in der angegebenen Site (sitename) die in der Collection hinterlegten Computer ab. Die Ausgabe (ein Computer pro Zeile) wird von der For Schleife abgefangen und an die starthinv.cmd weitergegeben.</p>
<p>getcomputer.vbs basiert weitestgehend auf einem Script von <a href="http://www.myitforum.com/articles/11/view.asp?id=425" target="_blank">www.myitforum.com</a> und wurde nur von der Ausgabe und Weiterverarbeitung angepasst.</p>
<p>Hier nochmal die Files als Download:</p>
<ul>
<li><a class="downloadlink" href="http://www.mbaeker.de/downloads/starthinvall.cmd_.txt" title=" downloaded 261 times" >starthinvall.cmd (261)</a></li>
<li><a class="downloadlink" href="http://www.mbaeker.de/downloads/getComputer.vbs_.txt" title=" downloaded 321 times" >getComputer.vbs (321)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diverse Tools f&#252;r SCCM &#8211; Teil 1</title>
		<link>http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-1/</link>
		<comments>http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-1/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 19:22:07 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Batchdatei]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-1/</guid>
		<description><![CDATA[Ich werde hier ab jetzt regelmäßig ein paar kleine Skripte rund um den System Center Configuration Manager (SCCM) bereitstellen. Geschrieben sind sie teilweise schon für SMS 2003 und funktionieren auch noch mit 2007. Als erstes ein kleines Skript, um remote auf einem Client die Hardwareinventur anzustoßen: @echo off set PC=%1 if .%PC%==. set /p PC=Enter [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: inline; margin-left: 0px; margin-right: 0px; border: 0px;" title="icon-20" src="http://www.mbaeker.de/wp-content/uploads/2010/02/icon20.png" border="0" alt="icon-20" width="64" height="64" align="left" /> Ich werde hier ab jetzt regelmäßig ein paar kleine Skripte rund um den System Center Configuration Manager (SCCM) bereitstellen. Geschrieben sind sie teilweise schon für SMS 2003 und funktionieren auch noch mit 2007.</p>
<p>Als erstes ein kleines Skript, um remote auf einem Client die Hardwareinventur anzustoßen:</p>
<blockquote><p>@echo off<br />
set PC=%1<br />
if .%PC%==. set /p PC=Enter Computer Name to start HINV:<br />
call %~dp0findip.bat %PC%<br />
if %ip%.==. goto fehler<br />
echo Start Hardware Inventur %PC%<br />
cscript.exe //Nologo %~dp0sendsched.vbs {00000000-0000-0000-0000-000000000001}  %PC%<br />
goto ende<br />
:fehler<br />
echo Abbruch, da Rechner %PC% auf ping nicht antwortet.<br />
:ende<br />
set ip=</p></blockquote>
<p><span style="background-color: #f4f5f7;">Diese Batchdatei kann direkt mit dem Rechnernamen als Parameter aufgerufen werden. Wird nichts übergeben, dann fragt er nach dem Namen. Als erstes wird überprüft, ob der Rechner anpingbar und somit am Netzwerk ist. Dafür wird eine weitere Batchdatei aufgerufen, die ich nachfolgend anhängen werde. Danach wird ein VBScript aus dem SMS 2003 Toolkit 2 (</span><a title="http://technet.microsoft.com/en-us/sms/bb676787.aspx" href="http://technet.microsoft.com/en-us/sms/bb676787.aspx">http://technet.microsoft.com/en-us/sms/bb676787.aspx</a>). Das Script sendet eine Nachricht per WMI an den Client. Jede Aktion eines Clients sind als Schedules bzw. Actions hinterlegt. Kennt man den entsprechenden Code, dann kann man diese sofort starten. In diesem Fall steht {00000000-0000-0000-0000-000000000001} für die Hardwareinventur.</p>
<p>Die findip.bat Datei sieht so aus:</p>
<blockquote><p>@echo off<br />
set ip=<br />
set tempip=%temp%\%1.ip<br />
ping %1 -n 1 |find /i &#8220;Antwort von&#8221; &gt; &#8220;%tempip%&#8221;<br />
for /F &#8220;eol=: tokens=3,* delims=: &#8221; %%i in (%tempip%) do @set ip=%%i</p>
<p>if %ip%.==. goto englisch</p>
<p>goto ende</p>
<p>:englisch<br />
ping %1 -n 1 |find /i &#8220;Reply from&#8221;&gt;&#8221;%tempip%&#8221;<br />
for /F &#8220;eol=: tokens=3,* delims=: &#8221; %%i in (%tempip%) do @set ip=%%i</p>
<p>:ende<br />
del %tempip%</p></blockquote>
<p>Da die Quotes hier im Blog ziemlich verändert sind, habe ich die beiden Batchdateien noch als Download angehängt. Bitte Dateiendung entsprechend korrigieren:</p>
<ul>
<li><a class="downloadlink" href="http://www.mbaeker.de/downloads/starthinv.cmd_.txt" title=" downloaded 297 times" >starthinv.cmd (297)</a></li>
<li><a class="downloadlink" href="http://www.mbaeker.de/downloads/findip.bat_.txt" title=" downloaded 291 times" >findip.cmd (291)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2010/02/diverse-tools-fr-sccm-teil-1/feed/</wfw:commentRss>
		<slash:comments>1</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>vmdk Header Datei rekonstruieren</title>
		<link>http://www.mbaeker.de/2009/04/vmdk-header-datei-rekonstruieren/</link>
		<comments>http://www.mbaeker.de/2009/04/vmdk-header-datei-rekonstruieren/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 12:28:36 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[VMWare]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[vmdk]]></category>

		<guid isPermaLink="false">http://www.mbaeker.de/?p=84</guid>
		<description><![CDATA[Im Artikel &#8220;Don&#8217;t Panik &#8211; was tun wenn die vmdk Datei weg ist&#8221; habe ich beschrieben, wie man eine VMDK Header Datei auf Basis der letzten Logs rekonstruieren kann. Jetzt wurde im NetApp Forum ein Tool bereitgestellt mit dem man dies automatisiert durchführen kann. Darüber hinaus ist es möglich bestehende Header Dateien zu überprüfen. Zu [...]]]></description>
			<content:encoded><![CDATA[<p>Im Artikel &#8220;<a href="http://www.mbaeker.de/2009/01/dont-panik-was-tun-wenn-die-vmdk-datei-weg-ist/" target="_self">Don&#8217;t Panik &#8211; was tun wenn die vmdk Datei weg ist</a>&#8221; habe ich beschrieben, wie man eine VMDK Header Datei auf Basis der letzten Logs rekonstruieren kann.</p>
<p>Jetzt wurde im NetApp Forum ein Tool bereitgestellt mit dem man dies automatisiert durchführen kann. Darüber hinaus ist es möglich bestehende Header Dateien zu überprüfen. Zu finden ist das Skript unter <a href="http://communities.netapp.com/docs/DOC-2735" target="_blank">http://communities.netapp.com/docs/DOC-2735</a>.</p>
<p>Gefunden habe ich den Verweis im Blog-Post <a href="http://www.yellow-bricks.com/2009/04/03/repairing-your-vmdk-header-files/" target="_blank">http://www.yellow-bricks.com/2009/04/03/repairing-your-vmdk-header-files/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mbaeker.de/2009/04/vmdk-header-datei-rekonstruieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

