Top-Themen

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

Batch Datei startet VBS mit Fehler

Frage Entwicklung Batch & Shell

Mitglied: Marja

Marja (Level 1) - Jetzt verbinden

28.02.2006, aktualisiert 12.06.2007, 7610 Aufrufe, 11 Kommentare

Hallo zusammen

seit kurzem, so wie es aussieht wurde auf unseren Firmen Netzwerk PC der Service Pack 2 bei Windows Professional bzw. auch bei Access habe ich schon Service Pack 2 bei den Infos gelesen.

Ich hatte bisher eine Batch Datei die eine VBS Datei gestartet hatte.

01.
::mitarbeiter.bat 
02.
@echo off 
03.
 
04.
if not exist F:\Desktop mkdir f:\Desktop 
05.
 
06.
echo Es wird nun ?berprft ob eine neue Version existiert! 
07.
echo ... 
08.
echo Bitte warten Sie ! Das Mitarbeitertool wird gleich gestartet! 
09.
echo ... 
10.
  
11.
 
12.
copy G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.lnk F:\Desktop/d 
13.
 
14.
if not exist C:\Temp\%username%\Mitarbeitertool mkdir C:\Temp\%username%\Mitarbeitertool 
15.
 
16.
 
17.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.mde C:\Temp\%username%\Mitarbeitertool/a 
18.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.mde C:\Temp\%username%\Mitarbeitertool/u  
19.
 
20.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.vbs C:\Temp\%username%\Mitarbeitertool/a 
21.
replace G:\FM\Access\xxx\MitarbeiterTool\Desktop\Mitarbeitertool.vbs C:\Temp\%username%\Mitarbeitertool/u  
22.
 
23.
 
24.
C:\Temp\%username%\Mitarbeitertool\Mitarbeitertool.vbs
So und nun die Mitarbeitertool.vbs
01.
Option Explicit 
02.
 
03.
Const acCmdAppMaximize = 10  
04.
 
05.
dim link 
06.
dim wshnetwork 
07.
dim wshshell 
08.
dim ingret 
09.
 
10.
Set WshNetwork = WScript.CreateObject("WScript.Network") 
11.
Link = "C:\Temp\" &WshNetwork.UserName & "\Mitarbeitertool\Mitarbeitertool.mde"  
12.
 
13.
Set WSHShell = WScript.CreateObject("Access.Application")  
14.
 
15.
       
16.
      WSHShell.automationsecurity=1 ' low. 
17.
      WSHShell.OpenCurrentDatabase Link 
18.
      WSHShell.visible=true 
19.
      WSHShell.RunCommand acCmdAppMaximize  
20.
      WSHShell.docmd.Maximize 
21.
      WSHShell.usercontrol=true

Bei dieser VBS Datei kommt es seit dem Einspielung der Service Packs (vermutlich) zu einem Fehler in der Zeile 17. Komischerweise nicht bei jedem PC, aber bei der Mehrheit.

Zeile 17: WSHShell.OpenCurrentDatabase Link

Die VBS war damals dafür gedacht das die meheren Abfragen bevor die Access Anwendung gestartet wird umgangen wurden, damit der Mitarbeiter nicht verwirrt werden was sie nun drücken sollte, ob unsichere Ausdrücke blockieren oder nicht etc.

Wenn man in der Bat Datei statt der vbs die mde startet ist es ja auch o.k. aber dann bleibt das Dos Fenster auf und das verwirrt wieder.

Kann mir jemand helfen ?

Marja
Mitglied: Biber
28.02.2006 um 17:30 Uhr
Moin Marja,

ich lese mir das nun auch zum dritten Mal durch, ohne eine richtig wahrscheinliche Erklärung für dieses Phänomen zu finden.
Ich denke, die ganz unwahrscheinlichen Gründe hast Du bestimmt schon selbst überprüft und ausgeschlossen (Leerzeichen im %username%; Fehlendes laufwerk F: ; keine Rechter auf C:\temp\; kein WSH/VBS installiert oder nicht erlaubt;...)

Hast Du denn
a) mal den inhalt von "Link" anzeigen lassen? Kommt da noch ein plausibler String raus?
b) was sagt denn in Fehlermeldung in Zeile 19 außer "Fehler"?

