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

Abfrage, ob Dateien aus einem bestimmten Verzeichnis geöffnet sind

Frage Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

22.12.2009 um 14:38 Uhr, 7353 Aufrufe, 8 Kommentare

Hallo zusammen,

ich habe hier einen Server auf dem eine Anwendung läuft, die häufiger Updates und Konvertierungsläufe benötigt. Nun ist es so dass der Fachverantwortliche die Anwendung während eines Updates sperrt, so dass die Benutzer beim Anmeldeversuch eine entsprechende Meldung bekommen und über die Anmeldemaske nicht drüber kommen.
Leider reciht es aus dass die Anmeldemaske geöffnet ist, um das Update zu blockieren. Daher folgende Frage:

Ist es möglich per Batch aus der Computerverwaltung eines entfernten Computers unter "Systen/Freigegebene Ordner/Geöffnete Dateien" auszulesen, ob Dateien aus einem bestimmten Verzeichnis geöffnet sind? Soll für den Fachverantwortlichen eben möglichst einfach sein, da er mit Windows-Administration nix am Hut hat

Bin dankbar für jeden Vorschlag


Gruß
Larz
Mitglied: rubberman
22.12.2009 um 19:03 Uhr
Hallo Larz,

ich bin mir nicht sicher, ob Dir openfiles.exe an der Stelle was bringen könnte, á la
openfiles.exe /query [/s Computer [/u Domain\User [/p Password]]] [/fo {TABLE|LIST|CSV}] [/nh] [/v]

Grüße
rubberman
Bitte warten ..
Mitglied: Larz
23.12.2009 um 12:57 Uhr
Hallo rubberman,

super, das passt schon mal! Einen Dump der Liste habe ich nun schon. Ist 400 kB groß. Jetzt wollte ich mit

01.
for /f "delims=" %%i in ('findstr "C:\..\Verzeichnis\Unterverzeichnis\" c:\\temp\openfiles.txt') do echo %%i"
alle Zeilen auslesen, die "C:\..\Verzeichnis\Unterverzeichnis\" enthalten - aber das Script bleibt dabei hängen und ich finde den Fehler nicht...
Any ideas?


Gruß
Larz
Bitte warten ..
Mitglied: rubberman
23.12.2009 um 13:30 Uhr
Hallo Larz,

der Fehler sollte darin begründet sein, dass FINDSTR jede Suchzeichenfolge erstmal grundsätzlich wie einen regulären Ausdruck behandelt (RegExp).
Afaik 2 Möglichkeiten - entweder du escapest jeden Backslash durch einen zweiten oder du benutzt die Option /L.

Grüße
rubberman
Bitte warten ..
Mitglied: Larz
23.12.2009 um 14:51 Uhr
Hallo Rubberman,

ja, die doppelten Backslashes haben geholfen - jetzt sieht das Script so aus:

01.
REM Hier zu prüfenden Computernamen eingeben 
02.
set CompName=SERVERNAME 
03.
REM hier den Suchstring eingeben  
04.
set SearchString=C:\\..\\Unterverzichnis\\UnterUnterverzeichnis\\ 
05.
@echo Erstelle Liste offener Dateien 
06.
openfiles /query /s %CompName% > %temp%\OpenFiles_%CompName%.txt 
07.
for /f "delims=" %%i in ('findstr "%SearchString%" %temp%\OpenFiles_Filer-b.txt') do echo %%i >> %temp%\Wer_hat_auf_%CompName%_noch_Dateien_auf.txt 
08.
%temp%\Wer_hat_auf_%CompName%_noch_Dateien_auf.txt 
09.
del %temp%\OpenFiles_%CompName%.txt 
10.
del %temp%\Wer_hat_auf_%CompName%_noch_Dateien_auf.txt
ABER: Er schreibt mir in die Ergebnisdatei nur geöffnete/ausgeführte exe-Dateien, nicht jedoch DBF-Dateien z.B....

hm...


Larz
Bitte warten ..
Mitglied: rubberman
23.12.2009 um 16:53 Uhr
Hallo Larz,

bin im Winterurlaub und kann das ganze gerade so gar nicht testen. Welche der beiden Ergebnisdateien meinst du, bzw welche Zusatzinformationen bekommst du denn mit der Option /V von OPENFILES?

Grüße
rubberman
Bitte warten ..
Mitglied: Larz
05.01.2010 um 07:46 Uhr
Moin rubberman,

da bekomme ich lediglich noch Infos über Lese- und/oder Schreibrechte...

Gruß
Larz
Bitte warten ..
Mitglied: rubberman
05.01.2010 um 14:02 Uhr
Hallo Larz,

also verstehe ich es richtig, dass in der von OPENFILES erzeugten Datei bereits die Daten fehlen?!

Hmm. WMI wäre mglw. noch eine Alternative. Vielleicht denke ich aber auch verkehrt.
Passe mal dieses VBScript deinen Bedürfnissen an:

*.vbs
01.
strcomputer = "." 
02.
Set objInstances = GetObject("winmgmts://" & strcomputer & "/root\cimv2").InstancesOf("Win32_Process", 48) 
03.
On Error Resume Next 
04.
For Each objInstance in objInstances 
05.
  With objInstance 
06.
    IF .CommandLine <> "" Then 
07.
      CmdLines = CmdLines & .CommandLine & vbCrLf 
08.
    End If 
09.
  End With 
10.
On Error Goto 0 
11.
Next 
12.
 
13.
WScript.Echo CmdLines
Zumindest würde eine an die exe übergebene Datei als Parameter mit erscheinen.

Grüße
rubberman
Bitte warten ..
Mitglied: Larz
07.01.2010 um 08:03 Uhr
Hallo Rubberman,

WMI ist leider keine Option. Das Zielgerät, der "Computer" ist nämlich in Wirklichkeit ein Netzwerkspeichersystem, ein "Filer" von Advanced Unibyte.
Da geht eine Abfrage via WMI nicht. Ich komme eben nur per Computerverwaltungs-Snapin auf die offenen Dateien...


Gruß
Larz
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien in einem Verzeichnis mergen - rekursiv (10)

Frage von frad1980 zum Thema Batch & Shell ...

Batch & Shell
gelöst Problem mit "username" abfrage in Batch Dateien (5)

Frage von KriAIT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...