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

WSH - Filezugriff macht Ärger

Frage Entwicklung

Mitglied: WaldSchr4T

WaldSchr4T (Level 1) - Jetzt verbinden

01.12.2005, aktualisiert 02.12.2005, 5325 Aufrufe, 3 Kommentare

Überprüfen ob eine File "bereit" ist, ob man lesen / schreiben kann

Wir haben das Problem, dass under WSH-Script manchmal Probleme beim Dateiaufruf erzeugt. Es soll nur "Stopped" oder "Running" in eine *.txt-Datei schreiben, gibt aber manchmal eine Fehlermeldung: "Erlaubnis verweigert" an der Stelle an der man die Datei öffnet. Kann man das Abfangen, oder irgendwie mehrmals probieren bis es geht? Kann es sein, dass dieser Fehler auftritt, wennn man eine Datei aus einer Batchdatei heraus anspricht? Oder kann es daran liegen, dass das WSH-Skript 2 mal recht schnell hintereinander ausgeführt wird?


<font class="code">
Const ForAppending = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSO.OpenTextFile("service.txt", _
ForAppending, True)

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colListOfServices = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='Apache2'")

For Each objService in colListOfServices
objLogFile.Write(objService.State)
Next
objLogFile.Close
</font>
Mitglied: gemini
01.12.2005 um 19:13 Uhr
Hallo WaldSchr4t,

zunächst, ForAppending hat den Wert 8, 2 = ForWriting.

Ich nehme an, dass die Rechte auf service.txt passen.

An dem Aufruf aus einem Batch heraus wird es nicht liegen.
Wahrscheinlicher ist, dass die service.txt zum zweiten Mal geöffnet wird, bevor sie geschlossen worden ist.

Gruß
gemini
Bitte warten ..
Mitglied: coli
01.12.2005 um 23:59 Uhr
gelöscht, da blödsinn ..
Bitte warten ..
Mitglied: Biber
02.12.2005 um 18:05 Uhr
@coli
Ich finde Deinen Tipp genial - wenn ich geahnt hätte, dass sich in WSH einfach on the fly Methoden dazuerfinden lassen wie Deine objLogFile.Quit, dann wäre ich schon vor Monaten von Bätch auf WSH umgestiegen.

Kann ich denn auch einfach schreiben:
If objLogFile.AnyProblems Then objLogFile.ForgetIt
??

@WaldSchr4T
Wenn Du die Wahrscheinlichkeit der Zugriffskollisionen minimieren willst, dann stell Deine paar Zeilen sinnvoll um und öffne die Logdatei erst, wenn Du etwas zu schreiben hast.
Im Moment ist die Logdatei exclusiv geöffnet, bevor Du überhaupt ein Objekt objWMIService erstellt hast, geschweige denn dieses geantwortet hat. Wenn dieser Service sich (theoretisch) mal 3 Minuten Zeit lässt zum Antworten, ist die Datei für diese Dauer gesperrt.
Wenn der CodeSchnipsel an dieser Stelle abschmiert (Objekt kann nicht erstellt werden und Programm knallt weg), dann würde ich auch nicht darauf wetten, das M$ das offene FileHandle sofort schließt.
Kleine Randfrage: Wie sinnvoll ist denn so ein LogFile, in dem dann nach ein paar Wochen meterlang Zeilen mit "Running" und "Stopped" untereinanderstehen?

Schönes Wochenende
Biber
[Edit] @coli
Sorry, coli, sooo vernichtend hab ichs auch nicht gemeint... ich wollte nur die "objLogFile.Quit" nicht unkommentiert stehen lassen.
Ich war wohl ein bisschen übermütig, weil endlich Wochenende ist. Tut mir Leid. War aber bezogen auf den Tipp und nicht die Person. [/Edit]
Bitte warten ..
Ähnliche Inhalte
Switche und Hubs
gelöst LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (31)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Internet
IMDb schließt Filmforen und macht sie unzugänglich (2)

Link von Deepsys zum Thema Internet ...

Windows 10
gelöst Notebook macht sehr viel Traffic (9)

Frage von DeathNote zum Thema Windows 10 ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(2)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
Lokales Adminprofil defekt (18)

Frage von Yannosch zum Thema Windows 7 ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (11)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (9)

Frage von zelamedia zum Thema Internet Domänen ...