Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Registry mittels Batch auslesen

Frage Entwicklung Batch & Shell

Mitglied: Przigoda

Przigoda (Level 1) - Jetzt verbinden

30.06.2008, aktualisiert 20:48 Uhr, 6566 Aufrufe, 4 Kommentare

Hallo,

da ich mich hier neuangemeldet habe, bitte ich um Verzeihung falls die Kategorie doch nicht ganz passen sollte. Ich habe hier schon viele Lösungen für kleine Probleme gefunden, daher erstmal ein dickes Lob an alle die hier so fleißig antworten!!!

ich habe dank einigen Beiträgen hier mein Problem schon sehr weit lösen können, es gibt jedoch noch einige "unschöne Stellen" und nicht alllgemein funktionierende Dinge:

Ich möchte die aktuelle inst. Version von Adobe Acrobat ermitteln, und die SID des akt. Benutzers:

Bisher mache ich dies so:

01.
@cd "%userprofile%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Credentials" 
02.
@FOR /F "tokens=*" %%i IN ('dir /A:D /B') do (SET sid=%%i)
gibt es hierfür auch eine schönere Möglichkeit, insbesondere bei engl. Windows gibt es "Lokale Einstellungen" schließlich nicht?

und weiter

01.
@Set /A Line=0 
02.
@for /F "delims=\ tokens=*" %%i in ('REG QUERY "HKEY_USERS\%sid%\Software\Adobe\Adobe Acrobat" /s') DO (    
03.
@   set /a Line+=1  
04.
@   echo %%i>> %Temp%\info.txt 
05.
@   REM if %Line% GEQ 4 GOTO LineReadEnd 
06.
@) 
07.
@:LineReadEnd
Ich will eigentlich nur wissen welche Unterordner in HKEY_USERS\%sid%\Software\Adobe\Adobe Acrobat existieren, dafür speicher ich allerdings zunächst die gesamte Sub-Reg in die info.txt und ich ich brauche eigentlich nur die 3. zeile aus der Reg. Ich schaffe es allerdings nicht mittels if einen Sprung zu setzen, der wird einfach ignoriert, daher habe ich den einkommentiert.
Ein Weiteres mögliches Probleme könnte die Installation von verschiedenen Adobe Acrobat Versionen sein, z.B. hat die 7.0 nach der Deinstallation bei mir noch Reste hinterlassen so, dass der Reg-Eintrag nicht zu Adobe 8.0 sondern 7.0 hinzugefügt wurde. Ich musste den 7.0 Ordner erstmal löschen, damit es funktionierte.

Ich habe über sie Suchfunktion auch eine andere Möglichkeit zum auslesen der Versionsnummer gefunden und zwar
WMIC product get...
nur kriege ich dann bei Adobe Acrobat nur "Programm = Adobe Version = Acrobat" aber ich keine Versionsnummer.

So ich hoffe ist ausführlich genug beschrieben, falls nicht ergänze ich natürlich noch...
vielen Dank für eure Hilfe im voraus.

gruß Nils
Mitglied: 60730
30.06.2008 um 12:00 Uhr
Servus und Willkommen

Von einem unserer Batchgurus hab ich folgenden Trick gelernt:

01.
help /? > temp.txt 
02.
find "Befehl" tempt.txt 
03.
if %errorlevel% ==0 goto german 
04.
find "command" tempt.txt 
05.
if %errorlevel% ==0 goto eng 
06.
 
07.
:german 
08.
:eng
Früher hab ich das mit
01.
if exist "%userprofile%\Lokale Einstellungen\Anwendungsdaten\" goto german 
02.
if exist "%userprofile%\Local Settings\Application Data\" goto eng
gelöst.

Zum anderen,
ich hab ein Kixscript, das jeden kleineren Acrobat Key löscht, wenn Version 8 gefunden wird.

