Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Batch - Installationspfad wird nicht gefunden, wenn im Registry-Zweig eine Systemvariable enthalten ist - Fortsetzung

Mitglied: onegasee59
IHallo,

ich nehme Bezug auf meinen Erst-Beitrag zum Thema auf https://www.administrator.de/forum/batch-installationspfad-wird-nicht-ge ... da den offensichtlich niemand mehr liest.

Ich konnte das Problem jetzt einkreisen.

Entscheidend ist die 2. Zeile.

Sie ergibt bei mir für die Variable "strWMPPath":

unter XP = C:\Programme\Windows Media Player
unter WIN Vista = %ProgramFiles%\Windows Media Player

Wie bekomme ich obigem Codeschnippsel jetzt bei gebogen das es den echten Pfad auch unter Vista erzeugt.

So das es sowohl unter XP als auch Vista funktioniert und auch in Vista die Variablen "WMPDrive" und "WMPPath" echte Inhalte erhalten, also:
%WMPPath% --> WMP-Install-Pfad=\Programme\Windows Media Player\
%WMPDrive% --> WMP-Install-LW=C: (hier kann natürlich auch einen anderes LW stehen)

Danke
onegasee59

Content-Key: 100880

Url: https://administrator.de/contentid/100880

Ausgedruckt am: 30.07.2021 um 17:07 Uhr

Mitglied: paulepank
paulepank 03.11.2008 um 22:45:14 Uhr
Goto Top
Hallo onegasee59,

wollte mich eigenlich schon bei deinem ersten Thread beteiligen.
Da du aber nicht präzise geschrieben hast, für welche Betriebssysteme das gelten soll und ob
sogenannte Fremdprogramme zum Einsatz kommen dürfen, habe ich mich erst mal zurückgehalten.
Das sollte doch einem so erfahrenen Mitglied hier eigentlich nicht passieren :) face-smile

Wenn es dir immer nur noch darum geht eine 9,10 oder 11 als Ergebnis zu erhalten, benutze folgenden Code für WinXP und Vista

Wichtig ist der Delimiter:
Er besteht aus <Komma><Tab><Blank>

cu paulepank

EDIT: sollte man den Thread nicht eher nach Batch & Shell verschieben ?
Mitglied: onegasee59
onegasee59 03.11.2008 um 23:31:28 Uhr
Goto Top
Hallo paulepank

erstmal Danke!
Ich dachte es wäre schon im ersten Thread klar geworden. Keine Zusatztools. Das Tool soll für XP und Vista nur per Batch und vbs erstellt werden.
Es geht auch NICHT um die Versionsprüfung die erfolgt im Anschluss. Die Syntax dafür funktioniert einwandfrei sowohl unter XP als auch Vista.

Das Tool macht wie folgt:

Zuerst erfolgt Prüfung auf Betriebssystem.
Wird nicht XP oder Vista erkannt, wird das Tool mit entsprechender Fehler-Meldung abgebrochen.
Wird XP oder Vista erkannt, aber nicht 32bit und nicht DE oder ENG, wird das Tool mit entsprechender Fehler-Meldung abgebrochen.
Dann soll es auf unbekannten XP/Vista System den tatsächlichen Installationspfad vom Windows Media Player finden.
Der obige Code funktioniert unter XP einwandfrei aber nicht unter Vista, weil unter Vista im Registryzweig und dessen Wert "Path" der Verweis auf das Installationsverzeichnis nicht im Klartext wie bei XP hinterlegt ist (in meinem Fall als "C:/Programme/Windows Media Player"), sondern als "%ProgramFiles%/Windows MediaPlayer"!!!

Diesen Inhalt von "%ProgramFiles%" bekomme ich nicht extrahiert und dadurch ergibt sich mit obigem Code unter Vista ein Fehler bei der realen Pfaderkennung:

edit am 04.11.2008 08:42 Uhr
Wenn Du magst speicher dir bitte:
strWMPPath = WScript.CreateObject("WScript.Shell").RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe\Path")
WScript.Echo strWMPPath
If Right(strWMPPath,1) <> "\" Then strWMPPath = strWMPPath & "\"
If Not Mid(strWMPPath, 2, 1) = ":" Then WScript.Quit(1)
WScript.Echo strWMPPath
als "WMPpath.vbs"

Lass es mal unter XP und dann unter Vista laufen. Die Ausgabe zeigt anschaulich was ich meine:

