Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Vorhandene Dienste mit Liste vergleichen

Frage Entwicklung Batch & Shell

Mitglied: Eggebert

Eggebert (Level 1) - Jetzt verbinden

25.07.2009, aktualisiert 07:24 Uhr, 3755 Aufrufe, 4 Kommentare

Auf einem WindowsXP-Rechner sollen die Namen aller Windows-Dienste abgefragt werden.
In einer Textdatei (vorgabe.txt) sind zeilenweise Namen von Windows-Dienste, für die es bereits eine Vorgabe gibt, hinterlegt.
Die Ausgabe soll mir anzeigen, für welche Dienste auf dem PC es noch keine Vorgabe gibt bzw. welche Dienste nicht in der vorgabe.txt vorhanden sind.

Eine Erweiterung wäre....
In einer Textdatei (vorgabe.txt) sind zeilenweise Namen von Windows-Dienste mit Status und Autostarttyp hinterlegt.
z.B. clipsrv,running,auto oder tapisrv,stopped,demand

Für jeden Dienst auf dem PC werden die Dienste laut "Vorgabe" gesetzt.
Kommt ein Dienst nicht in der Liste vor bzw. der Dienst kann nicht laut Vorgaben gesetzt werden, soll der Name des Dienstes angezeigt oder in eine andere Textdatei z.B. Fehlend.txt geschrieben werden.

Bisher habe ich versucht alle Dienste in eine Datei zu speichern und dann zu prüfen, ob z.B. der Dienstname in beiden Dateien vorhanden ist.
z.B. sc query type= service state= all| findstr /r /C:"SERVICE_NAME:" >tmpsrv.txt

Jedoch ist das sehr umständlich, da man ja vielleicht mit einer For-Schleife Dienst für Dienst auf dem PC abrufen und prüfen könnte, ob der Name in der vorgabe.txt vorhanden ist oder fehlt.

Kann mir bitte jemand weiterhelfen oder hat einen Tip dafür?

Danke.

Egge
Mitglied: bastla
25.07.2009 um 10:08 Uhr
Auch Dir ein freundliches Hallo und willkommen im Forum!

Die "sc"-Ausgabe, wie Du es bereits skizziert hast, zwischenzuspeichern und dann zeilenweise zu vergleichen könnte etwa so gehen:
01.
@echo off & setlocal 
02.
set "Vorgabe=D:\vorgabe.txt" 
03.
set "Aktuell=%temp%\aktuell.txt" 
04.
 
05.
sc query type= service state= all| findstr /C:"SERVICE_NAME:" >"%Aktuell%" 
06.
 
07.
echo Nicht in der Vorgabe enthaltene Dienste: 
08.
for /f "usebackq delims=" %%i in ("%Aktuell%") do findstr /x /c:"%%i" "%Vorgabe%">nul || echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: Eggebert
01.08.2009 um 22:56 Uhr
Hab nochmal ein bißchen gebastelt. Deine Lösung hat funktioniert.

Danke.

Egge
Bitte warten ..
Mitglied: Eggebert
04.08.2009 um 02:04 Uhr
Hab doch nochmal eine Frage....

Der Befehl
01.
sc query type= service state= all| findstr /C:"SERVICE_NAME:" >"%Aktuell%" 
erzeugt in der Datei aktuell.txt z.b. folgende Einträge :
01.
SERVICE_NAME: ALG 
02.
SERVICE_NAME: Alerter 
03.
SERVICE_NAME: AppMgmt
Wie müsste man folgende Zeile ändern...
01.
for /f "usebackq delims=" %%i in ("%Aktuell%") do findstr /x /c:"%%i" "%Vorgabe%">nul || echo %%i
..damit der Suchstring von %%i nicht z.B. "SERVICE_NAME: ALG" sondern "ALG" lautet ?

Ich würde die Werte in der Vorgabe.txt gerne in einem Format speichern, wie z.b.
01.
ALG,demand 
02.
Alerter,disabled 
03.
AppMgmt,auto
Kann man beim Abspeichern irgendwie nur der Name ohne "SERVICE_NAME: " bewerkstellligen ?

Kann man in dem Suchstring %%i die Zeichenkette "SERVICE_NAME: " wegschneiden?

Ist zwar extrem falsch aber soll die Richtung "zeigen" was ich meine ...
01.
for /f "usebackq delims=" %%i in ("%Aktuell%") do ( set "x=%%i") && "!x:~14!" findstr /x /c:"%%i" "%Vorgabe%">nul || echo %%i
Hat jemand eine Idee ?

Egge
Bitte warten ..
Mitglied: bastla
04.08.2009 um 07:30 Uhr
Hallo Eggebert!

Da Du aus der jeweiligen Zeile alles nach dem ersten Leerzeichen benötigst, sollte es etwa so gehen:
for /f "usebackq tokens=1*" %%i in ("%Aktuell%") do findstr /x /c:"%%j" "%Vorgabe%">nul || echo %%j
Zu beachten wäre ev noch, dass "findstr" derzeit (wegen "/x") nach komplett übereinstimmenden Zeilen sucht ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Vergleiche Strings in CMD (4)

Frage von it4baer zum Thema Batch & Shell ...

Entwicklung
Vergleichen und entfernen (2)

Frage von Florian456 zum Thema Entwicklung ...

PHP
Lange Liste und einige häsliche Schleifen (4)

Frage von WPFORGE zum Thema PHP ...

Neue Wissensbeiträge
Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(4)

Information von LordGurke zum Thema Humor (lol) ...

Sicherheits-Tools

Trendmicro OSCE und das Fall Creators Update Win10 RS3

(3)

Information von Henere zum Thema Sicherheits-Tools ...

Microsoft Office

Text in Zahlen umwandeln

Tipp von logische zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (38)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
Gruppenrichtlinie greift nicht zu! (24)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...