Hallo
Ich habe mal wieder mir ein kleines Projekt als Ziel gesetzt, bei dem ich jetzt hänge.
Ich habe einen NAS Server, auf den ich Ordner habe. 2 Dieser Ordner sind Öffentlich. Public als Austauschplattform und Scans, in dem die Scandaten vom Netzwerkdrucker/Scanner landen.
Bisher habe ich eine Batch geschrieben, die erstmal alle Verbindungen kappt, und danach die Verbindungen wieder herstellt.
In meinem Heimnetzwerk sind 4 Benutzer, also auch 4 persönliche, Passwortgesicherte Ordner.
Nun habe ich für jeden Benutzer eine eigene Batch angefertigt, in der ich über Net Use die 2 Öffentlichen Ordner und der Private(inkl. Anmeldung) route.
________________________________________________________________
Soweit so gut. Warum ich das Ganze umbauen will.
1. Ich will dieses lästige schwarze Fenster bei der Anmeldung weg haben
2. Speziell bei W-lan Geräten dauert die Netzwerk-Einwahl ab und an länger, als das aufrufen der Batch aus dem Autostart. Also wird nichts verbunden. Habe deshalb schon eine Aufgabe in der Aufgabenplanung erstellt, was auch geklappt hat, aber nach wie vor hab ich dieses nervige schwarze Fenster. Ich möchte es auch nicht minimiert öffnen, ich möchte es nicht haben
Nun habe ich angefangen einen Code zu schreiben. (Am ende des Posts). Dabei sind mir natürlich immer noch tollere Sachen eingefallen Allerdings habe ich, bevor ich zu diesen "Luxus-Problemen" komme noch den ein oder anderen Bug im Code, und finde nicht heraus, woran es liegt. Habe zwar noch nie VB Scripts gecodet, aber denke bin doch nicht ganz unbegabt
Wenn ich das Script ausführen möchte, erscheint ein Fenster: Zeile 79 Zeichen 2 , Diese Netzwerkverbindung ist nicht vorhanden. Klar sind sie nicht vorhanden, habe sie ja mal zum Test davor getrennt. Sollte also ne mglt haben, damit er, wenn keine Verbindungen da sind, diesen punkt überspringt. ( Z79 ist folgende : objNetwork.RemoveNetworkDrive strDriveLetterPrivate)
( absichtlicher Fehler: zwischen : und objNetwork ist ein Leerzeichen, ansonsten wird es zum Smile
_______________________________________________________________
Nun die "Luxusprobleme"
1. Ich muss jedem Benutzer seine eigene Batch schreiben. Ich würde aber gerne ein Script schreiben, bei dem im im script über setzten einer Variable auswählen kann, für welchen Benutzer dieses Script jetzt ist ( If-then oder Case...) Habe des versucht, vllt etwas unschön, mit der Variable strWitchUser und den 4 Cases unten zu realisieren aber....
2. Wenn ich des schon so komfortabel löse, wäre natürlich bei ERSTMALIGEM Start es wunderschön, wenn ein Fenster erscheint, bei dem ich den Benutzer auswählen kann (wäre für den gebrauch in andere, evtl. auch größeren Netzwerken interessant)
3. Momentan kann ja jeder, der das Script zur Bearbeitung öffnet, die Passwörter einsehen. (ist ja alles im Familiären Bereich, aber so generell wäre ich schon daran interessiert, wie man des "verschlüsseln" kann oder "unsichtbar" machen kann im Code. Vorstellbar wäre, dass bei Erstmaliger Anmeldung, eben ein PopUp öffnet, bei dem man den jeweiligen Nutzer auswählt, dort dann auch das Netz-Passwort des Ordners eingeben muss, und aber alles Gespeichert wird, OHNE, dass man die Passwörter einsieht.
4. Für die W-Lan Geräte dachte ich, könnte man evtl eine If-Schleife einfügen. Also als Beispiel: Ping das NAS an, und erst wenn du n Positiver Ping hast, dann springe weiter zur Anmeldung/Routing der Netzlaufwerke.
Hier der Code
Warum die Farben im Bereich Case so komisch angezeigt werden.. KP, hab ich da n Fehler drin?
Und wäre echt super, wenn ihr mir ned irgendwelche Codefetzen an den Kopf werft, sondern mir ein wenig erklärt warum, wohin und wiso und überhaupt
Danke schon mal im Vorraus
grüße
Daniel
Ich habe mal wieder mir ein kleines Projekt als Ziel gesetzt, bei dem ich jetzt hänge.
Ich habe einen NAS Server, auf den ich Ordner habe. 2 Dieser Ordner sind Öffentlich. Public als Austauschplattform und Scans, in dem die Scandaten vom Netzwerkdrucker/Scanner landen.
Bisher habe ich eine Batch geschrieben, die erstmal alle Verbindungen kappt, und danach die Verbindungen wieder herstellt.
In meinem Heimnetzwerk sind 4 Benutzer, also auch 4 persönliche, Passwortgesicherte Ordner.
Nun habe ich für jeden Benutzer eine eigene Batch angefertigt, in der ich über Net Use die 2 Öffentlichen Ordner und der Private(inkl. Anmeldung) route.
________________________________________________________________
Soweit so gut. Warum ich das Ganze umbauen will.
1. Ich will dieses lästige schwarze Fenster bei der Anmeldung weg haben
2. Speziell bei W-lan Geräten dauert die Netzwerk-Einwahl ab und an länger, als das aufrufen der Batch aus dem Autostart. Also wird nichts verbunden. Habe deshalb schon eine Aufgabe in der Aufgabenplanung erstellt, was auch geklappt hat, aber nach wie vor hab ich dieses nervige schwarze Fenster. Ich möchte es auch nicht minimiert öffnen, ich möchte es nicht haben
Nun habe ich angefangen einen Code zu schreiben. (Am ende des Posts). Dabei sind mir natürlich immer noch tollere Sachen eingefallen Allerdings habe ich, bevor ich zu diesen "Luxus-Problemen" komme noch den ein oder anderen Bug im Code, und finde nicht heraus, woran es liegt. Habe zwar noch nie VB Scripts gecodet, aber denke bin doch nicht ganz unbegabt
Wenn ich das Script ausführen möchte, erscheint ein Fenster: Zeile 79 Zeichen 2 , Diese Netzwerkverbindung ist nicht vorhanden. Klar sind sie nicht vorhanden, habe sie ja mal zum Test davor getrennt. Sollte also ne mglt haben, damit er, wenn keine Verbindungen da sind, diesen punkt überspringt. ( Z79 ist folgende : objNetwork.RemoveNetworkDrive strDriveLetterPrivate)
( absichtlicher Fehler: zwischen : und objNetwork ist ein Leerzeichen, ansonsten wird es zum Smile
_______________________________________________________________
Nun die "Luxusprobleme"
1. Ich muss jedem Benutzer seine eigene Batch schreiben. Ich würde aber gerne ein Script schreiben, bei dem im im script über setzten einer Variable auswählen kann, für welchen Benutzer dieses Script jetzt ist ( If-then oder Case...) Habe des versucht, vllt etwas unschön, mit der Variable strWitchUser und den 4 Cases unten zu realisieren aber....
2. Wenn ich des schon so komfortabel löse, wäre natürlich bei ERSTMALIGEM Start es wunderschön, wenn ein Fenster erscheint, bei dem ich den Benutzer auswählen kann (wäre für den gebrauch in andere, evtl. auch größeren Netzwerken interessant)
3. Momentan kann ja jeder, der das Script zur Bearbeitung öffnet, die Passwörter einsehen. (ist ja alles im Familiären Bereich, aber so generell wäre ich schon daran interessiert, wie man des "verschlüsseln" kann oder "unsichtbar" machen kann im Code. Vorstellbar wäre, dass bei Erstmaliger Anmeldung, eben ein PopUp öffnet, bei dem man den jeweiligen Nutzer auswählt, dort dann auch das Netz-Passwort des Ordners eingeben muss, und aber alles Gespeichert wird, OHNE, dass man die Passwörter einsieht.
4. Für die W-Lan Geräte dachte ich, könnte man evtl eine If-Schleife einfügen. Also als Beispiel: Ping das NAS an, und erst wenn du n Positiver Ping hast, dann springe weiter zur Anmeldung/Routing der Netzlaufwerke.
Hier der Code
Code:
'Programmbeginn
Option Explicit
' Declaration of variables
Dim objNetwork
Dim strDriveLetterPrivate
Dim strDriveLetterPublic
Dim strDriveLetterScans
Dim strNetworkShareUSER1
Dim strNetworkShareUSER2
Dim strNetworkShareUSER3
Dim strNetworkShareUSER4
Dim strNetworkSharePublic
Dim strNetworkShareScans
Dim strUsernameUSER1
Dim strUsernameUSER2
Dim strUsernameUSER3
Dim strUsernameUSER4
Dim strPasswordUSER1
Dim strPasswordUSER2
Dim strPasswordUSER3
Dim strPasswordUSER4
Dim strWitchUser
' Set parameters
'Choose a User:
'USER1 = 1
'USER2 = 2
'USER3 =3
'USER3 = 4
strWitchUser = 1
'Drive Letters
strDriveLetterPrivate = "O:"
strDriveLetterPublic = "P:"
strDriveLetterScans = "Q:"
'Folder Routing
strNetworkSharePublic = "\\Test-NAS\Public"
strNetworkShareScans = "\\Test-NAS\Scans"
strNetworkShareUSER1 = "\\Test-NAS\USER1"
strNetworkShareUSER2 = "\\Test-NAS\USER2"
strNetworkShareUSER3 = "\\Test-NAS\USER3"
strNetworkShareUSER4 = "\\Test-NAS\USER4"
'Usernames
strUsernameUSER1 = "USER1"
strUsernameUSER2 = "USER2"
strUsernameUSER3 = "USER3"
strUsernameUSER4 = "USER4"
'Passwords
strPasswordUSER1 = "PW1"
strPasswordUSER2 = "PW2"
strPasswordUSER3 = "PW3"
strPasswordUSER4 = "PW4"
' Create network object
Set objNetwork = CreateObject("WScript.Network")
'Disconnecting Drives
objNetwork.RemoveNetworkDrive strDriveLetterPrivate
objNetwork.RemoveNetworkDrive strDriveLetterPublic
objNetwork.RemoveNetworkDrive strDriveLetterScans
'Connecting PublicDrives
' Connect network drive Public with specified parameters
objNetwork.MapNetworkDrive strDriveLetterPublic, strNetworkSharePublic, False
' Connect network drive Scans with specified parameters
objNetwork.MapNetworkDrive strDriveLetterScans, strNetworkShareScans, False
'Connecting Personal Drives
Select Case strWitchUser
Case 1
'Connect to USER1
objNetwork.MapNetworkDrive strDriveLetterPrivate, strNetworkShareUSER1, False, strUsernameUSER1, strPasswordUSER1
Case 2
'Connect to USER2
objNetwork.MapNetworkDrive strDriveLetterPrivate, strNetworkShareUSER2, False, strUsernameUSER2, strPasswordUSER2
Case 3
'Connect to USER3
objNetwork.MapNetworkDrive strDriveLetterPrivate, strNetworkShareUSER3, False, strUsernameUSER3, strPasswordUSER3
Case 4
'Connect to USER4
objNetwork.MapNetworkDrive strDriveLetterPrivate, strNetworkShareUSER4, False, strUsernameUSER4, strPasswordUSER4
End Select
' Deallocate network object
Set objNetwork = Nothing
' Quit Visual Basic Script
WScript.Quit
Warum die Farben im Bereich Case so komisch angezeigt werden.. KP, hab ich da n Fehler drin?
Und wäre echt super, wenn ihr mir ned irgendwelche Codefetzen an den Kopf werft, sondern mir ein wenig erklärt warum, wohin und wiso und überhaupt
Danke schon mal im Vorraus
grüße
Daniel