Schlagwort-Archive: cmd

[SOLVED] Windows was unable to open service control manager database

Problem:
Wenn man an einem PC die Diensteverwaltung öffnen will per CMD –> services.msc erhält man diese Meldung (Error 1722):
Services Error 1722

Lösung:
Um diesen Fehler zu beheben, muss man nur die CMD als Administrator öffnen und dort die vordefinierte Firewall Regelgruppe für das WMI aktivieren:

"Windows-Verwaltungsinstrumentation (WMI)"

Der Befehl dazu sieht so aus:

netsh advfirewall firewall set rule group = "windows management instrumentation (WMI)" new enable=yes

bzw:

netsh advfirewall firewall set rule group="Windows-Verwaltungsinstrumentation (WMI)" new enable=yes

Danach kann man die Diensteverwaltung wieder aus der cmd aufrufen.
Als ‚Workaround‘ kann man auch den Explorer öffnen und dort beim Eintrag für den PC per Rechtsklick das Kontextmenü öffnen und dort die Verwaltung des PCs auswählen.
Im Comuter Management Fenster kann man dann auch die Dienste verwalten. 🙂

ACHTUNG:
Diese Änderung war in meinem Fall auch notwendig, obwohl die Windows Defender Firewall für die Domäne ausgeschaltet war (da wir ein anderes Produkt einsetzen).

 

Windows Update im Griff: ABC-Update

Ich war lange Zeit auf der Suche nach einem Tool, mit dem ich den Windows Update Prozess etwas besser im Griff haben kann.

Lange habe ich mit dem WSUShelper von Wolfgang Fuehrer gearbeitet, allerdings benötige ich zur Ergänzung noch ein Tool, mit dem ich den Update Prozess sofort starten kann.

Hier setzt jetzt das Tool ABC-Update an, welches von Flemming Varmer kostenlos zur Verfügung gestellt wird.

Mit diesem Tool kann man die Updates entweder direkt von Microsoft holen

 ABC-Update.exe /A:Install 

oder von einem WSUS-Server, den man im eigenen Netz hat

 APC-Update.exe /S:WSUS /A:Install /R:N 

(Installiert alle verfügbaren, aber noch nicht installierten Updates ohne Reboot)
Interessant ist auch, dass man für den WSUS Server unterschiedliche Ports angeben kann (also Port 80 oder 8530).

Hier noch die Übersetzte Beschreibung des Programmes von der Webseite:

ABC-Update
ist ein einfach zu bedienendes Tool, mit dem Sie die Kontrolle über MS-Update-Vorgänge behalten.

Mit ABC-Update erhalten Sie die Updates genau dann, wenn Sie sie benötigen, und können auch maximale Neustarts definieren, Filteroptionen verwenden, um Updates anhand von Patchdaten, KB-Artikeln und Update-Kategorien auszuwählen.
Das Tool hat eine GUI- und eine Kommandozeilenversion und ermöglicht es Ihnen, Update-Operationen auch dann zu skripten, wenn Sie diese benötigen. Da Sie das Tool auch von der Kommandozeile aus aufrufen können, ist es gut geeignet für die Verwendung mit Software-Verteilungstools wie ABC-Deploy, MS SCCM und anderen.

Sie haben die Kontrolle. Kein Warten mehr auf automatische Updates.
Getestet OK von Windows XP/2003 und höher

Diese Lücke zwischen dem, was Microsoft direkt nach dem Auspacken anbietet, und dem, was viele Administratoren wirklich wollen, ist das, was das ABC-Update-Tool ausfüllen soll.

 

Windows: Uptime anzeigen

Will man sich nur die Startzeit des Systems anzeigen lassen, tippt man in der Commandline einfach ’starttime‘ ein.
Kein Schnick, kein Schnack, kein Taskmanager usw.

Ich habe mir jetzt folgendes Batch erstellt und in C:\Windows\System32\EigeneBatches gespeichert:

@echo off
:: Autor:            Peter Maier
:: Datum:            17.06.2016
:: Dateiname:        starttime.bat
:: Beschreibung:    Zeigt die Startzeit eines PCs an. 
:: Verwendung:        cmd --> starttime
:: Abhängigkeiten:    Bordmittel
:: Quelle:             http://www.psteiner.com/2013/05/windows-uptime.html
::#######################################################
:: Variablen
:: Funktionen
:: Eigentliches Script
:: englisches Windows
:: for /f "tokens=1,2,*" %%i in ('net statistics workstation ^| find "since"') do @echo %COMPUTERNAME% up since %%k
::deutsches Windows
for /f "tokens=1,2,*" %%i in ('net statistics workstation ^| find "seit"') do @echo %%k