Unter XP erzeugt "WMPpath.vbs" die Ausgabe: C:\Programme\Windows Media Player
Unter Vista erzeugt "WMPpath.vbs" die Ausgabe: %ProgramFiles%\Windows Media Player

Das bedeutet mit dem Code, hier im Thread ganz oben:
Unter XP erfolgt von "strWMPPath" die Übergabe an "WMPTemp" von: C:\Programme\Windows Media Player
Unter Vista erfolgt von "strWMPPath" die Übergabe an "WMPTemp" von: %ProgramFiles%\Windows Media Player

Das ergibt vom for-Zweig folgende Auswertung:

für XP:
%WMPPath% --> gefundener WMP-Install-Pfad=\Programme\Windows Media Player\
%WMPDrive% --> gefundenes WMP-Install-LW=C:
bei XP also wie gewünscht.

für Vista
%WMPPath% --> gefundener WMP-Install-Pfad=
%WMPDrive% --> gefundenes WMP-Install-LW=
Bei Vista also Fehler

Wie bekomme ich die "Kuh vom Eis"?

onegasee59
Mitglied: paulepank
paulepank 04.11.2008 um 00:14:07 Uhr
Goto Top
Hallo onegasee59,

bei deiner VBS-Lösung kann ich dir leider nicht helfen.
du wolltest u.A. eine Lösung per Batch für die Version. Die habe ich dir gegeben und sie läuft auf XP und Vista.

cu paulepank
Mitglied: onegasee59
onegasee59 04.11.2008 um 00:26:22 Uhr
Goto Top
Vielen Dank paulepank für deine Mühe,

aber ich glaube Du verstehst mich doch nicht.
Deine Lösung ist Super Ok, nutzt mir aber leider nichts.
Für die Versionsprüfung habe ich bereits ein unter XP und Vista 100% funktionierendes Codeschnippsel innnerhalb der Batch. Ich benötige tatsächlich zwingend zuerst die Syntax für das Finden des _tatsächlichen_ Installationspfades von Windows Media Player die dann nicht nur für XP sondern auch für Vista funktioniert. Sicher nur ne Kleinigkeit, wenn man weiß wie...

Dann hoffe ich mal weiter... Hiiiiiiiilfe.......baaaaaaaaastla, Biiiiiiiiiiber ;-) face-wink

Gruß und Danke nochmal.
onegasee59
Mitglied: paulepank
paulepank 04.11.2008 um 08:15:37 Uhr
Goto Top
... nach einer Mütze voll Schlaf

  • deinen VBS-Code habe ich ausprobiert. Ich bekommme sowohl bei XP als auch bei Vista ein leeres Fenster angezeigt.
  • Frage - was ist an folgender Aussage falsch:
der Programmpfad wird durch
angezeigt. Ob Vista oder XP, ob 27 oder 68 Bit, ob japanisch oder finnisch - der WMP steht immer im Verzeichnis "Windows Media Player". Das ist im System fest verdratet. Einzig das Laufwerk variiert.
  • Brauchst du das Laufwerk auch einzeln ?
  • Damit du auch Hilfe von anderen bekommst, solltest die den Thread w.o. beschrieben verschieben (lassen).

cu paulepank
Mitglied: onegasee59
onegasee59 04.11.2008 um 08:50:15 Uhr
Goto Top
Morgen,

Oh, Sorry. Der Code ist falsch - ich korrigiere oben - Jetzt stimmt es.

Die 2. Zeile ist eigentlich nicht erforderlich - geht aber nicht anders ,um zu zeigen was bei der Variable rauskommt.
Bei Vista erscheint nämlich ohne Zeile 2 gar nichts, weil wie schon gesagt "%ProgramFiles%\Windows Media Player" im weiteren Scriptverlauf nicht ausgewertet werden kann.
Grund - der Inhalt von %ProgramFiles% (bei Vista) ist für das Script einfach nur eine Zeichenfolge keine Variable.

Bei mir (Dualbootsytem C: = XP / G: = Vista) ergibt das als Ausgabe von Zeile 2 und letzte Zeile 5

Screenshot - vbs-Variante - XP = http://www.der-wmp.de/extra/xyz/WMPPath-vbs-Zeile-2_XP.jpg http://www.der-wmp.de/extra/xyz/WMPPath-vbs-Zeile-5_XP.jpg
Screenshot - vbs-Variante - Vista = http://www.der-wmp.de/extra/xyz/WMPPath-vbs-Zeile-2_Vista.jpg für Zeile 5 - keine Anzeige bei Vista

