All posts in Kommandozeile

Hallo zusammen,

in dem heutigen Howto zeige ich euch ein kleines Powershell Skript, wie Ihr Logdateien in Realtime monitoren könnt.
Folgenden Zeilen im Skript sollten angepasst werden, über diese Variablen könnt Ihr das Monitoring steuern.

Im Header des Skripts habe ich den Ablauf dokumentiert, sollten noch Fragen aufkommen, Ihr wisst wie Ihr mich erreichen könnt.

Wie immer freue ich mich über Kommentare und Anregungen.

Viele Grüße
Helmut

Hallo zusammen,

in dem heutigen Howto zeige ich euch ein kleines Skript, wie Ihr eure Powershell Umgebung auf allen Computern/Server gleich setzen könnt.

Powershell_Konsole

 

 

 

 

 

Powershell_Konsole_2

 

 

 

 

 

Bitte vor der Skript Ausführung eure ExecutionPolicy setzen

Damit Powershell immer ein Startverzeichnis hat, bitte die passende Variable im Skript setzen

Und hier das Skript

Wie immer freue ich mich über Kommentare und Anregungen.

Viele Grüße
Helmut

Hallo zusammen,

in dem heutigen Post zeige ich euch, wie Ihr mit Windows Boardmittel Remotecomputer administrieren könnt.

Folgende Zusatztools kommen in dem Skript zum Einsatz:
PsTools von Windows Sysinternals –> http://technet.microsoft.com/de-de/sysinternals/bb896649.aspx
FreeCommander XE Portable –> http://www.freecommander.com/de/fc_downl_de.htm

Wenn man sich Tag täglich, mehrmals auf entfernte Computer schalten muss, um Administrative Aufgaben zu erledigen. Versucht man sich die Arbeit so einfach wie möglich zu machen.
Persönlich wird es sehr nervig, wenn man am Tag bis zu 100 Mal Domänen Admin + Passwort eingeben muss.

Das folgende Skript erleichtert mir hier sehr viel Tipparbeit.

Die PsTools lade ich mir aus dem Internet und kopiere alle *.exe Dateien in mein C:\Windows\System32 Verzeichnis.
Den FreeCommander XE Portable lade ich mir ebenfalls aus dem Internet und lege diesen zu meinem Batch Skript.
Für alle meine Batch und Powershell Skripte lege ich mir unter D:\ einen passenden Ordner an.

ScriptOrdner

 

 

 

 

 

So sieht es aus, wenn man die Batch Datei Remote-Verwaltung.cmd das erste Mal startet.

Remoteverwaltung

 

 

 

 

 

Folgendes sollte im Batch Skript angepasst werden:

Für die Remote C$ Freigabe habe ich mir einen Netzlaufwerksbuchstaben als Variable definiert.
Mein Domänen Admin Konto wird ebenfalls als Variable definiert.
Der Skriptpfad für FreeCommander wird in die Variable %PATH% hinzugefügt.

Warum nutze ich den FreeCommander Portable und nicht den Windows eigenen Explorer, habe sehr viel ausprobiert bei der Skripterstellung. Leider ist es nicht möglich die explorer.exe über das Kontextmenü „Als anderer Benutzer ausführen“ oder auch über RunAs Befehlen zu starten. Sobald man als Normaler Domänenbenutzer am Computer angemeldet ist, lässt sich die explorer.exe nicht in einem Domänen Administrator Kontext starten. Das Problem hier, ist die (UAC) User Access Control von Windows 7/8. Leider habe ich noch keinen Weg gefunden wie man das umgeht, außer natürlich man meldet sich als Domänenadministrator am Computer an.

Um nun mit dem Skript arbeiten zu können, startet man die Batch Datei als Domänen Administrator, dazu klickt man mit gedrückter SHIFT Taste + rechter Maustaste auf die CMD Datei und wählt im Kontextmenü „Als anderer Benutzer ausführen“

Nun bekommt man folgenden Prompt angezeigt, bitte hier Remote Computername oder IP-Adresse eingeben.
Im zweiten Schritt wird man nach dem Domänen Administrator Kennwort gefragt um das Netzlaufwerk zu verbinden.
Zusätzlich wird noch eine Textdatei angelegt, in dem der Remote Computername eingetragen wird, dieses benötigt man, wenn man eine weitere CMD Konsole öffnen will und die Variable %RemoteHost% benötigt.

BatchStart

 

 

 

 

 

