Permalänk

VBS: mappa nätverksenheter

Hej!

Jag har ett VBS script som automatiserar inloggning genom Cisco AnyConnect. Jag skulle be om hjälp att lägga till en funktion att mappa till två nätverkssökvägar, i VBscriptet. Det ska inte vara Persistent.

Så här ser scriptet ut idag - de nedersta delarna har jag avaktiverat eftersom jag inte fick rätt på det hela.

Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """%PROGRAMFILES(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe""" WScript.Sleep 3000 WshShell.AppActivate "Cisco AnyConnect Secure Mobility Client" WshShell.SendKeys "{TAB}" WshShell.SendKeys "{TAB}" WshShell.SendKeys "{ENTER}" WScript.Sleep 1500 WshShell.SendKeys "*******" WshShell.SendKeys "{ENTER}" ' http://ss64.com/vb/syntax-mapdrive.html ' Dim objNetwork, strRemoteShare ' Set objNetwork = WScript.CreateObject("WScript.Network") ' strRemoteShare = "\\ughome02.ug.kth.se\h\a\haider" ' objNetwork.MapNetworkDrive "K:", strRemoteShare, False ' strRemoteShare = "\\ugcommon01.ug.kth.se\KURSER\ARCH" ' objNetwork.MapNetworkDrive "L:", strRemoteShare2, False

rättade till koden
Permalänk
Medlem

Kräver dina nätverksenheter att du loggar in eller är de publika?
Jag hade inga problem med ditt script

Permalänk

Det funkar nu, precis som du upptäckt. Grejen är att den koden jag hade uppe funkade bra att mappa en enhet, dock inte den andra.
Koden jag hittade var lite mer invecklad än nöden krävde. Efter några snabba texter skrev jag om koden till följande

WScript.CreateObject("WScript.Network").MapNetworkDrive "K:", "\\ughome02.ug.kth.se\h\a\haiderag", False WScript.CreateObject("WScript.Network").MapNetworkDrive "L:", "\\ugcommon01.ug.kth.se\KURSER\ARCH", False

Permalänk

Men: ännu en fråga!

Cisco klienten ansluter till VPN servern medan scriptet försöker mappa enheten. Finns det något sätt att skapa en loop som kollar om anslutningen är upprättad innan den mappar? Alternativt att den försöker X gånger inom loppet av Y tid?

Permalänk
Medlem

Aha, jag testade bara den med en enhet.

Vill minnas att man kan pausa ett vb-script. Hittade att Sytem.Threading.Thread.Sleep(1000) pausar den 1000ms

Så borde räcka att pausa den i 10sekunder

Edit:Du kan också titta på CLI till anyconnectklienten. Frågan är dock om det hjälper. Min tanke var att din VB-tråd skulle få vänta ut VPN-anslutningen innan den gick på mappningarna
http://www.cisco.com/c/en/us/td/docs/security/vpn_client/anyc...