Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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
GELÖST

falsche anzahl netzlaufwerke?

Frage Entwicklung VB for Applications

Mitglied: 53111

53111 (Level 1)

10.09.2007, aktualisiert 13:46 Uhr, 3554 Aufrufe, 3 Kommentare

hallo ich habe mein script noch etwas erweitert und will noch einige dinge überprüfen lassen bevor dann eine sub gestartet werden soll.

irgendwie werden immer 2 laufwerke zuviel gezählt. ich erwarte eigentlich eine test = netzobjekt.EnumNetworkDrives die doppelte anzahl wie ich laufwerke besitze. (d.h. bei 6 elementen 3 vorhandene laufwerke?)

wo ist mein fehler? und lässt er sich sauber mit dem "-2" beheben?

01.
Dim netzobjekt, benutzername, laufwerkarray, arraylaenge  
02.
set netzobjekt=wscript.createobject("wscript.network") 
03.
benutzername = netzobjekt.UserName 
04.
 
05.
'Pfad der Protokoll-Datei hier einstellen:' 
06.
Name = "C:\Dokumente und Einstellungen\"&benutzername&"\Desktop\Protokoll_zu_neuen_Netzlaufwerken.txt" 
07.
 
08.
 
09.
Set test = netzobjekt.EnumNetworkDrives 
10.
 
11.
 