Die wichtigste Sprungmarke ist die :START, die Batch Datei ist so geschrieben, dass sie in einen Loop steckt, solange bis man sie mit Exit verlässt.
Mit title und mode wird die CMD Konsole angepasst (mode 80 ist die Breite und 50 ist die Höhe der Konsole)

 

Bei manchen Befehlen wurde ein Pause eingebaut, diese Pause verlässt man mit drücken einer Taste.

BatchPause

 

 

 

 

 

Bei Befehl 9 und 12 gibt es noch eine Besonderheit. Um auf die Remote Registry vom Remote Computer zugreifen zu können, muss auf dem entfernten System der Dienst RemoteRegistry gestartet sein,
dies passiert mit dem Befehl sc \\%RemoteHost% start RemoteRegistry und zum zweiten kann man dem Regedit Editor keinen Computernamen mit geben. Die muss leider manuell passieren.

Damit der Befehl sc funktioniert, muss auf dem entfernten System die Firewall Ports freigeschaltet sein — RPC (Ports 137/138/139/445) oder man regelt das Ganze über Gruppenrichtlinien –> http://skatterbrainz.blogspot.de/2009/08/enabling-windows-7-remote-management.html

Bei Befehl 12 wird ein neues CMD Konsolen Fenster geöffnet, in dem die LogIn ID des angemeldeten Benutzers angezeigt wird, wenn man nun den Benutzer vom Remotesystem abmelden möchte, muss man noch manuell logoff [ID] eingeben und mit Enter bestätigen.

Alle anderen Befehle im Skript sind hoffentlich selbst erklärend, sollte dem nicht so sein, könnt ihr jederzeit einen Kommentar hinterlassen.

Hier das Skript

Download –> Remote-Verwaltung.zip

Also viel Spaß mit dem Skript.

Gruß Helmut

Seit 1. September ist die neue Sysinternals Suite verfügbar. Mit diesen kleinen Tools ist es möglich PC’s Remote im Netzwerk zu verwalten und zu administrieren. Mark Russinovich hat so zusagen alle Tools die man früher einzeln downloaden konnte in eine Suite zusammengefasst. Die bekanntesten Tools sind wohl die PSTools, BGInfo, Process Explorer und der TCPViewer.

Hier eine Auflistung aller Tools in der Suite –> http://technet.microsoft.com/de-de/sysinternals/bb545027

Und hier ein paar Beispiele was man mit den Tools so alles anstellen kann.

Man erstellt sich eine host.csv oder host.txt Datei die ungefähr so aussieht.

image

Und kann dann mit Batch Dateien sein Netzwerk bzw. seine Clients nach bestimmten Informationen abfragen.

psinfo.exe (Hier hole ich mir die Festplatteninformation welche Software & Hotfixe installiert sind)

@echo off
set host=host.txt
if not exist „C:\PCLogs\psinfo“ mkdir „C:\PCLogs\psinfo“
for /f %%i in (%host%) do „%systemroot%\system32\psinfo.exe“ -d -s -h \\%%i > „C:\PCLogs\psinfo\%%i.txt“

pslist.exe (Prozesse anzeigen lassen)

@echo off
set host=host.txt
if not exist „C:\PCLogs\pslist“ mkdir „C:\PCLogs\pslist“
for /f %%i in (%host%) do „%systemroot%\system32\pslist.exe“ –m oder -t \\%%i > „C:\PCLogs\pslist\%%i.txt“

psexec.exe (Hier kann ich mir bestimmte Informationen Remote anzeigen lassen)

@echo off
set host=host.txt
if not exist „C:\PCLogs\psexec“ mkdir „C:\PCLogs\psexec“
for /f %%i in (%host%) do „%systemroot%\system32\psexec.exe“ \\%%i systeminfo > „C:\PCLogs\psexec\%%i.txt“

oder ich führe den Befehl auf jeden PC einzeln aus um schnell an Informationen zu gelagen.

psexec \\computername cmd [Enter] führe dann auf der Remote Console meine Befehle aus systeminfo oder ipconfig /all oder set.

psloglist.exe (Hier kann ich Remote auf die Ereignissprotokolle der Clients zugreifen und abfragen)

@echo off
set host=host.txt
if not exist „C:\PCLogs\psloglist“ mkdir „C:\PCLogs\psloglist“
for /f %%i in (%host%) do „%systemroot%\system32\psloglist.exe“ \\%%i -s -r -i 3 -h 48 Application > „C:\PCLogs\psloglist\%%i_application.txt“
for /f %%i in (%host%) do „%systemroot%\system32\psloglist.exe“ \\%%i -s -r -i 534 -d 30 Security > „C:\PCLogs\psloglist\%%i_security.txt“
for /f %%i in (%host%) do „%systemroot%\system32\psloglist.exe“ \\%%i -s -r -i 29 -h 48 System > „C:\PCLogs\psloglist\%%i_system.txt“

