windows - script til at kortlægge netværksdrev

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil gerne kunne oprette forbindelse til en (wifi) netværks harddisk fra min bærbare computer, men kun lejlighedsvis. Hvis jeg bruger kommandoen 'Map a network drive' i WinXP explorer, skal jeg indstille drevets IP-adresse og navn, så routernavnet og dets adgangskode. For meget at huske!


Jeg søger en måde at skrive denne aktivitet på (hvilket som helst sprog), noget som:


map Z: \10.0.1.1DRIVENAME "ROUTERNAMEPW"


Jeg er ikke særlig opmærksom på hvilket sprog scriptet er skrevet i. BTW, jeg er opmærksom på DOS 'subst' kommandoen, men jeg tror ikke, jeg kan bruge det i dette tilfælde på grund af passwordbeskyttelse.

Bedste reference


brug kommandoen net use:


net use Z: \10.0.1.1DRIVENAME


Rediger 1: Jeg tror også, at adgangskoden skal være tilføjet:


net use Z: \10.0.1.1DRIVENAME PASSWORD


Du kan finde ud af mere om denne kommando og dens argumenter via:


net use ?


Rediger 2: Som Tomalak nævnt i kommentarer, kan du senere afkorte det via


net use Z: delete

Andre referencer 1


Fungerer dette ikke (forudsat at 'ROUTERNAME' er det brugernavn, som routeren forventer)?


net use Z: "\10.0.1.1DRIVENAME" /user:"ROUTERNAME" "PW"


Alternativt kan du bruge en lille VBScript:


Option Explicit
Dim u, p, s, l
Dim Network: Set Network= CreateObject("WScript.Network")

l = "Z:"
s = "\10.0.1.1DRIVENAME"

u = "ROUTERNAME"
p = "PW"

Network.MapNetworkDrive l, s, False, u, p

Andre referencer 2


Tomalaks svar fungerede godt for mig (+1)


Jeg behøvede kun at ændre det lidt til mine formål, og jeg havde ikke brug for et kodeord - det er for virksomhedens domæne:


Option Explicit
Dim l: l = "Z:"
Dim s: s = "\10.10.10.1share"
Dim Network: Set Network = CreateObject("WScript.Network")
Dim CheckDrive: Set CheckDrive = Network.EnumNetworkDrives()
Dim DriveExists: DriveExists = False
Dim i

For i = 0 to CheckDrive.Count - 1
  If CheckDrive.Item(i) = l Then
    DriveExists = True
  End If
Next

If DriveExists = False Then
  Network.MapNetworkDrive l, s, False
Else
  MsgBox l + " Drive already mapped"
End If


Eller hvis du vil afbryde drevet:


For i = 0 to CheckDrive.Count - 1
  If CheckDrive.Item(i) = l Then 
    WshNetwork.RemoveNetworkDrive CheckDrive.Item(i)
  End If
Next

Andre referencer 3


Hvorfor ikke kortlægge netværksdrevet, men fjern markeringen af ​​'Opret forbindelse ved logon'? Drevet vil kun forbinde, når du forsøger at få adgang til det. Bemærk, at nogle programmer mislykkes, hvis de peger på det, men hvis du får adgang til filer direkte gennem Windows Stifinder fungerer det godt.

Andre referencer 4


Prøv netbrugskommandoen [13]

Andre referencer 5


Her er en JScript variant af JohnBs svar


// Below the MSDN page for MapNetworkDrive Method with link and in case if Microsoft breaks it like every now and then the path to the documentation of now.
// https://msdn.microsoft.com/en-us/library/8kst88h6(v=vs.84).aspx
// MSDN Library -> Web Development -> Scripting -> JScript and VBScript -> Windows Scripting -> Windows Script Host -> Reference (Windows Script Host) -> Methods (Windows Script Host) -> MapNetworkDrive Method

var WshNetwork = WScript.CreateObject('WScript.Network');
function localNameInUse(localName) {
    var driveIterator = WshNetwork.EnumNetworkDrives();
    for (var i=0, l=driveIterator.length; i < l; i += 2) {
        if (driveIterator.Item(i) == localName) {
            return true;
        }
    }
    return false;
}

function mount(localName, remoteName) {
    if (localNameInUse(localName)) {
        WScript.Echo('"' + localName + '" drive letter already in use.');
    } else {
        WshNetwork.MapNetworkDrive(localName, remoteName);
    }
}

function unmount(localName) {
    if (localNameInUse(localName)) {
        WshNetwork.RemoveNetworkDrive(localName);
    }
}