12.
'Laufwerknamen + gewünschten Pfad hier einstellen:' 
13.
laufwerkarray = Array(	"H:",_ 
14.
			                  "\\Server2\Home\"&benutzername,_ 
15.
			                  "X:",_ 
16.
			                  "\\Server2\work",_ 
17.
			                  "Z:",_ 
18.
			                  "\\Server2\apps"_ 
19.
20.
 
21.
arraylaenge = UBound(laufwerkarray) + 1  
22.
 
23.
 
24.
 
25.
If test.Count <> 0 Then 
26.
 
27.
    If test.Count - 2 = arraylaenge Then   'falsche anzahl an laufwerken???' 
28.
     
29.
    	 For k = 0 to UBound(laufwerkarray)			 
30.
		      If test.Item(k) = laufwerkarray(k) And test.Item(k+1) = laufwerkarray(k+1) Then 
31.
    	        wscript.Echo "alles ok" 
32.
          Else 
33.
                wscript.Echo "else 3" 
34.
         	  'sub aufrufen' 
35.
	        End If 
36.
    	 Next 
37.
       
38.
    Else 
39.
        wscript.Echo "else 2" 
40.
    'sub aufrufen'  
41.
     
42.
    End If  
43.
 
44.
Else 
45.
   wscript.Echo "else 1" 
46.
'sub aufrufen ' 
47.
 
48.
End If 
49.
 
50.
 
51.
 
52.
 
53.
 
54.
 
55.
 
56.
 

irgendwie erscheint dann auch ein fehler in der innersten if entscheidung?

gruß saibonaut
Mitglied: bastla
10.09.2007 um 12:29 Uhr
Hallo saibonaut!

Die "EnumNetworkDrives"-Aufzählung kann auch Laufwerksverbindungen ohne zugeordneten Laufwerksbuchstaben enthalten.

Lass Dir doch einfach zur Kontrolle die entsprechenden Werte anzeigen, etwa:
01.
For i = 0 to test.Count - 1 Step 2 
02.
    WScript.Echo "Laufwerk " & test.Item(i) & " = " & test.Item(i + 1) 
03.
Next
Abgesehen davon, dass ich eine übereinstimmende Reihenfolge der Elemente in beiden Arrays nicht voraussetzen, sondern zur Sicherheit jedes Element in einer zweiten Schleife vergleichen würde, solltest Du eher
01.
For k = 0 to UBound(laufwerkarray) - 1 Step 2
verwenden, weil Du ansonsten bei tatsächlich gleicher Anzahl von Elementen mit dem Index (i + 1) "out of bounds" landest.

Grüße
bastla
Bitte warten ..
Mitglied: 53111
10.09.2007 um 12:54 Uhr
ok wenn das so "Die "EnumNetworkDrives"-Aufzählung kann auch Laufwerksverbindungen ohne zugeordneten Laufwerksbuchstaben enthalten." ist macht ein überprüfung nicht viel sinn. ich wollte mit diesen überprüfungen eigentlich verhindern dass die protokoll datei mehrmal geschrieben wird:
Bitte warten ..
Mitglied: 53111
10.09.2007 um 13:46 Uhr
ich habs jetzt so gelöst. scheint zu funktionieren?

01.
Dim netzobjekt, benutzername, laufwerkarray, arraylaenge, zaehler  
02.
set netzobjekt=wscript.createobject("wscript.network") 
03.
benutzername = netzobjekt.UserName 
04.
 
05.
Set test = netzobjekt.EnumNetworkDrives 
06.
	 
07.
'Laufwerknamen + gewünschten Pfad hier einstellen:' 
08.
laufwerkarray = Array(	"H:",_ 
09.
			                  "\\Server2\Home\"&benutzername,_ 
10.
			                  "X:",_ 
11.
			                  "\\Server2\work",_ 
12.
			                  "Z:",_ 
13.
			                  "\\Server2\apps"_ 
14.
15.
		                  
16.
zaehler = 0 
17.
 
18.
 
19.
If test.Count <> 0 Then 
20.
    
21.
      	For h = 0 to UBound(laufwerkarray) - 1 Step 2 
22.
        	 For g = 0 to test.Count - 1 Step 2 
23.
      		    If laufwerkarray(h) = test.Item(g) And laufwerkarray(h+1) = test.Item(g+1) Then 
24.
          		wscript.Echo "trifft zu" 
25.
              zaehler = zaehler + 1  
26.
              Else		 
27.
              wscript.Echo "trifft nicht zu"     
28.
      		    End If 
29.
           Next 
30.
        Next 
31.
         
32.
        If zaehler = (UBound(laufwerkarray) + 1) / 2 Then 
33.
               
34.
        Else 
35.
             call sublaufwerke  
36.
        End If 
37.
         
38.
    
39.
Else 
40.
   wscript.Echo "else 1" 
41.
   call sublaufwerke  
42.
End If 
43.
 
44.
 
45.
 
46.
Sub sublaufwerke  
47.
 
48.
      'Pfad der Protokoll-Datei hier einstellen:' 
49.
      Name = "C:\Dokumente und Einstellungen\"&benutzername&"\Desktop\Protokoll_zu_neuen_Netzlaufwerken.txt" 
50.
 
51.
 
52.
      Set InfoDateiObjekt = CreateObject("Scripting.FileSystemObject") 
53.
      Set InfoDatei = InfoDateiObjekt.OpenTextFile(Name, 2, True) 
54.
      Set objFile = InfoDateiObjekt.GetFile(Name) 
55.
        
56.
        
57.
        InfoDatei.WriteLine "Die folgenden Netzlaufwerke wurden gelöscht: " 
58.
        InfoDatei.WriteLine " " 
59.
      	 
60.
      For i = 0 to test.Count - 1 Step 2 
61.
      	For j = 0 to UBound(laufwerkarray)			 
62.
      		If test.Item(i) = laufwerkarray(j) Then 
63.
          		InfoDatei.WriteLine test.Item(i) &" "& test.Item(i+1) 				 
64.
              netzobjekt.RemoveNetworkDrive laufwerkarray(j), true, true				 
65.
      		End If 
66.
      	Next 
67.
      Next 
68.
       
69.
      'bei mehr Laufwerken erweitern - pro Laufwerk werden 2 neue Werte benötigt' 
70.
      netzobjekt.mapnetworkdrive laufwerkarray(0), laufwerkarray(1), true 
71.
      netzobjekt.mapnetworkdrive laufwerkarray(2), laufwerkarray(3), true 
72.
      netzobjekt.mapnetworkdrive laufwerkarray(4), laufwerkarray(5), true 
73.
      'hier erweitern für Laufwerkmapping' 
74.
      	 
75.
        InfoDatei.WriteLine " " 
76.
        InfoDatei.WriteLine " " 
77.
        InfoDatei.WriteLine "Die gelöschten Netzlaufwerke wurden mit folgen Pfaden neu verbunden: " 
78.
        InfoDatei.WriteLine " " 
79.
        InfoDatei.WriteLine laufwerkarray(0) &" "& laufwerkarray(1) 	 
80.
        InfoDatei.WriteLine laufwerkarray(2) &" "& laufwerkarray(3) 	 
81.
        InfoDatei.WriteLine laufwerkarray(4) &" "& laufwerkarray(5) 	 
82.
        'hier erweitern für Infodatei' 
83.
        InfoDatei.Close  
84.
 
85.
End Sub  
86.
 
87.
 
88.
 
89.
 
90.
 
Bitte warten ..
Ähnliche Inhalte
Netzwerkmanagement
Subnettig - max anzahl an Subnetze (23)

Frage von Meterpeter zum Thema Netzwerkmanagement ...

Datenbanken
gelöst SQL-Abfrage - Anzahl der Wechsel zählen (15)

Frage von Cire48 zum Thema Datenbanken ...

Voice over IP
gelöst VoIP - Was kann man alles falsch machen? (20)

Frage von MegaGiga zum Thema Voice over IP ...

Windows Server
Netzlaufwerke verbinden sich nicht (6)

Frage von MyBRis4Shot zum Thema Windows Server ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (17)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...