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

Festplattenkapazität von Netzwerkrechnern auslesen

Frage Entwicklung

Mitglied: melanie1980

melanie1980 (Level 1) - Jetzt verbinden

02.02.2006, aktualisiert 30.03.2006, 11548 Aufrufe, 17 Kommentare

Ich möchte die Festplattenkapazität von den Client-Rechnern in meinem Netzwerk auslesen!

Anforderungen:
- Das Programm soll in VB realisiert werden!
- Über FSO oder Netzlaufwerk verbinden oder auf sonst eine Art und Weise soll auf bestimmte Clientrechner (Computername + Laufwerk) zugegriffen werden und den Füllzustand (Festplattenkapazität) ermittelt werden.
- Auf den Clientrechnern soll nichts installiert werden. Das Script soll als Job vom Server aus laufen, d.h. man müsste direkt auf den ClintPC verbinden.

Ich habe mir schon lange Gedanken gemacht, komm aber einfach auf keine Idee. hab hier im Forum schon lange rumgestöbert, aber nichts für meinen speziellen Fall gefunden...

Bitte um jede Art von Hilfe!!!

Mit freundlichen Grüßen aus Nürnberg
eure hilflose MELE
Mitglied: 23866
02.02.2006 um 11:57 Uhr
...nun, VB6 ist nur ein Hobby von mir, aber diese spezielle Frage, solltest Du hier stellen:

www.vb-archiv.de

dort bekommst Du was VB angeht die beste Hilfe die es gibt.
Bitte warten ..
Mitglied: Weiricth
02.02.2006 um 12:02 Uhr
hi,

also ich würds in clickexe (http://www.clickexe.de) da gibts die befehle vorgefertigt und man "Klickt" baut ich des schnell zusammen. des is a VB interpretter.

Grüße

TomTom

and never forget:

don't change a runing system
Bitte warten ..
Mitglied: 23866
02.02.2006 um 12:49 Uhr
cool... kannte ich gar nicht
Bitte warten ..
Mitglied: melanie1980
02.02.2006 um 13:33 Uhr
leider hat mich die click.exe sowie vb@archiv nicht weitergebracht...

ich hätte gern lösungsvorschläge! auf foren surfe ich schon in den letzten 30 stunden genug rum... dreh noch durch!

bitte bitte bitte
brauch hilfe
Bitte warten ..
Mitglied: 23866
02.02.2006 um 20:34 Uhr
Hallo,
nun ich nehme an Du ahst eine VB Version zum programmieren bei der Hand.

Hier ein Lösungsansatz mit FSO:
Du brauchst Form1, Text1, Command1
Text1 und Command1 plazierst Du auf die Form.

Jetzt der Code:

Private Sub Command1_Click()
Dim lw As String
Dim fs, d

lw = Text1.Text

Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(lw))
MsgBox "Freier Speicherplatz auf " & lw & FormatNumber(d.FreeSpace / 1024 / 1024, 0) & " MB"
End Sub

Wenn Du nun in die Textbox z.B.: C:\ schreibst und auf Command1 (Button) klickst, dann zeigt Dir das kleine Progamm, wieviel Speicher noch auf C:\ frei ist.

Voraussetzung für die Anzeige der Clientrechner Festplatten Kapazität ist, das Du jeden Rechner bzw. die Festplatte als Netzlaufwerk auf dem Server verbindest.

Grüsse Mike
Bitte warten ..
Mitglied: melanie1980
03.02.2006 um 09:30 Uhr
hallo,

erstmal vielen dank für den super tipp. hatte auch schon so etwas in der art, jedoch blüht ir noch eine lösung vor ohne de Netzlaufwerke verbinden zu müssen.

Gibt es überhaupt eine Möglichkeit auf die Festlpattenkapazität zugreifen zu können ohne sich ein Laufwerk zu verbinden???

bin auf jede meinung gespannt...