Gruß
Biber
Bitte warten ..
Mitglied: maneich
01.03.2006 um 01:36 Uhr
Hallo,

mir geht es genau so wie Biber.

Aber für den Übergang, bis das VBS wieder fehlerfrei läuft folgendes:

setze hinter die letzte Zeile der BAT ein eof oder ein exit oder auch ein cls.

MfG maneich
Bitte warten ..
Mitglied: Marja
01.03.2006 um 09:01 Uhr
Vielen Dank für eure Antworten

Also komischerweise egal an welchen PC ich mich anmelde bekome ich nie die Fehlermeldung. Auf C:/Temp haben soweit alle Schreibrechte, anders ist es nachher bei der Backend Datei der Access Anwendung. Aber es hatte bisher alles funktioniert, ich schau mal ob ich nochmal an die Fehlermeldung rankomme.

Achso das cls oder exit oder eof funktionieren nicht so recht, da ja in der Batch Datei die mde geöffnet wird und erst wenn die Antwendung geschlossen ist, schließt sich auch das Dos Fenster.

Edit: Habe nun die Fehlermeldung

Script: C:\Temp\name.vorname\Mitarbeitertool\mitarbeitertool.vbs
Zeile: 17
Zeichen: 7
Fehler: Microsoft Office Access kann die Datenbank nicht öffnen, da sie nicht exisitert, oder da ein anderer Benutzer sie bereits im Exklusivmodus geöffnet hat.
Code: 800A1EBA
Quelle: (null)

hmm, was bedeutet das nun korrekt? Also vorher wie gesgat hat es wunderbar funktioniert.

Ablauf, für jeden Mitarbeiter wird beim Start der BAT die (Frontend) mitarbeitertool.mde auf dem Laufwerk C:/Temp unter dem Usernamen gespeichert, außerdem liegt da auch die mitarbeitertool.vbs. DIe Backend mitarbeitertool_back.mde liegt auf einem anderen NetzLaufwerk was für alle anderen aber zugänglich ist.

Hmm, was mich eigentlich nur stört ist das Dos Fenster was ständig offen bleibt, bei der vbs Variante wird dieses geschlossen.

Marja
Bitte warten ..
Mitglied: maneich
01.03.2006 um 13:02 Uhr
Hallo,

nun, möglicherweise wurde mit dem Service-Pack 2 von Acces hier etwas dahingehend verändert, daß z.B. hier über VBS nicht mehrere User gleichzeitig auf das Object zugreifen können.

Die Frage ist, ob sich der Exclusivmodus umstellen läßt, ob es dafür einen Schalter oder Eintrag gibt. Dazu kenne ich aber Acces zu wenig.

Daß es mit cls, eof oder exit nicht klappt, habe ich mir fast gedacht. In den meisten Fällen startet die Batch ein Programm/Datei und springt dann zur nächsten Zeile ohne die Ausführung abzuwarten. Bei manchen Anwendungen klappt das aber nicht so, da hier die nächste Zeile erst ausgeführt wird, wenn der vorherige Aufruf abgearbeitet ist. Was hier der Fall zu sein scheint.

In einer VBS z.B. kann man eine Batch starten ohne daß sich ein Fenster öffnet mit

WSHShell.Run "%Comspec% /c Name.bat", 0

Wobei die 0 am Ende dafür sorgt, daß die Batch unsichtbar ausgeführt wird.

Ansonsten kannst du mal versuchen mit "On Error Resume Next" zu testen.

Dazu benötigst Du aber den Rückgabecode für fehlerfreie oder fehlerhafte Ausführung, den Du bekommst mit "x = WSHShell.OpenCurrentDatabase Link" und in der VBS z.B. mit

do
On Error Resume Next
x = WSHShell.OpenCurrentDatabase Link
Err.Clear
WScript.Sleep 1000
Loop Until x = ?

Damit bleibt das Script solange in der Schleife bis der Rückgabecode OK ist. Willst Du den Fehler abfragen dann mit "Loop Until not x = ?". Das klappt aber nicht bei allen Fehlermeldungen. Mußt eben mal testen.

MfG maneich
Bitte warten ..
Mitglied: Biber
01.03.2006 um 14:31 Uhr
Och menno,
da hätte ich auch gleich drauf kommen können...

