Archive

Posts Tagged ‘cmd’

Diverse Tools für SCCM – Teil 2

February 15th, 2010 No comments

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 %%i in (‘cscript.exe //NOLOGO %~dp0getcomputer.vbs %1 siteserver sitename’) do call %~dp0starthinv.cmd %%i

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.

getcomputer.vbs basiert weitestgehend auf einem Script von www.myitforum.com und wurde nur von der Ausgabe und Weiterverarbeitung angepasst.

Hier nochmal die Files als Download:

Diverse Tools für SCCM – Teil 1

February 9th, 2010 No comments

icon-20 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 Computer Name to start HINV:
call %~dp0findip.bat %PC%
if %ip%.==. goto fehler
echo Start Hardware Inventur %PC%
cscript.exe //Nologo %~dp0sendsched.vbs {00000000-0000-0000-0000-000000000001}  %PC%
goto ende
:fehler
echo Abbruch, da Rechner %PC% auf ping nicht antwortet.
:ende
set ip=

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 (http://technet.microsoft.com/en-us/sms/bb676787.aspx). 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.

Die findip.bat Datei sieht so aus:

@echo off
set ip=
set tempip=%temp%\%1.ip
ping %1 -n 1 |find /i “Antwort von” > “%tempip%”
for /F “eol=: tokens=3,* delims=: ” %%i in (%tempip%) do @set ip=%%i

if %ip%.==. goto englisch

goto ende

:englisch
ping %1 -n 1 |find /i “Reply from”>”%tempip%”
for /F “eol=: tokens=3,* delims=: ” %%i in (%tempip%) do @set ip=%%i

:ende
del %tempip%

Da die Quotes hier im Blog ziemlich verändert sind, habe ich die beiden Batchdateien noch als Download angehängt. Bitte Dateiendung entsprechend korrigieren:

Unbekanntes Windows Tool Teil 1

February 16th, 2009 No comments

Kurzer, schneller Post:

Heute habe ich ein mir unbekanntest Kommandozeilen Tool gefunden:

forfiles:

FORFILES [/P Pfadname] [/M Suchmaske] [/S]
[/C Befehl] [/D [+ | -] {dd.MM.yyyy | TT}]

Beschreibung:
Wählt eine Datei (oder einen Satz von Dateien) und führt einen
Befehl auf dieser Datei aus. Dies ist für Batchaufträge hilfreich.

Parameterliste:
/P    Pfadname      Bestimmt den Pfad, auf dem die Suche gestartet
wird. Standardordner ist der zurzeit
verwendete Ordner (.).

/M    Suchmaske     Sucht nach Dateien laut einer Suchmaske.
Die Standardsuchmaske ist “*”.

/S                  Durchsucht Unterverzeichnisse
rekursiv, wie z. B. “DIR /S”.

/C    Befehl        Bestimmt den für jede Datei auszuführenden Befehl.
Befehlszeichenfolgen sollten in doppelten
Anführungszeichen eingeschlossen werden.

[...]

Sehr hilfreich, wenn man z.B. alte Dateien in einem Ordner löschen möchte:

forfiles /D -7 /P c:\tempordner -C “cmd /c del @path

Löscht alle Dateien die älter als sieben Tage sind.

Es wurde gleich in das VCBK Skript eingebaut… (Zielplatte leidet unter chronischem Platzmangel)

Gefunden habe ich es hier:
http://scottelkin.com/programming/delete-files-older-than-date-using-batch-files/

Categories: Uncategorized Tags: , ,