01.
:Acrobat8 
02.
	if existkey( "HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\8.0\" ) ="0" 
03.
		?"Acrobat8  wurde gefunden " 
04.
		Deltree ( "HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\5.0" ) 
05.
		Deltree ( "HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\5.1" ) 
06.
		Deltree ( "HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\7.0" ) 
07.
 
08.
         	else 
09.
		? "Adobe Acrobat 8 nicht gefunden" 
10.
		 
11.
	endif
Und wegen der SID - von Sysinternals gibts das schöne Tools psgetsid.exe
gruß
Bitte warten ..
Mitglied: bastla
30.06.2008 um 12:09 Uhr
Hallo Przigoda und willkommen im Forum!

Als Alternative für das Auslesen der SID könntest Du folgenden Batch einsetzen:
01.
@echo off & setlocal 
02.
set G=%temp%\GetSID.vbs 
03.
echo Set net=CreateObject("WScript.Network"):WScript.Echo GetObject("winmgmts:\\.\root\cimv2").Get("Win32_UserAccount.Name='"^&net.UserName^&"',Domain='"^&net.UserDomain^&"'").SID>%G% 
04.
for /f %%i in ('cscript //nologo %G%') do set "SID=%%i" 
05.
echo %SID%
Da hier eine WMI-Abfrage (über ein integriertes VBScript) erfolgt, sollte die BS-Sprache eigentlich kein Problem sein - schneller ist aber sicherlich Deine bisher verwendete Variante.

Allerdings frage ich mich, warum Du nicht über HKCU zugreifst (was ich im Beispiel unten mache).
Zu Teil 2:
Vermutlich ist es ohnehin sicherer, anstelle von "Zeile 3" einen Suchbegriff vorzugeben (zB "Acrobat\") daher:
01.
for /f "tokens=5 delims=\" %%i in ('REG QUERY "HKEY_CURRENT_USER\Software\Adobe\Adobe Acrobat" /s^|findstr /c:"Acrobat\\"') do set "AcrobatVersion=%%i" 
02.
echo %AcrobatVersion%
Auf diese Art solltest Du (aufgrund der Sortierung innerhalb der Registry) auch die höchste Versionsnummer erhalten ...

Grüße
bastla

P.S.: @TimoBeil
Von einem unserer Batchgurus ...
Es gibt hier ohnehin nur den einen ...
Bitte warten ..
Mitglied: stollkuehn
30.06.2008 um 12:16 Uhr
Hi,

um das Problem zu lösen, die SID mit dem Usernamen zu matchen, nehme ich immer User2SID oder SID2User. Beides kleine Executables, die hervorragend in ein Batch integriert werden können.

Gruß

Osik
Bitte warten ..
Mitglied: Przigoda
30.06.2008 um 20:48 Uhr
Besten Dank für die schnellen Antworten!!! Hatte heute leider keine Zeit mehr das nochmal zu optimieren, werde mich gleich noch oder eher morgen daran setzen und das mal umsetzen!!!und dann noch kurz Rückmeldung geben


---edit---
so ich habe all eure gute Vorschläge jetzt mal zusammengefügt und eine 15 zeilige Lösung erhalten, vorher waren noch über 30, und das ganze geht auch wesentlich schneller und scheinbar auch unter engl. Systemen!
Ich bedanke mich nochmal für eure schnelle Antworten und guten Ideen, die Umsetzung bei mir musste leider etwas warten...

01.
@REM Erstelle SID als Variable 
02.
@%~d0%\tools\user2sid.exe %username% > sid.txt 
03.
@FOR /f "delims=: tokens=1,*" %%i in ('findstr /n $ %TEMP%\sid.txt') do @If %%i EQU 2 @Set SID=%%j 
04.
 
05.
@REM Finde Adobe Acrobat Version heraus 
06.
@for /f "tokens=5 delims=\" %%i in ('REG QUERY "HKEY_CURRENT_USER\Software\Adobe\Adobe Acrobat" /s^|findstr /c:"Acrobat\\"') do set "AcrobatVersion=%%i"  
07.
 
08.
@reg add "HKEY_USERS\%SID%\Software\Adobe\Adobe Acrobat\%AcrobatVersion%\... 
09.
@del "%TEMP%\sid.txt"
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Per Batch aktuell angemeldete User auslesen (1)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...