rdm.vbs -- drivemappings

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
Hoi allemaal,

Ik ben bezig met een drivemapping scriptje.

Ik heb de techniek uitgezocht met wat hulp documenten en deze werkt nu naar behoren. Maar nu heb ik deskundig advies nodig!


Ik heb niet heel erg veel verstand van vbs maar ik wil dus graag een optie toevoegen die zorgt dat het script stopt als de mappings al gemaakt zijn.

Ik zelf dacht aan een variable zetten op het profiel van de gebruiker die het script kan herkennen met een bepaalde if statement.

Die variable moet dan dus gezet worden nadat dmps.bat (afkorting voor Drivemappings.bat) is gedraait.

Het is de bedoeling dat er dus geen msgbox komt als ze er al zijn om steeds terugkomende boxen te verkomen.


VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
result = MsgBox ("Wanna map your personal Drive Mappings?", _
    vbYesNo+vbDefaultButton1, "Drive Mappings")

Dim message

Select Case result
Case vbYes
    dim shell
    set shell=createobject("wscript.shell")
    shell.run "dmps.bat"
    set shell=nothing
    message = "Your drivemappings are succesfully mapped!"
Case vbNo
    message = "No Drive Mappings are mapped!"
End Select

MsgBox message, vbInformation, "Drive Mappings"

[ Voor 9% gewijzigd door Bielie993 op 16-09-2011 14:38 ]


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 12:09

Armageddon_2k

Trotse eigenaar: Yamaha R6

Je zou gebruik kunnen maken van enviroment variables:

VBScript:
1
2
3
4
5
6
7
8
9
Set objShell = CreateObject("WScript.Shell")
Set colSystemEnvVars = objShell.Environment("System")
Set colUserEnvVars = objShell.Environment("User")

MsgBox colSystemEnvVars("PATH")
MsgBox colUserEnvVars("PATH")

colUserEnvVars("MyVariable") = 0 
MsgBox colUserEnvVars("MyVariable")


linkje

Dit stukje kan je gebruiken voor je eigen variabele aan te maken en uit te lezen.
VBScript:
1
2
colUserEnvVars("MyVariable") = 0 
MsgBox colUserEnvVars("MyVariable")


De vraag is alleen of dit wel handig is. Wat als de gebruiker het script runt, en later zelf de mappings weghaalt... Dan loopt je script niet opnieuw en heb je geen mappings. Of zie ik dit verkeerd?

ps: als je code tags gebruikt op GOT, heb je de mogelijkheid om:code=vbs te gebuiken, hiermee krijg je automatisch syntax highlighting ;)

[ Voor 19% gewijzigd door Armageddon_2k op 16-09-2011 14:18 ]


Acties:
  • 0 Henk 'm!

  • mhoogendam
  • Registratie: Oktober 2002
  • Laatst online: 11:32
Waarom doe je de drivermappings niet gewoon via VBS?
http://www.devguru.com/te...work_mapnetworkdrive.html

Is er een reden waarom de drivemappings niet gedaan mogen worden en je deze dus zou willen stoppen?

Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
De reden dat ik dit niet doe is omdat ik een .exe bestand van de vbs maak en de .bat dan altijd nog kan veranderen en waar nodig dingen toevoegen.

Het is misschien handiger om te controleren of bijvoorbeeld de G: drivemapping aanwezig is. En zoniet het scriptje dan te draaien?

De G: is het belangrijkste op het netwerk dus als deze er niet is weten we genoeg.

Ik weet niet of hier nog de mogelijkheden voor zijn binnen vbs.

Misschien zoals ik het in msl zou doen:
code:
1
2
if ($ndisk(G:)) { goto :end }
else {
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
result = MsgBox ("Wanna map your personal Drive Mappings?", _ 
    vbYesNo+vbDefaultButton1, "Drive Mappings") 

Dim message 

Select Case result 
Case vbYes 
    dim shell 
    set shell=createobject("wscript.shell") 
    shell.run "dmps.bat" 
    set shell=nothing 
    message = "Your drivemappings are succesfully mapped!" 
Case vbNo 
       message = "No Drive Mappings are mapped!" 
End Select 

MsgBox message, vbInformation, "Drive Mappings"
code:
1
2
3
}
:end
halt\cls

Acties:
  • 0 Henk 'm!

  • redfoxert
  • Registratie: December 2000
  • Niet online
Leg eens uit waarom je een exe maakt van je vbs?