mele
Bitte warten ..
Mitglied: 23866
03.02.2006 um 09:38 Uhr
...hmm, ich denke das zu mindest das Laufwerk freigegeben sin muss im Netzwerk, denn wie soll ich es sonst finden.

Zum Thema die Kapazität abzufragen ohne die Netzlaufwerke zu verbinden muss ich mich mal schlau machen, aber ich glaube das es evtl. machbar ist.

Mal guggn....

Grüsse Mike
Bitte warten ..
Mitglied: Tundra
03.02.2006 um 09:39 Uhr
Kleine Programme kann man auch gut mit http://www.autoitscript.com/autoit3/ erstellen (Freeware).

Grüße
Guido
Bitte warten ..
Mitglied: 23866
03.02.2006 um 09:45 Uhr
hmmm.... jetzt würde mich interessieren, wie sich das mit AutoIt realisieren lässt.
Bitte warten ..
Mitglied: melanie1980
03.02.2006 um 11:13 Uhr
mit autoId bin ich mir sicher, werd ich keine lösung finden. das soll jetzt nicht böse klingen, aber solche programme sind bei einer so komplexen aufgabenstellung nicht geeignet!

ich schätze mal, dass ich bei meinem problem nicht drumherum kommen werde, mir die entsprechenden laufwerke der reihe nach zu verbinden... oder wüsste jdm. ne andre möglichkeit???

achja, und dann bin ich auf der suche nach einem funktionierenden vb-code, mit dem ich mir laufwerke über den pc-namen verbinden und wider trenne kann (mit benutzername und passowort!)

wie gesagt, bin für jede hilfe sehr dankbar
grüßle
melanie
Bitte warten ..
Mitglied: 23866
03.02.2006 um 11:28 Uhr
Bitte warten ..
Mitglied: 23866
03.02.2006 um 12:56 Uhr
hab da noch ein bisschen gestöbert und bin noch aus das hier gestossen:

http://www.vbarchiv.net/archiv/tipp_details.php?pid=791

oder

http://www.vbarchiv.net/archiv/tipp_details.php?pid=330

das solltest eigentlich problemlos einbauen können, falls nicht meld Dich einfach nochmal, werde versuchen dir dabei zu helfen.

grüsse mike
Bitte warten ..
Mitglied: Tundra
03.02.2006 um 13:25 Uhr
Einfache Beispiel in au3
<pre>
; Autor: Guido Eink
; Remote HDD ermitteln

;Konstanten und Variablen für die GUI
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus

;Fenster erstellen
GUICreate("System-Informationen",300,180)
GUISetBkColor("0xFFFFCA")
GUISetFont(9,400,0,"Arial")
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
;$CloseButton = GUICtrlCreateButton("Schließen",150,140,120,20)

GUICtrlCreateLabel("Rechner:",10,10) ;Position: left:30, top:10
$rechner = GUICtrlCreateInput("",80,10,140,20)

GUICtrlCreateLabel("Laufwerk:",10,50) ;Position: left:30, top:10
$lw = GUICtrlCreateInput("",80,50,40,20)

$okbutton = GUICtrlCreateButton("Anfrage",10,140,120,20)
GUICtrlSetOnEvent($okbutton, "OKButton")


;Fenster aufrufen
GUISetState(@SW_SHOW )
While 1
Sleep(1000) ; Häng rum
WEnd

func okbutton()
$anfrage = "\\" & GUICtrlRead($rechner) & "\" & GUICtrlRead($lw) & "$"
$var = DriveSpaceFree($anfrage)
GUICtrlCreateLabel("Ergebnis:",10,90) ;Position: left:30, top:10
GUICtrlCreateLabel($var & " MB",80,90,200,20) ;Position: left:30, top:10
EndFunc

func CLOSEClicked()
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
exit
EndFunc
</pre>
Bitte warten ..
Mitglied: melanie1980
09.02.2006 um 16:01 Uhr
also erstma danke für die vielen vorschläge und zahlreichen tipps,