Hier noch ein paar nützliche Befehle:

Benutzer abmelden: psshutdown -f -o \\computername

PC neu starten: psshutdown -r -t 5 \\computername

Prozesse beenden: pslist \\computername –> pskill \\computername -t Prozessname oder Prozess ID

Wer ist am System angemeldet: psloggedon –l \\computername

Dienste Remote starten/beenden/neu starten: psservice \\computername start/stop/restart “Servicename”

Dienste Remote suchen: psservice \\computername query “ser”

Computer SID herausfinden: psgetsid \\computername

Mit  sDelete steht dem Administrator ein Tool zur Verfügung um sicher Daten zu löschen bzw. Datenträger zu bereinigen:

Sicheres Löschen: sdelete –p 3 –s “C:\Users\<username>\AppData\Local\Mozilla\Firefox\Profiles\2xcds7cer.default\Cache”

Datenträger bereinigen: sdelete –p 3 –z C: oder sdelete –p 3 –z –c C:

Der Process Explorer ist ein toller Ersatz für den Windows XP/7 Task Manger (Über Options –> Replace Task Manager, kann man den Process Explorer als Default Task Manager definieren)

image

Der TCPViewer hat mir auch schon sehr nützliche Dienste geleistet

image

Mit Rammap kann man sich den physikalischen Arbeitsspeicher von Windows anzeigen lassen, sehr Interessant.

image

Viel Spaß beim administrieren und ausprobieren.

Viele Grüße
Helmut

Wenn man mal eine schnelle Lösung benötigt um zwei gleiche Ordner zu vergleichen. Bieten sich folgenden Windows Boardmittel an:
Als erstes muss man sich ein Übersicht erstellen lassen, was der derzeitige Ist Stand ist. Funktioniert mit folgenden Befehlen:

dir C:\Ordner1 /S /AD /B /ON>C:\AndereOrdner\Ordner1.txt
dir C:\Ordner2 /S /AD /B /ON>C:\AndereOrdner\Ordner2.txt

/S Listet Dateien und alle Unterverzeichnisse auf
/A A –> Listet Dateien mit angegebenen Attributen auf (mit dem Zusatz D –> Verzeichnisse)
/B Einfaches Format
/ON O –>  Gibt die Liste sortiert aus (mit dem Zusatz N –> alphabetisch nach Namen sortiert)

image

Wenn für die beiden Verzeichnisse eine Textdatei angelegt wurde vergleicht man mit folgenden Befehl die beiden Textdateien.

fc /C /L /N C:\AndereOrdner\Ordner1.txt C:\AndereOrdner\Ordner2.txt

/C Vergleicht ohne Rücksicht auf Groß-/Kleinschreibung.
/L Vergleicht Dateien als ASCII-Textdateien.
/N Zeigt bei einem ASCII-Vergleich die Zeilennummern an.

image

Die Ausgabe könnte wie folgt aussehen:

image

Quelle: http://www.faq-o-matic.net/2010/05/11/unterordner-vergleichen/

Viele Grüße
Helmut

Mit einen kleinen Trick lässt sich die Benutzerprofilumgebung auf eine andere Partition verschieben. Bei einer Neuinstallation von Windows 7 drückt man nach dem Erscheinen der Sprachwahl die Tastenkombination „SHIFT + F10„, um zur Eingabeaufforderung zu gelangen.
Hier gibt man dann folgenden Befehl ein um den Profilordner zu verschieben.

robocopy C:\Users D:\Users /mir /sec /xj

Die Paramater „mir“ und „sec“ kopieren alle Unterobjekte inklusive der Rechte und „xj“ bewirkt, dass das System symbolische Verknüpfungen beim Kopieren nicht verfolgt.

Nach dem verschieben, löschen man den alten Profilordner mit folgenden Befehl rd C:\Users /s /q.
Abschließend stellen man mit folgenden dem Befehl die symbolische Verknüpfung her und starten den Rechner neu. Neu erstellte Profile landen dann automatisch auf der anderen Partition.

mklink C:\Users D:\Users /j

Quelle: http://www.it-administrator.de/aktuelles/tipps_tools/80702.html

Viele Grüße
Helmut