https://discord.com/invite/tweakers


Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
Ik maak er een exe van zodat hij beter te gebruiken is met programma's die ik gebruik. Maar dit is niet echt van belang het gaat vooral om de werking.

Acties:
  • 0 Henk 'm!

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 14:50
jij zoekt zoiets:
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function MapDrive(Drive, Path)
        Dim i, oDrives
        Set oDrives = wshNetwork.EnumNetworkDrives
        For i = 0 to oDrives.Count - 1 Step 2   ' Find out if an existing network drive exists
  If oDrives.Item(i) = Drive Then
         WScript.Echo "Drive exists, not mapping drive"
  Else
        WScript.Echo "Mapping drive: " & Drive & " to path: " & Path
        wshNetwork.MapNetworkDrive Drive, Path
        End If
        Next
        Set i = Nothing
        Set oDrives = Nothing
        Set Drive = Nothing
        Set Path = Nothing
  End Function

[ Voor 5% gewijzigd door Meekoh op 16-09-2011 14:57 ]

Computer says no


Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
Dit betekend dat ik Mapdrive(G:, \\server\share)

kan gebruiken als if?

Acties:
  • 0 Henk 'm!

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 14:50
Bielie993 schreef op vrijdag 16 september 2011 @ 14:58:
Dit betekend dat ik Mapdrive(G:, \\server\share)

kan gebruiken als if?
Deze functie zou je zo aan kunnen roepen. Wel ff tussen quotejes doen.
Hij gaat dan die schijf mappen aan die share en er zit een check ik die niets doet als hij al bestaat.

Computer says no


Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
ik denk niet dat dit is wat ik wil. Ik wil eigenlijk een check die doorgaat naar het script in post 1 als hij niet mapped is en stopt als hij wel mapped is.

Acties:
  • 0 Henk 'm!

  • Meekoh
  • Registratie: April 2005
  • Laatst online: 14:50
Bielie993 schreef op vrijdag 16 september 2011 @ 15:07:
ik denk niet dat dit is wat ik wil. Ik wil eigenlijk een check die doorgaat naar het script in post 1 als hij niet mapped is en stopt als hij wel mapped is.
uuhm, het is allebei vbscript, je kunt zo mijn code copy pasten in jou script.

edit: zo dus (kon het niet laten :9 )
edit2: die echo's kun je er eventueel uit slopen.
Visual Basic .NET:
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
result = MsgBox ("Wanna map your personal Drive Mappings?", _
    vbYesNo+vbDefaultButton1, "Drive Mappings")

Dim message

Select Case result
Case vbYes
    Mapdrive([i]driveletter die je wilt[/i],[i]pad naar de share die je wilt[/i])
    Mapdrive([i]2edriveletter die je wilt[/i],[i]2epad naar de share die je wilt[/i])
    message = "Your drivemappings are succesfully mapped!"
Case vbNo
       message = "No Drive Mappings are mapped!"
End Select

MsgBox message, vbInformation, "Drive Mappings"


Function MapDrive(Drive, Path)
        Dim i, oDrives
        Set oDrives = wshNetwork.EnumNetworkDrives
        For i = 0 to oDrives.Count - 1 Step 2   ' Find out if an existing network drive exists
  If oDrives.Item(i) = Drive Then
         WScript.Echo "Drive exists, not mapping drive"
  Else
        WScript.Echo "Mapping drive: " & Drive & " to path: " & Path
        wshNetwork.MapNetworkDrive Drive, Path
        End If
        Next
        Set i = Nothing
        Set oDrives = Nothing
        Set Drive = Nothing
        Set Path = Nothing
  End Function

[ Voor 63% gewijzigd door Meekoh op 16-09-2011 15:45 ]

Computer says no


Acties:
  • 0 Henk 'm!

  • Bielie993
  • Registratie: Maart 2010
  • Laatst online: 05-08 16:04
Haha ziet er goed uit zal hem wel is ff testen!

Je moet even uitleggen hoe ik die function moet gebruiken want ik kom er niet aan uit!

Ik heb nu

VBScript:
1
2
MapDrive(G:,\\SERVER-BIELIE993)
MapDrive(H:,\\SERVER-BIELIE993\C\)


Als ik quotes gebruik krijg ik een compile error.

Heb ook G, G:/, G:\, geprobeert

[ Voor 82% gewijzigd door Bielie993 op 16-09-2011 17:31 ]

Pagina: 1