none
Fehler beim Script ausführen RRS feed

  • Frage

  • Hallo NG

    Seit dem Update Rollout von dieser Woche haben wir Probleme mit ausführen von Scripts bei Windows 8.1 Rechnern. Ob es sich nur auf solchen so verhält kann ich nicht bestätigen.

    Ich erhalten eine Meldung siehe unten. Was macht der WeighTest. Über eine RS232 Schnittstelle werden bei einer Waage Daten ausgelesen. Diese Daten werden dann in ein ini File gespeichert. In der Applikation habe ich die Möglichkeit, dann aus dem ini, Daten in ein Wordfile (lokal vorhanden) die Variablen abzufüllen und daraus ein PDF zu erstellen. Dieser Schritt funktioniert nicht mehr.

    Danke für eure Hilfe

    Eric

    Donnerstag, 14. September 2017 08:13

Antworten

  • Hallo zusammen

    Das Problem wurde eruiert und konnte behoben werden.

    Ich probiere es zu beschreiben für weitere User:

    Durch ein Update von Skype for Business (2016) wurden in der Registry die Werte für Office 2010 angepasst. Sprich, die Zuweisung für Office 2010 Applikationen passte nicht mehr. Das System konnte im angegebenen Key keine Verweise mehr finden, weil von Office 2016 "nur" Skype installiert ist. Ich musste über dir GPO den Schlüssel für die Office 16 Version löschen und danach funktioniert alles wieder.

    Im Key HKEY_Classes_Root\TypeLib kann der richtige Schlüssel für die betroffenen Applikation gefunden werden: Hier eine Zusammenstellung:

    Microsoft Word

    • Registry-Pfad:
      HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}
    • VersionSchlüssel
    • Word 2003 → 8.3
    • Word 2007 → 8.4
    • Word 2010 → 8.5
    • Word 2013 → 8.6
    • Word 2016 → 8.7

    Microsoft Excel

    • Registry-Pfad:
      HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}
    • VersionSchlüssel
    • Excel 2003 → 1.5
    • Excel 2007 → 1.6
    • Excel 2010 → 1.7
    • Excel 2013 → 1.8
    • Excel 2016 → 1.9

    Microsoft Outlook

    • Registry-Pfad:
      HKEY_CLASSES_ROOT\TypeLib\{00062FFF-0000-0000-C000-000000000046}
    • VersionSchlüssel
    • Outlook 2003 → 9.2
    • Outlook 2007 → 9.3
    • Outlook 2010 → 9.4
    • Outlook 2013 → 9.5
    • Outlook 2016 → 9.6

    • Als Antwort markiert stockytarocco Montag, 18. September 2017 05:50
    Montag, 18. September 2017 05:50

