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

falsche anzahl netzlaufwerke?

Frage Entwicklung VB for Applications

Mitglied: 53111

53111 (Level 1)

10.09.2007, aktualisiert 13:46 Uhr, 3546 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
Microsoft Office
gelöst Automatisch entscheiden ob prozentual oder fest anzahl von Datensätze (7)

Frage von hugothemagpie zum Thema Microsoft Office ...

Exchange Server
Exchange 2010 Konto Maximale Odner Anzahl in Outlook begrenzen (4)

Frage von giesalv zum Thema Exchange Server ...

Netzwerkmanagement
Verliere Netzlaufwerke in unregelmäßigen abständen (11)

Frage von malkie zum Thema Netzwerkmanagement ...

Windows Server
gelöst Windows Server 2008 R2 Portfreigabe für Netzlaufwerke (3)

Frage von Keule3112 zum Thema Windows Server ...

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
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...

Internet Domänen
Nameserver ein Geist? (9)

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