Ändere bitte die Zeile:
WSHShell.OpenCurrentDatabase Link
-auf-
WSHShell.OpenCurrentDatabase Link, FALSE

...dann wird der exclusive-mode ausgeschaltet.
Syntax ist ja: OpenCurrentDatabase dbname[, exclusive].

Grüße
Biber
Bitte warten ..
Mitglied: Marja
01.03.2006 um 15:34 Uhr
Hallo Biber

leider ohne Erfolg bei einigen, selbst denen die keine Schreibrechte haben funktioniert es und bei manchen nicht.

Das mit der verdeckten Batch Datei, kann mir das einer vielleicht nochmal richtig erklären, also irgendwie bekomme ich das nicht hin, sorry


Marja
Bitte warten ..
Mitglied: Biber
01.03.2006 um 15:48 Uhr
Hm, Marja,

und die (unwahrscheinliche) Erklärung, dass es gar nicht an dem VBS-Schnipsel liegt, sondern tatsächlich irgendein User diese Datei manchmal exklusiv öffnet und alle anderen dadurch blockiert?

Gilt denn wenigstens für die User, die NICHT draufkommen, die eine Fehlermeldung bekommen, dass das reproduzierbar ist - auch nach Feierabend, wenn kein anderer User mehr mit der *.mde arbeitet?

Ratlos
Biber
Bitte warten ..
Mitglied: maneich
01.03.2006 um 18:07 Uhr
Hallo,

eine Batch über VBS zu starten ist einfach.

Du schreibst eine VBS z.B. start.vbs

Inhalt:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "CMD.EXE /C Hier genau Adresse + Name.bat der Batch einfügen", 0
WScript.Quit


Beinhaltet die Adresse Leerzeichen dann in Doppelte Hochkomma einschließen.

WshShell.Run "CMD.EXE /C ""Hier genau Adresse + Name.bat der Batch einfügen""", 0

Das ist alles.


@Biber

Man lernt immer wieder etwas dazu; das mit der Angabe "false" war mir nicht bekannt.

MfG maneich
Bitte warten ..
Mitglied: Marja
02.03.2006 um 07:50 Uhr
mmh das ist gar nicht so einfach, den wie gesagt bei mir klappt das an jedem PC, bei unterschiedlichen anderen Personen nicht, dadurch das dies auch noch ein Schichtbetrieb ist ist es schwierig eine Minuten zu finden wo keiner dieses Tool nutzt

Vorher wie gesagt auch ohne Probleme erst durch das Office Update Service Paket.

Marja
Bitte warten ..
Mitglied: Marja
02.03.2006 um 08:02 Uhr
Hallo Maneich

würde es bedeuten:

WshShell.Run "CMD.EXE /C c:\blabla.bat", 0

??

Marja
Bitte warten ..
Mitglied: savanna
12.06.2007 um 21:44 Uhr
Das liegt an dem SP2, da wird WSH in der Registry standardmäßig ausgeschaltet.
Kann dir die Keys aber zukommen lassen wenn noch benötigt.
Bitte warten ..
Ähnliche Inhalte
Windows Server
Taskplaner startet batch Datei nicht
gelöst Frage von Diddi-tbWindows Server3 Kommentare

Hallo, habe mal wieder ein Problem mit dem starten einer Batch Datei über die Windows Taskplanung. Google hat mich ...

Windows Server
Batch-Datei startet in der Aufgabenplanung nicht
gelöst Frage von koehloWindows Server12 Kommentare

Hallo zusammen, ich bekomme das einfach nicht hin und hoffe jetzt auf Hilfe von den Profis. Ich arbeite mit ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben
Frage von MrRoyalVB for Applications1 Kommentar

Hallo zusammen, ich bin neu hier und kenne mich leider im Bereich VBS und Batch nicht so gut aus. ...

Windows 7
VBS als Aufgabe startet Programm nicht
gelöst Frage von citroendsvierWindows 72 Kommentare

Guten Abend, Vorneweg: Ich konnte mich nicht entscheiden, ob das hier eher Thema Windows 7 oder Shell ist. Ich ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 3 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 18 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 21 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...