Alle Antworten

  • Nach einem Windows-Update muss man schon mal Bibliotheken einer Anwendung neu registrieren.
    Dazu wählt man von der jeweiligen App (Systemsteuerung->Programme und Features) den Installer zum Reparieren aus. Bietet dieser das nicht an, muss man leider neu installieren.

    Im Windowsupdate ist immer so ein Tool zum entfernen von Malware enthalten.
    Dies löscht leider auch Registryeinträge von anderen Anwendungsbibliotheken (COM-Interfaces), nur weil Microsoft glaubt, dort Malware entdeckt zuhaben.

    Das passiert mit meinen von mir entwickelten Anwendungen leider auch regelmäßig.
    Eine Reparaturinstallation löst das Problem.


    • Bearbeitet Der Suchende Donnerstag, 14. September 2017 09:45
    Donnerstag, 14. September 2017 09:45
  • Hallo

    Leider hat weder die Änderung noch die Neuinstallation etwas gebracht. Wie komme ich auf die Fehlerhafte Bibliothek?

    Eric

    Donnerstag, 14. September 2017 11:16
  • Ich denke, da musst du den Programmierer/Lieferanten des Programmes WeighTest dran lassen, der dies analysieren muss (wenn man die Quellen hat).
    In den Quellen kann man dann sehen, welche Bibliotheken benötigt werden um diese
    a) ggf. neu zu installieren
    b) neu zu registrieren (regsvr32.exe)

    Je nach dem, was da für eine Bibliothek verwendet wird, kann diese mit einem Windowsupdate auch verschwinden (Beispiel MDB-Treiber, die nur noch mit Office kommen).
    Deshalb liefere ich in meinen Installern immer sämtliche Libs mit aus auch wenn sie theoretisch in Windows da sein sollten (was beim Wechsel von W8.1  auf W10 einige Libs betraf).

    Donnerstag, 14. September 2017 11:23
  • Hallo zusammen

    Das Problem wurde eruiert und konnte behoben werden.

    Ich probiere es zu beschreiben für weitere User:

    Durch ein Update von Skype for Business (2016) wurden in der Registry die Werte für Office 2010 angepasst. Sprich, die Zuweisung für Office 2010 Applikationen passte nicht mehr. Das System konnte im angegebenen Key keine Verweise mehr finden, weil von Office 2016 "nur" Skype installiert ist. Ich musste über dir GPO den Schlüssel für die Office 16 Version löschen und danach funktioniert alles wieder.

    Im Key HKEY_Classes_Root\TypeLib kann der richtige Schlüssel für die betroffenen Applikation gefunden werden: Hier eine Zusammenstellung:

    Microsoft Word

    • Registry-Pfad:
      HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}
    • VersionSchlüssel
    • Word 2003 → 8.3
    • Word 2007 → 8.4
    • Word 2010 → 8.5
    • Word 2013 → 8.6
    • Word 2016 → 8.7

    Microsoft Excel

    • Registry-Pfad:
      HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}
    • VersionSchlüssel
    • Excel 2003 → 1.5
    • Excel 2007 → 1.6
    • Excel 2010 → 1.7
    • Excel 2013 → 1.8
    • Excel 2016 → 1.9

    Microsoft Outlook

    • Registry-Pfad:
      HKEY_CLASSES_ROOT\TypeLib\{00062FFF-0000-0000-C000-000000000046}
    • VersionSchlüssel
    • Outlook 2003 → 9.2
    • Outlook 2007 → 9.3
    • Outlook 2010 → 9.4
    • Outlook 2013 → 9.5
    • Outlook 2016 → 9.6

    • Als Antwort markiert stockytarocco Montag, 18. September 2017 05:50
    Montag, 18. September 2017 05:50
  • Nun ja, früher konnte man mit Office diese Registrierung jederzeit wiederholen:

    OfficeProg.Exe /RegServer

    Dies ist der Standard einer jeden COM-Anwendung.
    Seit Office 2007 hat Microsoft diese Option leider eliminiert, so dass man diese Aufrufe nicht mehr machen kann.
    Eine Reparatur-Installation registriert die Anwendung aber leider nicht mehr.
    Selbst wenn man z.B. in Excel-VBA->Verweise versucht eine Office-Anwendung neu zu registrieren funktioniert dies nicht, da ja auch dort der RegServer-Aufruf erfolgt.
    Wenn man nur die TypeLib-Einträge benötigt, hast du Glück gehabt, denn TypeLib's sind nur Umwege zur Anwendung und enthalten wiederum die Verweise auf die originalen Einträge.

    Die eigentlichen Einträge liegen direkt unter HKCR.
    Z.B. "Excel.Application" => CLSID = {00024500-0000-0000-C000-000000000046}

    Nun für 32-Bit auf 64Bit:
    HKCR\WOW6432Node\CLSID\{00024500-0000-0000-C000-000000000046} => LocalServer32 = Pfad zu Excel

    Für 64-Bit und 32-Bit auf 32-Bit-Rechner:
    HKCR\Software\Classes\CLSID\{00024500-0000-0000-C000-000000000046}
    Bei älteren Versionen noch LocalServer, für .Net-Versionen, InprocServer.

    Wenn man mit der CLSID {00024500-0000-0000-C000-000000000046} arbeitet, wird von der Anwendung immer automatisch die neueste installierte Version geladen, ansonsten benötogt man tatsächlich immer noch zusätzlich die TypeLibs.

    Montag, 18. September 2017 08:24