Ja - LW der WMP-Installation benötige ich
Ja - Antrag bei Moderatoren auf Threadverschiebung habe ich gestern gemacht.

Übrigens, so sieht es mit einer Batchvariante aus:


Screenshot - cmd-Variante - XP = http://www.der-wmp.de/extra/xyz/WMPPath-cmd_XP.jpg
Screenshot - cmd-Variante - Vista = http://www.der-wmp.de/extra/xyz/WMPPath-cmd_Vista.jpg

onegasee59
Mitglied: paulepank
paulepank 04.11.2008 um 09:56:02 Uhr
Goto Top
Hallo,
...und würdest du jetzt auf meine Frage (Aussage) eingehen ?
Falls du unbedingt alles mit vbs machen willst, klinke ich mich jetzt hier aus.

cu paulepank
Mitglied: onegasee59
onegasee59 04.11.2008 um 10:21:26 Uhr
Goto Top
Hhmm, ich habe doch schon alles beantwortet!

1. Ich brauche den Installationspfad als Variable - NICHT als feste Wertvorgabe.
D. h. ich muss erreichen das unter Vista der Inhalt der System-Variablen "%ProgramFiles%" aus dem gefundenen Installationspfad im vbs-Script oder der Batch verarbeitet wird und nicht die reine Zeichenkette "%ProgramFiles%"
Dieses Variablen-Problem ist zwar aktuell jetzt erst unter Vista aufgetaucht, könnte aber, bei entsprechend vorhandenem Pfad mit solch einer Systemvariablen, auch auf XP so auftauchen.
Die benötigte Lösung soll daher Universal funktionieren...
1.1. Bei fester Pfadangabe...
1.2. Bei Systemvariable...
...im Installationspfad = Wert "Path" im Registry-Zweig: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe"

2. Ich brauche das LW einzeln als Variable - NICHT als feste Wertvorgabe.
3. Ich habe eine Batch-Variante und deren Ergebnis auch noch nachgeschoben.

onegasee59
Mitglied: paulepank
paulepank 04.11.2008 um 10:43:54 Uhr
Goto Top
auch Hhmm,
ich glaube diesmal hast du mich mißverstanden.
Das install-dir ist fest vorgegeben und muß nicht erst ermittelt werden.
3. Ich habe eine Batch-Variante und deren Ergebnis auch noch nachgeschoben.

das ist nicht gut, denn es erfolgt keine neue Benachrichtigungsmail

Aber bitte , dann eben so


jetzt noch Wünsche ? oder anders gefragt - ist die Kuh jetzt vom Eis ?:) face-smile

cu paulepank
Mitglied: onegasee59
onegasee59 04.11.2008 um 11:44:20 Uhr
Goto Top
Hallo paulepank,

erstmal herzlichst Danke für die Mühe,

Das install-dir ist fest vorgegeben und muß nicht erst ermittelt werden.
Klar, für den WMP und die sonstigen MS-eigenen Programme/Komponennten funktioniert das. Bei Fremdsoftware aber wie z.. Bsp für Nero nicht mehr.
Da ich den Code ja universell gestalten/einsetzen will [1], suche ich eben die Variante über Variablen auslesen und benötige daher die Daten aus:

Wert "Path" im Registry-Zweig: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\

3. Ich habe eine Batch-Variante und deren Ergebnis auch noch nachgeschoben.

das ist nicht gut, denn es erfolgt keine neue Benachrichtigungsmail
Ja Sorry, hab es gemacht auf Grund Deiner Bemerkung "Falls du unbedingt alles mit vbs machen willst, klinke ich mich jetzt hier aus."

jetzt noch Wünsche ? oder anders gefragt - ist die Kuh jetzt vom Eis ?:) face-smile
Für WMP zuerstmal ja - Funktioniert einwandfrei unter XP/Vista. :-) face-smile
[1]
Dennoch suche ich immer noch die Variablen-Variante oder den Grund warum (egal ob vbs oder batch) beim finden einer Systemvariablen (im genannten Registry-Zweig) nur deren reine Zeichenkette, statt deren Inhalt übergeben wird. Warum also, wie im hier vorliegend Fall nur "%\ProgramFiles%\Windows Media Player" anstatt dem echten Pfad "G:\Program Files\Windows Media Player" übergeben wird?

Hast Du dazu auch einen Idee?

Nicht böse sein - bitte nicht als undankbar verstehen.
Im Gegenteil dank Deiner Lösung könnte ich zumindest für den WMP erstmal weitermachen und das Gesamt-Tool fertigstellen.