Microsoft bietet seit Windows Vista ein neues Kommando Tool an, mit den Namen WinSAT („Windows System Assessment Tool“), mit diesem Kommando Tool kann man bestimmte Leitungsmerkmale von einem Computer messen. Wie in unseren Beispiel die Lese und Schreibgeschwindigkeit von einem USB Stick.

Der Leistungsindex von Windows 7 lässt sich in der Eingabeaufforderung aufrufen. Start –> Programme –> Zubehör (rechte Maustaste auf Eingabeaufforderung und als Administrator starten)

image

Angenommen der USB-Stick hat das Laufwerk „E:\„, dann würde der Befehl wie folgt lauten:

Für Random Read (Leserate):

winsat.exe disk -read -ran -ransize 4096 -drive E

liest nach dem Zufallsprinzip 4-KB-Blöcke auf Laufwerk E:\

image

Für Random Write (Schreibrate):

winsat.exe disk -write -ran -ransize 524288 -drive E

liest nach dem Zufallsprinzip 512-KB-Blöcke auf Laufwerk E:\
image

Für Sequentiell Read:

winsat.exe disk -read -seq -seqsize 16384 -drive E

image

Für Sequentiell Write:

winsat.exe disk -write -seq -seqsize 524288 -drive E

image

Bei der Auswertung vom letzten Befehl (Sequentiell Write) sollte man etwas Geduld mitbringen.
Das Ergebnis wird in Megabyte pro Sekunde (MB/s) angezeigt. Größere Werte sind natürlich besser und bedeuten eine höhere Leistung in Verbindung mit Readyboost.
WinSAT ist Bestandteil von Windows Vista – funktioniert aber auch unter Windows XP. Offensichtlich wurde WinSAT absichtlich abwärts kompatibel gehalten. WinSAT *.xml Files liegen unter Windows XP und Vista im Verzeichnis „C:\Windows\Performance\WinSAT\DataStore\“.
Die WinSAT.exe von Windows Vista kann auch unter Windows XP verwendet werden.

Leider sind nicht alle Befehle unter Windows XP nutzbar wie z.B. „winsat formal“ oder „winsat features„. Aber um die Leistung von einem USB Stick herauszufinden absolut ausreichend

Download: WinSat.zip (1.76 MB – ins C:\WINDOWS\System32-Verzeichnis kopieren).

Alle möglichen Parameter sind auf folgender Seite kurz beschrieben: http://technet.microsoft.com/en-us/library/cc742157.aspx

Viele Grüße
Helmut

Anders als seine Vorgänger bietet Windows Server 2008 ohne zusätzliche Tools die Möglichkeit, Snapshots von ganzen Laufwerken durch die Verwendung der Volume-Shadow Copy-Services (VSS) auf einfache Weise zu nutzen. So lassen sich Backups und andere Sicherungen auch mit Dateien durchführen, die durch den Zugriff von Benutzern gesperrt sind.

Um ein Laufwerk oder Teile davon zu sichern, kann wie folgt vorgegangen werden: Zunächst wird der Kommandozeilenbefehl “Diskshadow” aufgerufen. Danach werden nacheinander folgende Befehle eingegeben:

Set Context Persistent Nowriters
– Begin Backup
– Add Volume C: Alias C_Shadow
– Create
– Expose %C_Shadow% P:
Exec C:\Windows\System32\cmd.exe

Nun befindet man sich wieder auf der Windows-Kommandozeile und hat ein schreibgeschütztes Laufwerk P:, das eine exakte Kopie des Laufwerks C: zum Zeitpunkt der Eingabe des Create-Befehls ist. Das neue Laufwerk P: oder Teile davon können nun nach Belieben genutzt werden, beispielsweise mit Robocopy. Alle Dateien haben einen konsistenten Zustand und sind nicht durch andere Benutzer gesperrt.

Anschließend kehrt man mit dem Befehl “Exit 0″ zurück in die Diskshadow-Shell. Dort gibt man folgende Befehle ein:

End Backup
– Delete Shadows Id %C_Shadow%
Exit

Damit wird die Schattenkopie wieder gelöscht und der benötigte Platz freigegeben. Eine detaillierte Beschreibung des sehr mächtigen Diskshadow-Tools findet sich auf Microsoft Technet

Das Kopieren von Daten von einem Server zum anderen gehört zu den häufigsten Beschäftigungen eines Administrators. Windows 2008 besitzt den Kommandozeilenbefehl Robocopy, der das Leben in vielen Fällen leichter macht und bei weitem über die Möglichkeiten von Xcopy hinausgeht.
Die Vielzahl der Optionen wirkt allerdings auf den ersten Blick etwas verwirrend, so dass einige Einarbeitungszeit erforderlich ist, um Robocopy effektiv zu nutzen. Will man einen Share oder einen Verzeichnisbaum schnell an eine andere Stelle kopieren, gibt es eine Syntax, die eine exakte Kopie mit allen Zugriffsberechtigungen und Attributen liefert.