Ich habe den ursprünglichen Teil für ein englisches Windows mal drin gelassen. Sollte es nicht funktionieren, muss man ggfs. einfach mal ’net statistics workstation‘ auf der Kommandozeile ausführen.
Dann hat man schon mal die Info, welche Informationen es hier gibt.
Im deutschen Text steht in der Zeile z.B.

Statistik seit 22/06/2016 13:56:21

Wenn man es sich in der System32 ablegt oder eine PATH Variable auf das passende Verzeichnis setzt, kann man nun einfach ’starttime‘ eingeben und bekomt die gewünschte Info.

Logrotate für Windows

Das Problem:
Auf einem Windows Server erzeugt eine Software diverse Logfiles. Ab einer Größe über 10 MB bekommt der Systembetreuer eine Mail, dass die Datei zu groß wird. Dieses Logfile hat aber nur informativen Charakter und muss nicht aufgehoben werden.
Daher kann man es im Prinzip auf einfach löschen und neu erstellen.

Die Lösung wäre unter Linux einfach : Logrotate

Nach etwas Sucherei bin ich zunächst auf logwot8 gestoßen.
Was mich an diesem Tool allerdings stört ist, dass man da im Hintergrund ein Cygwin laufen hat. Ist mir für ein paar Logfiles zu viel Overkill 🙂

Umgesetzt habe ich das Ganze dann mit LogRotateWin.

Beschreibung:
„Eine Windows Implementierung des logrotate Tools, welches es auf Linux Platformen gibt. Das Ziel ist es die gleichen Kommandozeilenparameter wie die Linux Version zu verwenden.“

Für die Parameter schaut man am besten ins Wiki

Ich habe das bei uns jetzt so umgesetzt:

1. Download Logrotate
https://sourceforge.net/projects/logrotatewin/
https://sourceforge.net/p/logrotatewin/wiki/LogRotate/
2. Installation auf einen anderen PC – wir brauchen auf dem Server nur den Programmordner Logrotate, der unter C:\Program Files (x86) erstellt wird.
Deswegen führe ich die Installation auf einem anderen Rechner durch und kopiere das Verzeichnis.
Beim Test gab es Probleme mit den Berechtigungen, wenn das Programm unter C:\Program Files (x86)\LogRotate ausgeführt wird.
Ggfs. kann man das auch mit einem Tool extrahieren.

3. Auf dem Server das Feature .NET Framework 3.5 installieren, falls das nicht schon drauf ist.

4. Den gesamten Ordner „Logrotate“ nach „D:“ kopieren (bei diesem Server habe ich das mal auf D: gemacht).

5. Ein leeres Textfile mit dem Namen logrotate.status (ohne .txt !) anlegen. Und zwar direkt im Stammverzeichnis. Bei mir also D:\logrotate.status

6. Im Verzeichnis Logrotate\Content ein conf-File (z.B. schedule.conf) für das Logfile anlegen.
Inhalt der schedule.conf:
##########################
D:\Anwendungsname\logs\schedule.log {
rotate 5
size 10M
}
#########################

Erklärung:
Bei einer Größe von 10MB wird das Logfile gepackt und umbenannt nach „schedule.log.1.gz“
Das Ganze wird dann für 5 Versionen vorgehalten und dann wieder überschrieben.

7. In der Aufgabenplanung (Task Scheduler) einen neuen Job anlegen
Name: logrotate-schedule
Triggers: Daily 06:00
Actions: Start a program D:\LogRotate\logrotate.exe D:\LogRotate\Content\schedule.conf
Conditions:
Settings:

Besonderheiten für den Task:
„Run whether user is logged on or not“ und „Run with highest privileges“

Jetzt kümmert sich das System selbst um die Logs 🙂

Bevor man das Ganze in der Aufgabenplanung laufen lässt, sollte man das mal in der CMD (als Administrator) ausprobieren und schauen, ob man Fehlermeldungen sieht.