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: 23.10.2021 um 01:10 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
question
Einfache Software für MitarbeiterinformationichbinwerichbinVor 1 TagFrageZusammenarbeit9 Kommentare

Guten Morgen Ich lese hier schon seit Jahren und bräuchte jetzt mal einen Hinweis. Ich weiss nicht ob Fragen nach Software beantwortet werden (Werbung?) aber ...

question
Gefahren durch Nutzung von EOL Smartphones (end of life support)nachgefragtVor 20 StundenFrageSicherheit14 Kommentare

Hallo Administratoren, weil Freitag ist erlaube ich mir die Frage (brainstorming): Welche Gefahren hinsichtlich IT-Sicherheit und Datenschutz seht ihr bei der Nutzung von (eol) Smartphones, ...

question
Netzwerk Neuaufbau - DHCP - VLANs gelöst SommelierVor 1 TagFrageWindows Server17 Kommentare

Hallo zusammen! Wir ziehen gerade unser Netzwerk neu auf, und ich wollte mir bei euch Rat einholen. Wir wollen verschiedene VLANs anlegen: Printer (172.16.20.0/24) Windowsumgebung ...

question
Netzwerkplan u. Kabelbelegung zeichnen? gelöst McLionVor 20 StundenFrageNetzwerke11 Kommentare

Hallo zusammen, ich suche irgendein Tool (am besten Open Source) um Netzwerkpläne zu zeichnen. Diese gibt es zwar wie Sand am Meer, aber mir geht's ...

question
Nebenstellenkreis von 2stellig auf 3stellig - was geschieht mit den bisherigen Rufnummerndeparture69Vor 1 TagFrageTK-Netze & Geräte13 Kommentare

Hallo. Bei uns besteht für 2022 die Anforderung, deutlich mehr Bürotelefone in Einsatz zu bringen. Die Anzahl der Nebenstellen ist vertragsseitig derzeit aber auf 100 ...

question
Standort vs. Standort gelöst erikroVor 1 TagFrageWindows Server8 Kommentare

Moin, Hintergrund der Frage ist, dass ich für ein PS-Skript auf dem RDS wissen muss, wo der Client steht. Ich hatte zuerst die Idee, das ...

question
HA Konstrukt für Firmennetzwerk mit mehreren WAN VerbindungenITAllrounderVor 1 TagFrageLAN, WAN, Wireless19 Kommentare

Guten Morgen zusammen, ich stehe gerade vor der Überlegung unser Firmen Netzwerk etwas umzustrukturieren. Aktuell primäres Problem: Wir haben theoretisch 2x Sophos XG310 (nur 1x ...

question
Mitarbeiter Onboarding Trainings Program on Premise gelöst MineralwasserVor 1 TagFrageSonstige Systeme3 Kommentare

Guten Nachmittag Kennt jemand ein gutes Programm das als Web-Service läuft, jedoch am besten nicht in der Cloud um die Mitarbeiter zu schulen. Also wenn ...