Mit VBS Laufwerk automatisch bei Systemstart verbinden
Wie man automatisch einen Freigabepfad mounten kann in VBS
Hallo zusammen,
da ich öfters schon Anfragen im Netz gefunden hatte, wie man z.Bsp.: "net use..." in VBS nutzt, möchte ich gern mal einen Tipp schreiben, wie man so etwas programmieren könnte.
Mögliche Aufgabenstellung: Kleines Netzwerk mit einigen PCs, ein Server mit dem Freigabeordner, auf den die anderen PCs täglich zugreifen müssen. Der Freigabeordner hat seinen Freigabenamen - nennen wir ihn mal "Public" - für "Öffentlich".
Die Subnetmaske ist 255.255.255.0
Man kann diesen späteren Script in den Autostart-Ordner legen und somit wird dieser bei jedem neuen Booten aufgerufen.
Müßte aber nur einmal aufgerufen werden, da das mounten hier "persistent" erfolgt.
1) Öffne den Texteditor und füge folgenden Code ein:
2) dann diese Datei als *.vbs abspeichern. z.Bsp.: Mount.vbs.
Das ganze am besten unter "C:\" abspeichern. Warum? Komme ich direkt dazu!
Wenn die Ping-Abfrage aus VBS kommt, geht jedes Mal ein Fenster auf. Das kann nerven. Muß es aber nicht.
Mich stört es.
Also erstellen wir uns noch eine Batchdatei und öffnen nochmals den Texteditor und geben diesmal
folgenden Code ein:
Diese Datei nun abspeichern an einem Platz des Vertrauens und in *.bat bennen. Z.Bsp.: "Mount.bat"
Doppelklickt man auf diese, dann öffnet die Batchdatei die VBSDatei und ich bekomme ein Eingabefenster, welches
mir ständig anzeigt, was gerade ausgeführt wird. Ist etwas besser, als ständig auf- und zugehende Fenster.
Kann nervös machen
Soweit meiner erster Tipp hier im Forum! Bin für jegliche Kritik offen, da man ja erstens dazulernen möchte und zweitens, wenn
man besser wird im "Tippen" kann man anderen - Hilfesuchenden - besser helfen.
In diesem Sinne
Gruß
Tsuki
Hallo zusammen,
da ich öfters schon Anfragen im Netz gefunden hatte, wie man z.Bsp.: "net use..." in VBS nutzt, möchte ich gern mal einen Tipp schreiben, wie man so etwas programmieren könnte.
Mögliche Aufgabenstellung: Kleines Netzwerk mit einigen PCs, ein Server mit dem Freigabeordner, auf den die anderen PCs täglich zugreifen müssen. Der Freigabeordner hat seinen Freigabenamen - nennen wir ihn mal "Public" - für "Öffentlich".
Die Subnetmaske ist 255.255.255.0
Man kann diesen späteren Script in den Autostart-Ordner legen und somit wird dieser bei jedem neuen Booten aufgerufen.
Müßte aber nur einmal aufgerufen werden, da das mounten hier "persistent" erfolgt.
1) Öffne den Texteditor und füge folgenden Code ein:
On Error Resume Next
PfadStr = inputbox("Bitte geben Sie den Namen von der Freigabe ein",,"Public")
set Winsock1=WScript.CreateObject("MSWinsock.Winsock", "WS_")
Wscript.Echo "Eigene IP ist:" & Winsock1.localip
dim Zaehler
Zaehler = 0
AdrTemp = ""
EigeneIP = Winsock1.localip
for i = 1 to len(winsock1.localip)
a = mid(winsock1.localip,i,1)
AdrTemp = AdrTemp & a
if a = "." then
select Case Zaehler
case 0
'Wscript.Echo Zaehler
St1 = AdrTemp
AdrTemp = ""
Zaehler = Zaehler + 1
case 1
'Wscript.Echo Zaehler
St2 = AdrTemp
AdrTemp = ""
Zaehler = Zaehler + 1
case 2
'Wscript.Echo Zaehler
St3 = AdrTemp
AdrTemp = ""
Zaehler = Zaehler + 1
end select
end if
next
Zaehler = 0
strTarget = St1 & St2 & St3
Set objShell = CreateObject("WScript.Shell")
'Do Until InStr(strPingResults, "reply from")
for i = 0 to 254 step 1
Zaehler = i
AktIP = strTarget & Zaehler
Set objExec = objShell.Exec("ping -n 1 -w 1000 " & AktIP)
strPingResults = LCase(objExec.StdOut.ReadAll)
if InStr(strPingResults, "reply from") then
Wscript.Echo AktIp & " antwortet."
else
Wscript.Echo AktIp & " antwortet nicht."
end if
if InStr(strPingResults, "reply from") then
if eigeneIP = AktIP then
Wscript.Echo AktIP & " ist eigene IP."
else
set shell = CreateObject("WScript.Shell")
shell.run "net use Z: \\" & AktIp & "\" & PfadStr & " Passwort /user:USER /y",0
Wscript.Sleep 5000
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists("\\" & AktIp & "\" & PfadStr) Then
Wscript.echo AktIP & " ist unter Z:\\" & AktIp & "\" & PfadStr & " gemountet."
Wscript.Quit
Else
Wscript.Echo AktIP & " gesuchter Netzwerkpfad existiert aber nicht."
End If
end if
end if
if Zaehler = 254 then
msgbox "Konnte den Netzwerkpfad nicht finden.Script wird beendet."
WScript.Quit
end if
next
'Loop
set objshell = nothing
set objExec = nothing
set shell = nothing
Das ganze am besten unter "C:\" abspeichern. Warum? Komme ich direkt dazu!
Wenn die Ping-Abfrage aus VBS kommt, geht jedes Mal ein Fenster auf. Das kann nerven. Muß es aber nicht.
Mich stört es.
Also erstellen wir uns noch eine Batchdatei und öffnen nochmals den Texteditor und geben diesmal
folgenden Code ein:
@Echo Off
cscript C:\Mount.vbs
pause
Doppelklickt man auf diese, dann öffnet die Batchdatei die VBSDatei und ich bekomme ein Eingabefenster, welches
mir ständig anzeigt, was gerade ausgeführt wird. Ist etwas besser, als ständig auf- und zugehende Fenster.
Kann nervös machen
Soweit meiner erster Tipp hier im Forum! Bin für jegliche Kritik offen, da man ja erstens dazulernen möchte und zweitens, wenn
man besser wird im "Tippen" kann man anderen - Hilfesuchenden - besser helfen.
In diesem Sinne
Gruß
Tsuki
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 119549
Url: https://administrator.de/knowledge/mit-vbs-laufwerk-automatisch-bei-systemstart-verbinden-119549.html
Ausgedruckt am: 24.12.2024 um 12:12 Uhr
2 Kommentare
Neuester Kommentar
Servus,
eigentlich bin ich ja absoluter "hasser" von Kommentaren in Anleitungen und Tipps - aber weil du so nett drum bittest
und damit wären wir schon beim Thema - dein Script läuft nur auf englischen Systemen
also u.A auch
Gruß
eigentlich bin ich ja absoluter "hasser" von Kommentaren in Anleitungen und Tipps - aber weil du so nett drum bittest
Bin für jegliche Kritik offen,
schreib lieber:Bin für jegliche konstruktive Kritik offen...
und damit wären wir schon beim Thema - dein Script läuft nur auf englischen Systemen
also u.A auch
56. if InStr(strPingResults, "TTL") then
obwohl -ganz ehrlich - nur weil ein System anpingbar ist - bedeutet das noch lange nicht, dass auch der Serverdienst / der Share da ist. Vielleicht das script so verändern Gruß