bild4

Der Befehl

Robocopy <Quelle> <Ziel> /R:1 /W:1 /Mir /Copyall /Zb /Efsraw /Dcopy:t

führt in der Regel das Gewünschte aus. Dabei ist zu beachten, dass, anders als der Namensbestandteil “Copy” vermuten lässt, existierende Dateien im Zielverzeichnis gelöscht werden, denn die Option /MIR bewirkt, dass ein echtes Mirroring durchgeführt wird.

Mit der Option /Copyall werden alle Zugriffsberechtigungen unverändert in das Zielverzeichnis übertragen. Anders als bei der Option /Sec werden auch die Dateieigentümer und die Audit-Einstellungen übertragen. /Dcopy:t bewirkt, dass Robocopy das Datum der Unterverzeichnisse von der Quelle übernimmt. Durch die Verwendung von /Zb kann ein Administrator auch Dateien kopieren, auf die er normalerweise keinen Zugriff hat, sofern er das für Administratoren voreingestellte Recht für Backups besitzt.

Falls das Zielverzeichnis ebenfalls auf einem Windows-2008-Server liegt, bewirkt /Efsraw, dass verschlüsselte Dateien im NTFS-Filesystem in ihrer verschlüsselten Form übertragen werden, ohne dass der Administrator den Schlüssel besitzen muss. Während des Kopiervorgangs kann er keine Kenntnis vom Inhalt der Datei nehmen.

/R:1 bewirkt, dass nur einmal versucht wird, eine Datei erneut zu kopieren, wenn der Vorgang fehlschlägt, meist weil die Datei durch einen anderen Benutzer gesperrt ist. /W:1 bedeutet, dass eine Sekunde gewartet wird, bevor ein erneuter Kopierversuch startet.

Die letzten beiden Optionen mögen auf den ersten Blick falsch gewählt wirken, sind aber genau richtig, wenn ein Administrator zu normalen Arbeitszeiten einen Share kopiert. Dateien, die in Benutzung sind, werden damit einfach ausgelassen.

Somit entsteht die Möglichkeit, den Share später offline zu setzen und einen erneutes Robocopy auszuführen. Da Robocopy nur geänderte Dateien kopiert, kann die Offline-Zeit auf diese Art meist sehr kurz gehalten werden. Zwischenzeitlich im Quellverzeichnis gelöschte Dateien werden auch im Zielverzeichnis gelöscht.

Detaillierte Informationen zu allen Robocopy-Parametern finden sich auf Microsoft Technet

Der USB Stick muss mindestens 512 MB groß sein um das WinPE Image installieren zu können. WinPE benötigt ungefähr einen Platz von 250 MB wobei darüber hinaus die zusätzlichen Dateien berücksichtigen werden müssen, die noch mit eingeschlossen werden.
Zunächst benötigt man wieder das Windows Automated Installation Kit (WAIK), um die benötigten Tools zu installieren.

Windows Automated Installation Kit (AIK)

Nach der Installation von WAIK wird die erforderliche Verzeichnisstruktur für ein benötigtes Windows PE-Abbild erstellt:
Wir öffnen die Windows PE-Tools Eingabeaufforderung als Administrator

bild1

Wechseln in das Verzeichnis: „%ProgramFiles%\Windows AIK Tools\PETools“
führen nun die copype.cmd <x86 oder x64> Speicherort

Beispiel: copype.cmd x86 C:\temp\USB-Stick

bild2

In das neu erstellte Verzeichnis C:\temp\USB-Stick werden mit dem Ausführen des Skripts die notwendigen Dateien der Architektur kopiert.

bild3

Nach Hinzufügen optionaler Anwendungen wird nun der USB-Stick vorbereitet. Hierzu kann man das Tool „diskpart“ verwenden.
Wir öffnen eine Eingabeaufforderung und Formatieren den USB-Stick:

diskpart
– select disk 1
– clean
– create partition primary
– active
– assign
– format fs=fat32 quick
exit

Im letzten Schritt wird der gesamte Inhalt des lokalen Verzeichnisses auf den USB Stick kopiert.

Beispiel: xcopy C:\temp\usb-stick\iso\*.* /s /e /f E:\

Viele Grüße
Helmut