Gruß
onegasee59
Mitglied: paulepank
paulepank 04.11.2008 um 12:16:33 Uhr
Goto Top
Hallo ,

Hast Du dazu auch einen Idee?

leider nein - vbs null Ahnung

Nicht böse sein - bitte nicht als undankbar verstehen.

nö, nur enttäuscht
Warum hast in der Überschrift eine Lösung für den WMP gesucht und schreibst nicht von Anfang an was du eigentlich willst. Für eine Variante aller oder einiger installierter Programme wäre der Ansatz ganz anders. Wir diskutieren hier einen Tag lang rum und dann sowas. Das ist etwas, was ich nicht akzeptieren kann.
Was ist eigentlich so schwer daran das Problem in der Überschrift und generell genau zu beschreiben ? Die Frage war jetzt rein rhetorisch.

cu paulepank
Mitglied: onegasee59
onegasee59 04.11.2008 um 12:26:11 Uhr
Goto Top
Hallo paulepank,

muss ja keine VBS-Lösung sein.

> Nicht böse sein - bitte nicht als undankbar verstehen.

nö, nur enttäuscht
Warum hast in der Überschrift einen Lösung für den WMP
gesucht und schreibst nicht von Anfang an was du eigentlich willst.

Der WMP war nur der Aufhänger auf Grund eine geplanten Tools.
Bitte um Entschuldigung, aber ich hatte mich so in das Problem verbohrt, das ich wohl verkannt habe wie es beim Gegenüber tatsächlich ankommt.

Was ist eigentlich so schwer daran das Problem in der Überschrift und generell genau zu beschreiben

Ich versuche es

onegasee59
Heiß diskutierte Beiträge
general
Telekom hat größere Störung gelöst anteNopeVor 1 TagAllgemeinInformationsdienste30 Kommentare

Moin, es scheint als hätte die Telekom gerade eine größere Störung. Bei vielen Kunden mit Telekom-Internetanschluss funktionieren Office 365 und auch IMAP-Mails nicht. Wartezeit in ...

question
Massive Probleme mit Windows Suche, Taskbar, Windows Standard Apps auf jedem Windows 10-PC im Firmennetzwerkrznr666Vor 1 TagFrageWindows 1027 Kommentare

Hallo liebe Community, die PCs in unserem Unternehmen weisen folgende Probleme auf. Die Fehler treten nach einiger Zeit auf JEDEM Windows 10-PC auf, der genaue ...

question
Absicherung Exchange ServerLKleemannVor 1 TagFrageExchange Server10 Kommentare

Hallo zusammen, wir sind bei uns in der Firma nun endlich vom Exchange POP3 Connector weggekommen und empfangen nun unsere E-Mail direkt über MX-Einträge. Nun ...

question
Anmeldeprobleme w10 auf server2012fisch56Vor 1 TagFrageWindows Server16 Kommentare

Hallo allerseits, mich bringt es fast um. Server 2012R, 7 Arbeitsstationen, alle haben einen Zugriff auf den Server, dort sind 2 Programme, alles läuft easy. ...

report
Erfahrungsbericht Vodafone - All your Verträge belong to us!anteNopeVor 1 TagErfahrungsberichtFlatrates12 Kommentare

Hallo zusammen, da the-buccaneer so nett gebeten hat, hier eine weitere Erfahrung mit und von Voodoofone. Es begab sich zur Zeit zu Weihnachten vor 3 ...

info
Happy System Administrator Appreciation Day0xFFFFVor 16 StundenInformationHumor (lol)7 Kommentare

Guten Morgen Byteschubser, ihr seid die superhelden der Wirtschaft! _Danke dass es euch (uns #eigenlob) gibt. Mögen Eure Systeme stets Viren- und Hackerfrei bleiben, eure ...

question
Robocopy - FEHLER 0 (0x00000000)emeriksVor 1 TagFrageBatch & Shell10 Kommentare

Hi, habe ich hier einen täglichen Copy Job, wo Robocopy plötzlich "Fehler 0" meldet, dass es erfolgreich sei, aber nichts kopiert. Festplatte des NAS ist ...

question
Revisionssicher SpeicherschneerunzelVor 1 TagFrageHardware4 Kommentare

Moin zusammen, bei uns in der Organisation läuft aktuell ein Projekt, welches revisionssicher Archiviert werden muss. Das Projekt hat ein definiertes Startdatum und auch ein ...