da mir die lösung mit den verbinden von den laufwerken zu unsicher und unstabil erscheint, hab ich mich jetzt dafür entschieden, ein vb-script zu schreiben, welches ich auf den netzwerkerchnern über den scheduler bei jedem computerstart ablaufen lasse:

das programm vebindet sich per dns auf einen server mit oracle daten bank, auf der sich eine tabelle befindet mti folgenden daten:

rechnername
laufwerk (bsp. c: ODER c:/windows)
info (bsp. laufwerk oder verzeichnis)
freierspeicher (immer der gesamte speicher des rechners)
fuellzustand (bsp: 60 % ODER 14.000 MB je nachdem ob info = laufwerk (%) oder
verzeichnis (mb))
datum (der letzten speicherung)

das script holt sich alle datensätze, bei denen sich rechnername mit dem eigenen rechnernamen gleicht und deren datum älter als das heutige datum ist, so dass am tag nur eine speicherung vollzogen wird!

die laufwerksinfos für c: abzufragen ist einfach:

Private objFS
Private objDrive

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objDrive = objFS.GetDrive(Laufwerk)

FreierSpeicher = objDrive.FreeSpace
Speicherkapazitaet = objDrive.TotalSize

Speicherkapazitaet = FormatNumber(Speicherkapazitaet / 1024 ^ 2, 2)
FreierSpeicher = FormatNumber(FreierSpeicher / 1024 ^ 2, 2)
Fuellzustand = (FreierSpeicher / Speicherkapazitaet)

Set objFS = Nothing
Set objDrive = Nothing


nur für den fall das in einem datensatz bei INFO verzeichnis steht und dann sich in feld LAUFWERK ein C:/windows befindet, weiss ich keine lösung, denn dann soll anstand füllzustand in prozent --> die größe des verzeichnisses in mb eingetragen werden!

PROBLEM: doch wie kann ich die größe eines verzeichnisses herausbekommen????



wie immer mit freundlichen grüßen aus nürnberg
mele***
Bitte warten ..
Mitglied: melanie1980
23.02.2006 um 15:45 Uhr
hallo, ich bins wiedermal!

habe ein neues problem. es geht immernoch um meinen diskchecker!

ich bekomm ja mit dem code...


01.
Private objFS  
02.
Private objDrive  
03.
 
04.
Set objFS = CreateObject("Scripting.FileSystemObject")  
05.
Set objDrive = objFS.GetDrive(c:)  
06.
 
07.
FreierSpeicher = objDrive.FreeSpace  
08.
Speicherkapazitaet = objDrive.TotalSize 

...heraus, wie groß meine festplatte c: ist, aber gibts auch ne möglichkeit mir alle festplatten anzusehen. des geht irgendwie über fso.drives oder so? ich bekomm es aber nicht hin. hat da einer ne idee, also so nach dem motto

for each fso.drive in fso.drives
getVolumeName
get VolumeTyp etc.
getVolumeSize
getVolumeTotalSize
next




bitte um jede hilfe! bin hier schon wieder seit dienstag am rumsuchen. ich weiss, dass hier einige sind, die mir sicherlich weiterhelfen können, gell!

wunderbarste grüße aus nürnberg
eure melanie
Bitte warten ..
Mitglied: Tundra
23.02.2006 um 16:26 Uhr
Hi Melanie,

<pre>
option explicit

DIM O_FSO
DIM O_Laufwerk
DIM O_Laufwerke
DIM L_Wert

Set O_FSO = CreateObject("Scripting.FileSystemObject")
Set O_Laufwerke = O_FSO.Drives
for each O_Laufwerk in O_Laufwerke
if O_Laufwerk.IsReady then
L_Wert = "Laufwerk: " & O_Laufwerk.Driveletter & vbcrlf
L_Wert = L_Wert & " Type: " & O_Laufwerk.DriveType & vbcrlf
L_Wert = L_Wert & " Volume: " & O_Laufwerk.Volumename & vbcrlf
L_Wert = L_Wert & " Dateisystem: " & O_Laufwerk.FileSystem & vbcrlf
L_Wert = L_Wert & " Gesamtgröße: " & formatnumber(O_Laufwerk.Totalsize/1048576,1) & " MB" & vbcrlf
L_Wert = L_Wert & " Frei: " & FormatNumber(O_Laufwerk.FreeSpace/1048576,1) & " MB" & vbcrlf
L_Wert = L_Wert & " Seriennummer: " & O_Laufwerk.SerialNumber
wscript.echo L_Wert
end if
next
</pre>

