[VBS] Error opvangen bij disconnect/mappen van share*

Pagina: 1
Acties:

  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 21-01 15:47
Ik weet niet of ik hier moet zijn met mijn vraag over Visual Basic Scripting, anders vertrouw ik op de mods om me door te verwijzen ;)
*edit*
Oeps, ik zie nu dat ik ook een fatsoenlijke titel vergeten ben, excuus

Ik heb onderstaand script, het is oerlelijk, maar het werkt, het vraagt om een wachtwoord en gebruikersnaam en gaat met die gegevens een schijfje toevoegen, die schijf is met NTFS beveiligd en dat werkt allemaal mooi. Als de netwerkverbinding echter al bestaat komt er een foutmelding die zegt dat de boel al bestaat. Als ik echter eerst de netwerkverdinging vernietig komt er een foutmelding als de verbinding niet bestaat.

Wat ik wil is dus een if statement o.i.d. dat kijkt of de netwerkverbinding, of uberhaupt netwerkverbindingen, met de doelcomputer bestaan. Als dat zo is verwijder deze en maak nieuwe verbindingen, als dat niet zo is, maak dan gelijk nieuwe verbindingen. Maar ik kan nergens een commando vinden dat controleert of een netwerkverbinding reeds bestaan, iemand een suggestie?

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
strDriveletter = "Z:" 
strRemoteShare = "\\fserver\commissie" 
strPersist = "FALSE" 
'=============================== 
' driveletters en shares naar behoefte aanpassen 
'=============================== 

dim strGebruikersnaam
strGebruikersnaam = InputBox("Voer de gebruikersnaam in: (bijvoorbeeld almanak)")
dim strWachtwoord
strWachtwoord = InputBox("Voer het wachtwoord in:")

Set objNetwork = CreateObject("WScript.Network") 
Set objIE = WScript.CreateObject("InternetExplorer.Application") 
objIE.Navigate "about:blank"    
objIE.ToolBar = 0 
objIE.StatusBar = 0 
objIE.Resizable = 0 
objIE.Width=400 
objIE.Height = 200  
objIE.Left = 100     
objIE.Top = 100 
objIE.Document.Title = ServerList 
objIE.Document.Body.Style.fontFamily = "Times New Roman" 
objIE.Document.body.style.fontSize = "12pt" 
objIE.Document.body.style.color = "white" 
objIE.document.body.style.backgroundColor = "#cc0000" 
objIE.document.body.style.borderStyle = "none" 
Set objDoc = objIE.Document.Body 
objIE.Visible = 1     

Do While (objIE.Busy) 
    Wscript.Sleep 2000 
Loop 

'=============================== 
' vraag de gebruiker en computernaam uit 
'=============================== 

strUser = objNetwork.UserName 
strcomputer = objNetwork.computername     
objDoc.InnerHTML = "Hello "& strUser & ", Welcome to "& strcomputer &  "." 
Wscript.Sleep 2000          
objDoc.InnerHTML = "De verbindingen met de schijven worden gemaakt. " _ 
    & "This might take several seconds to complete." 
Wscript.Sleep 2000 

objNetwork.MapNetworkDrive strDriveletter, strRemoteShare, strPersist, strGebruikersnaam, strWachtwoord  
objDoc.InnerHTML = "Connected " & strRemoteShare & " as drive " & strDriveLetter & "<BR>" 
WScript.Sleep 500 

objDoc.InnerHTML = "Verbindingen met de fileserver zijn gemaakt.<br> Ciao en de mazzel!" 
Wscript.Sleep 2000 
objIE.Quit

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

"On Error Resume Next" lijkt me jouw oplossing te zijn. Waarom moeten mensen eigenlijk hun username/password opgeven voor zoiets? :)

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Wat is er erg aan "net use z: /d" doen als z: niet echt bestaat? Dit is zo simpel dat er geen VBS voor nodig is.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Het is niet erg als je een script van me copy/paste ;) , maar doe dan in ieder geval wel ook zelf de moeite om een oplossing te vinden.
http://www.microsoft.com/...ources/qanda/desktop.mspx

Daar staan een aantal dingen die je kan integreren in je script.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 21-01 15:47
wat is er erg aan, geen idee, ik probeer het zo, er zijn meer wegen die naar Rome leiden

Ik heb nu dit scriptje gefabriceerd en eerlijk gezegd werkt het perfect, als er reeds netwerkverbindingen bestaan worden die verbroken, hardstikke makkelijk eigenlijk

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives
dim strDrivenaam
dim intAantalDrives
dim intJ
intJ = 0

intAantalDrives = (oDrives.Count/2)
if intAantalDrives > 0 Then
    For i = 1 to intAantaldrives
        WshNetwork.RemoveNetworkDrive oDrives.Item(intJ), true, true
        Set oDrives = WshNetwork.EnumNetworkDrives
    Next
    WScript.Echo intAantalDrives & " netwerkverbindingen verwijderd"
else
    WScript.Echo "Geen netwerkverbindingen om te verwijderen"
end if