Grüße
Guido
Bitte warten ..
Mitglied: Xaero1982
30.03.2006 um 14:05 Uhr
Alternative via WMI und Vbscript. Alternativ zur Messagebox kann man das auch in eine txt schreiben etc.
01.
On Error Resume Next 
02.
Const CONVERSION_FACTOR = 1048576 
03.
 
04.
Const WbemAuthenticationLevelPktPrivacy = 6 
05.
 
06.
strUser = InputBox("Please enter the user name: ") 
07.
strPassword = InputBox ("Please enter the Passwort: ") 
08.
strNamespace = "root\cimv2" 
09.
 
10.
'Wiederholt so lange Host erreichbar ist bzw nicht unbekannter host als Meldung erscheint! 
11.
do 
12.
    strComputer = InputBox ("Please enter the name of the computer you want to connect to: ") 
13.
 
14.
    If strComputer = "" Then 
15.
    do 
16.
        strComputer = InputBox("Please enter correct Computername: ") 
17.
 
18.
    loop until strComputer <> "" OR strComputer = False 
19.
    End If 
20.
 
21.
    'Erreichbarkeit des PC's testen - Ping================== 
22.
 
23.
    Set objShell = CreateObject("WScript.Shell") 
24.
    strCommand = "%comspec% /c ping -n 3 -w 1000 " & strComputer & "" 'Ping ausführen 
25.
    Set objExecObject = objShell.Exec(strCommand) 
26.
	'======================================================= 
27.
    Do While Not objExecObject.StdOut.AtEndOfStream 
28.
        strText = objExecObject.StdOut.ReadAll() 
29.
            If Instr(strText, "Anforderung") > 0 Then 
30.
               objshell.popup "Host " & strComputer & " nicht erreichbar!",3 
31.
            elseif Instr(strText, "Unbekannter Host " & strComputer & ".") <> 0  then 
32.
               objshell.popup "Host " & strComputer & " nicht erreichbar!",3 
33.
            end if 
34.
    loop 
35.
loop while  Instr(strText, "Unbekannter Host " & strComputer & ".")<>0 OR Instr(strText, "Anforderung") > 0 
36.
'======================================================= 
37.
 
38.
'Verbindung zum WMI Namespace herstellen================ 
39.
    Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
40.
    Set objWMIService = objwbemLocator.ConnectServer (strComputer, strNamespace, strUser, strPassword) 
41.
    objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy 
42.
'======================================================= 
43.
 
44.
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk") 
45.
 
46.
   For Each objItem In colItems 
47.
      Message = Message & ("Name: " & objItem.Name) &vbcrlf 
48.
      Message = Message & ("FreeSpace: " & objItem.FreeSpace / CONVERSION_FACTOR & " MB") &vbcrlf 
49.
      Message = Message & ("Size: " & objItem.Size / CONVERSION_FACTOR & " MB") &vbcrlf 
50.
   Next 
51.
    
52.
   wscript.echo Message
Die ersten Inputboxen brauchst du um die verbindung zum Remotenamespace herzustellen.
Dementsprechend brauchst du Adminrechte auf allen Maschinen.

*EDIT Fehler behoben*
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Batch & Shell
gelöst Appx aus Image auslesen und entfernen (9)

Frage von Markus2016 zum Thema Batch & Shell ...

JavaScript
gelöst Dropdownfeld auslesen und mit AJAX und JS an PHP senden (7)

Frage von ITFlori zum Thema JavaScript ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...