Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Automatische Netzlaufwerksverbindung bei wechselner IP

Frage Netzwerke Netzwerkmanagement

Mitglied: Schmidtke

Schmidtke (Level 1) - Jetzt verbinden

20.10.2005, aktualisiert 31.10.2005, 12233 Aufrufe, 73 Kommentare

Netzlaufwerke automatisch Verbinden bei wechselner IP - Adresse durch DHCP (mit Skript)

Hallo,
ich benötige mal eure Hilfe. Mein Admin hat mir folgendes VBS - Skript zukommen lassen.

Const server = "XXX"

Dim WshNetwork

on error resume next
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "I:", "\\" & server & "\QDLS", False,

if Err.Description <> "" then
MsgBox "Fehler! Laufwerk I: konnte nicht mit \qdls verbunden werden, oder ist bereits verbunden."
end if

WshNetwork.MapNetworkDrive "S:", "\\" & server & "\SOFTWARE", False,

if Err.Description <> "" then
MsgBox "Fehler! Laufwerk S: konnte nicht mit \software verbunden werden, oder ist bereits verbunden."
end if

WshNetwork.MapNetworkDrive "O:", "\\" & server & "\OFFICE", False,

if Err.Description <> "" then
MsgBox "Fehler! Laufwerk O: konnte nicht mit \office verbunden werden, oder ist bereits verbunden."
end if

Mein Problem ist nun das ich täglich mich an anderen Servern anmelde (mittels DHCP). Ich muß nun jedesmal im Skript die "XXX" beim "Const server" durch die IP - Adresse des jeweiligen Servers ersetzen.
Meine Frage ist nun, ob das nicht auch automatisch geschehen kann, da der DHCP ja der Netzwerkeinstellung diese IP mitteilt. Mein Admin meint das geht nicht, aber das kann ich fast nicht glauben. Hat er Recht???

Vielen Dank für eure Hilfe im voraus.

Marco
73 Antworten
Mitglied: gemini
20.10.2005 um 11:40 Uhr
Schreib doch den Namen des Servers in die Kontante.
Wenn ein DNS läuft, was in einer Domäne sowieso zwingend ist, wird der Name richtig aufgelöst.
~~~~~~~~~~~~~
Es gibt eine Umgebungsvariable %LOGONSERVER%, die auf den jeweligen Server verweist an dem authentifiziert wurde.
Einfach mal
01.
set
in der Kommandozeile eingeben

Wenn du die Konstante mit der Vaiablen belegst (oder die Variable direkt angibst) wird immer der richtige Server gefunden.

Const server = %LOGONSERVER%

Gruß
gemini
Bitte warten ..
Mitglied: Schmidtke
20.10.2005 um 11:58 Uhr
Hallo,
ich muß gestehen das ich von Skripten keine Ahnung habe. Wenn ich deinem Beispiel folge und an der Eingabeaufforderung SET=LOGONSERVER angebe, wird mein Notebook angezeigt. Das liegt wohl daran, das ich mich auf meinem Laptop anmelde und nicht am Server. Auf diesen will ich nur auf die Laufwerke zugreifen. Meine jeweilige IP bekomme ich aber vom DHCP der auch auf dem Server läuft. Eine DOMÄNE ist das auch nicht.

Hast Du evtl. noch einen anderen Lösungsvorschlag??

Gruß
Marco
Bitte warten ..
Mitglied: gemini
20.10.2005 um 12:51 Uhr
Hi Marco,

keine Ahnung habe. Wenn ich deinem Beispiel folge und an der Eingabeaufforderung
SET=LOGONSERVER angebe, wird mein Notebook
Ich schrieb, du solltest set in der Kommandozeile eingeben, nicht set=LOGONSERVER.
Bei set werden dir nämlich alle Umgebungsvariablen angezeigt.
Aber egal, ohne Domäne ist das sowieso irrelevant weil %LOGONSERVER% dann dein Laptop ist.

Laufwerke zugreifen. Meine jeweilige IP bekomme ich aber vom DHCP der auch auf dem
Server läuft.
DEINE IP spielt hierbei keine Rolle, was wir brauchen ist die IP oder der Name des Servers.
Auf die Schnelle fällt mir jetzt keine einfache Lösung ein.

Außer vielleicht in dem Script die Argumente zu aktivieren und die IP, die dir ja bekannt ist, als Argument zu übergeben. Das würde es zumindest ersparen, das Script selbst bearbeiten zu müssen.
Eine Komfortlösung mit einer Inputbox und Validierung des eingegebenen Wertes ist natürlich auch möglich.
Fällt aber alles in die Kategorie Workaround.

Gruß
gemini
Bitte warten ..
Mitglied: Schmidtke
20.10.2005 um 13:07 Uhr
Hallo,
die IP - Adresse die ich jedesmal eintragen muß, finde ich immer über IPCONFIG/ALL. Die Adresse des Standardgateway ist die, die ich eintragen muss.
Kann ich das nicht auch mit einem Skript abfragen???

Gruß
Marco
Bitte warten ..
Mitglied: gemini
20.10.2005 um 13:32 Uhr
Versuchs mal damit
' ~~~~~~~~~~~~~~~~~~~
strComputer = "<<a>NameDeinesLaptops<a>>"
Set objWMIService = GetObject("winmgmts:\\"& strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

For Each objAdapter in colAdapters
If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = 0 To UBound(objAdapter.DefaultIPGateway)
server = objAdapter.DefaultIPGateway(i)
Next
End If
Next

on error resume next
Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "I:", "\\" & server & "\QDLS", False,

if Err.Description <> "" then
MsgBox "Fehler! Laufwerk I: konnte nicht mit \qdls verbunden werden, oder ist bereits verbunden."
end if

WshNetwork.MapNetworkDrive "S:", "\\" & server & "\SOFTWARE", False,

if Err.Description <> "" then
MsgBox "Fehler! Laufwerk S: konnte nicht mit \software verbunden werden, oder ist bereits verbunden."
end if

WshNetwork.MapNetworkDrive "O:", "\\" & server & "\OFFICE", False,

if Err.Description <> "" then
MsgBox "Fehler! Laufwerk O: konnte nicht mit \office verbunden werden, oder ist bereits verbunden."
end if
' ~~~~~~~~~~~~~~~~~~~
Bitte warten ..
Mitglied: Biber
20.10.2005 um 15:18 Uhr
Moin, Marco,
falls Du das Skriptchen Deines Admins nur um einen zu übergebenden Parameter "IP-des-LogonServers" erweitern willst: Hier im Forum gibt es -zig Ein- bis Fünfzeiler als *.bat oder *.vbs, die eine IP ermitteln und/oder in eine Umgebungsvariable schreiben.
Findest Du wahrscheinlich über "GetIP" oder "IP-Adresse ermitteln".

Eins von vielen Oneliner-Bat-Beispielen wäre:
01.
for /F "Tokens=3 Delims=: " %%i in ('@ping -n 1 "%LOGONSERVER%"^|Find /i "Antwort von"') do  set IP=%%i 
Aber - unter uns gesagt - ich fände es sinnvoller, einfach alles in dem von dir geposteten Codeschnipsel abzufackeln. So viel Zauberei und Hexenwerk, wie Dein Admin behauptet, ist da IMHO nicht dabei.

Ich habe auf jeden Fall mehr Vertrauen in geminis Skripte als in den rührenden Versuch Deines Admins.

Grüße
Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: Schmidtke
20.10.2005 um 15:35 Uhr
Hallo,
leider bekomme ich bei der Ausführung deines Skriptes immer nur die Fehlermeldungen

>MsgBox "Fehler! Laufwerk O: konnte nicht mit \office verbunden werden, oder ist bereits verbunden."

zu Gesicht. Es werden keine Laufwerke eingebunden.

Da hat mein Admin wohl doch Recht. Schade eigendlich.

Gruß
Marco
Bitte warten ..
Mitglied: Schmidtke
20.10.2005 um 15:37 Uhr
Hallo Frank,
das Problem ist das der Logonserver mein Laptop ist und nicht der Server.
Ich muss immer die IP des Servers, wie obern bereits beschrieben, ermitteln und dann im Skript eintragen.

Gruß
Marco
Bitte warten ..
Mitglied: Biber
20.10.2005 um 16:04 Uhr
@Marco
>das Problem ist das der Logonserver mein Laptop ist und nicht der Server.
Kann ich kaum glauben und versteh ich auch nicht.
<s>Ich hatte es so verstanden, dass es wechselnde Server gibt, die aber jeweils diese Unterverzeichnisstrukturen bereitstellen, die Du als Laufwerk I:, O: und S: einbindest.
Und diese Server sind NICHT gleich dem Logonserver? Aus welchesr Zeile des "IpConfig /all"-Outputs holst Du denn bisher die IP-Info? DHCP-Server?
Dann halt den obigen Einzeiler anpassen auf 'ipconfig /all' und 'find "DHCP-Server"'.</s>

Grüße
Biber
[Edit] Sorry, ich hatte es überlesen mit dem Standardgateway.
for /F "tokens=2 delims=:" %%i in ('ipconfig /all ^|find "Standardgate"') do set IP=%%i
.... dieser Batch-Oneliner schreibt Dir die IP des Standardgateways in eine Umgebungsvariable %IP%
Jetzt kannst Du in dem VBS-Snippet Const server = %IP% schreiben.
P.S. Dass aber bei beim Testen von geminis Skript nur das Laufwerk O: nicht gefunden wird, deutet eher auf einen Tippfehler hin... oder darauf, dass kein "\\server\office"-Verzeichnis verfügbar ist.
[/Edit]
Bitte warten ..
Mitglied: gemini
20.10.2005 um 16:54 Uhr
Nun, vielleicht ist das Laufwerk ja bereits verbunden?

Füge einfach nach On Error eine Zeile mit
01.
MsgBox server
ein.
Diese zeigt die IP an, die nach Eingabe von ipconfig -all als Standardgateway zurückgegeben wird.

Zum testen kannst du nach jedem Mapping
01.
MsgBox "Err.Description: " & Err.Description
ausführen.

Ich würde sowieso alle Mappings trennen und dann neu verbinden. Zum Beispiel so:
01.
Set colDrives = WshNetwork.EnumNetworkDrives 
02.
Const blnForce = TRUE 
03.
On Error Resume Next 
04.
If colDrives.Count > 0 Then 
05.
  For i = 0 To colDrives.Count - 1 Step 2 
06.
	WshNetwork.RemoveNetworkDrive colDrives(i), blnForce 
07.
  Next 
08.
End If 
09.
On Error GoTo 0
Bitte warten ..
Mitglied: gemini
20.10.2005 um 16:57 Uhr
@Biber
Kann ich kaum glauben und versteh ich auch nicht.
Der Laptop ist in keiner Domäne.
Er meldet sich also lokal am Laptop an, folglich ist der Laptop auch %LOGONSERVER%

Anscheinend gibt es in dem Netz mehrere Server, die eine identische Verzeichnisstruktur haben.
Bitte warten ..
Mitglied: Biber
20.10.2005 um 17:12 Uhr
@gemini
>Er meldet sich also lokal am Laptop an, folglich ist der Laptop auch %LOGONSERVER%
Ja, habe ich mir auch inzwischen zusammengereimt. Habe mich verleiten lassen durch Marco's "ich täglich mich an anderen Servern anmelde...", da war ich gleich bei Domäne und Logonserver.

>Anscheinend gibt es in dem Netz mehrere Server, die eine identische Verzeichnisstruktur haben.
Das wiederum hatte ich verstanden

Grüße
Biber
Bitte warten ..
Mitglied: gemini
20.10.2005 um 18:26 Uhr
@Biber
Das wiederum hatte ich verstanden
Na, dann bin ich ja beruhigt

@Marco
So, nach Feierabend hab ich mehr Zeit
Ich hoffe dass es deinen Anforderungen gerecht wird; bei mir hat es funktioniert.

What it does:
Standardgateway aus der Netzwerkkonfiguration ermitteln
ALLE Netzlaufwerke trennen
Netzlaufwerke verbinden
Ergebnisse zusammenstellen
Popup mit den Ergebnissen

Nicht enthalten sind Fehlerroutinen. Eine Aufgabe für deinen Admin!

'
' MarcoLogsOn.vbs
'
Option Explicit

Const blnForce = TRUE
Const blnNoPersist = FALSE

Dim WshNetwork, WshShell, objWMIService, objAdapter
Dim colDrives, colAdapters
Dim strMsg, strUserName, strCompName, strServerIP
Dim i, numSec2Wait

Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
strUserName = WSHNetwork.UserName
strCompName = WSHNetwork.ComputerName
Set objWMIService = GetObject("winmgmts:\\"& strCompName & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

numSec2Wait = "10"

For Each objAdapter in colAdapters
If Not IsNull(objAdapter.DefaultIPGateway) Then
For i = 0 To UBound(objAdapter.DefaultIPGateway)
strServerIP = objAdapter.DefaultIPGateway(i)
Next
End If
Next

Set colDrives = WshNetwork.EnumNetworkDrives
On Error Resume Next
If colDrives.Count > 0 Then
For i = 0 To colDrives.Count - 1 Step 2
WshNetwork.RemoveNetworkDrive colDrives(i), blnForce
Next
End If
On Error GoTo 0

WshNetwork.MapNetworkDrive "I:", "\\" & strServerIP & "\QDLS", blnNoPersist
WshNetwork.MapNetworkDrive "S:", "\\" & strServerIP & "\SOFTWARE", blnNoPersist
WshNetwork.MapNetworkDrive "O:", "\\" & strServerIP & "\OFFICE", blnNoPersist

Set colDrives = WshNetwork.EnumNetworkDrives
strMsg = strMsg & vbCrLf & "Anmelde Ergebnisse" & vbCrLf & vbCrLf & _
"Benutzername" & Chr(9) & "= " & strUserName & vbCrLf & "Computername" & _
Chr(9) & "= " & strCompName & vbCrLf
If colDrives.Count = 0 Then
strMsg = strMsg & vbCrLf & "Kein Netzlaufwerk ist verbunden." & vbCrLf
Else
strMsg = strMsg & vbCrLf & "Verbundene Netzlaufwerk(e):" & vbCrLf
For i = 0 To colDrives.Count - 1 Step 2
strMsg = strMsg & vbCrLf & colDrives(i) & Chr(9) & colDrives(i + 1)
Next
End If

WshShell.PopUp strMsg,numSec2Wait,strUserName & "@" & strCompName,64
' ### eof ###
Bitte warten ..
Mitglied: Biber
20.10.2005 um 18:38 Uhr
@gemini
... ich muss hier ja nicht alles sofort verstehen...sind ja genug Kompetente da, die es mir geduldigst erklären...

Aber a propos "nicht verstehen":
Warum nennt ihr VB-Skripter denn eine Stringvariable "numSec2Wait"??? *lacht
...nein...nicht antworten jetzt... war nur Spaß...

...im Gegenzug verzichte ich darauf, Marco ein komplettes Anmeldescript als Batchvariante zu posten...

Schönen Feierabend!
Bitte warten ..
Mitglied: gemini
20.10.2005 um 18:49 Uhr
@Biber
Warum nennt ihr VB-Skripter denn eine Stringvariable
"numSec2Wait"???
Erbsenzähler!!

Außerdem, das waren nicht DIE VB-Scripter sondern nur ich.
Oder machen das alle so, dann wärs ja wieder normal.

...nein...nicht antworten jetzt... war nur Spaß...
Spaß?!? Wir Bayern verstehen keinen Spaß *grins*

...im Gegenzug verzichte ich darauf, Marco ein komplettes Anmeldescript als
Mach das, dann hat Marcos Admin was zum grübeln fürs Wochenende
Bitte warten ..
Mitglied: Biber
20.10.2005 um 19:16 Uhr
@gemini
*kopfschüttel.. dass diese dickköpfigen Bayern immer das letzte Wort haben müssen...
..aber mit Dir chatte ich trotzdem am liebsten..

@Marco
Kleb Deinem Admin geminis Skript und meinen Fünfzeiler auf den Monitor.
01.
::-----snipp MarcosLogOn.Bat 
02.
@echo off & setlocal 
03.
for /F "tokens=2 delims=:" %%i in ('ipconfig /all ^|find "Standardgate"') do set "IP=%%i" 
04.
set "IP=%IP: =%"       || REM [Edit] <i>Nachtrag: Leerzeichen entfernen</i>[/Edit] 
05.
Net use * /d >nul 2>&1 
06.
(Net use I: \\%IP%\QDLS >nul 2>&1)|| echo Laufwerk I: konnte nicht verbunden werden! 
07.
(Net use O: \\%IP%\Software >nul 2>&1)|| echo Laufwerk O: konnte nicht verbunden werden! 
08.
(Net use S: \\%IP%\Office >nul 2>&1) || echo Laufwerk S: konnte nicht verbunden werden! 
09.
::-----snapp MarcosLogOn.Bat
*Winks in den Süden
Biber
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 08:53 Uhr
Hallo Gemini und Biber,
vielen Dank für eure Hilfeversuche. Aber es klappt nicht.
Nochmals zur Erklärung:
Ich bin im Außendienst unterwegs. Meine Firma hat in jeder Filiale einen Fileserver stehen, der als IP - Adresse die Adresse des Standardgateway hat. Der Ablauf sieht immer wie folgt aus. Anmeldung am Laptop, ermitteln des Standardgateway, im gesendeten Skript meines Admins die IP - Adresse eintragen.
Kann es mit euren Skripten auch daran liegen, das ich auf meinem Laptop (WIN XP Pro.) nur "Hauptbenutzer" bin ?
Außerdem vergaß ich noch zu erwähnen, das ich zur Anmeldung einen anderen USER und ein Kennwort mit angeben muß. Im Skript meines Admins ist das enthalten und zwar direkt hinter

WshNetwork.MapNetworkDrive "I:", "\\" & server & "\QDLS", False, "USER", "KENNWORT"

Kann es auch daran liegen, das die Skrips nicht gehen.

Gruß
Marco

P.S. Konnte mich leider gestern nicht mehr melden weil ich wieder im Auto auf dem Weg nach Hause war.
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 08:56 Uhr
Hallo,
das mit der Fehlermeldung vom Laufwerk O war nur ein Beispiel. Das kommt natürlich auch bei allen anderen vor.

Gruß
Marco
Bitte warten ..
Mitglied: gemini
21.10.2005 um 09:20 Uhr
Ich habs bei mir lokal gestestet und es hat funktioniert.
Es hat sowohl die richtige Gateway-IP zurückgeliefert als auch die Laufwerke richtig verbunden.

Füge mal nach
01.
strServerIP = objAdapter.DefaultIPGateway(i)
die Zeile
01.
MsgBox strServerIP
ein.
Die MessageBox müsste die IP des Gateways in der Form aaa.bbb.ccc.ddd ausgeben.

Nach jedem
01.
WshNetwork.MapNetworkDrive...
eine weitere MessageBox
01.
MsgBox Err.Number & " " & Err.Description
Nun bekommst du den 'echten' Fehler zurückgeliefert
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 10:14 Uhr
sooooooooooryyyyyyyyyy

Mein Fehler.
Ich benötige "nicht" die IP des Standardgateway, sondern die des DHCP Servers. ;-(

Geht das auch abzufragen???

Endschuldigt, das ich Euch soviel Mühe mache.

Gruß
Marco

P.S. Heulend in der Ecke stehend
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 10:42 Uhr
Hallo,
ich bin es schon wieder.

Den Anmeldenamen und das Kennwort welches ich zum Verbinden benötige (ist nicht gleich mit den Anmeldedaten auf dem Laptop) trage ich das in deinem Skript hier ein ??

strUserName = WSHNetwork.UserName
strCompName = WSHNetwork.ComputerName

Wenn ja, einfach ersetzen oder muß das in " " eingetragen werden.

Besten Dank
Marco
Bitte warten ..
Mitglied: gemini
21.10.2005 um 11:51 Uhr
*mitdemkopfandiewandschlag*

Ich hab momentan keine Zeit den DHCP per VBS rauszusuchen

Nimm einfach Biber's Batch und ersetze die Zeile
for /F "tokens=2 delims=:" %%i in ('ipconfig /all ^|find "Standardgate"') do set "IP=%%i"
mit
for /F "tokens=2 delims=:" %%i in ('ipconfig /all ^|find "DHCP"') do set "IP=%%i"
Bitte warten ..
Mitglied: gemini
21.10.2005 um 11:53 Uhr
Wenn ja, einfach ersetzen oder muß das in " " eingetragen werden.
Muss in " " stehen, ist ja die Zuweisung eines Wertes zu einer Variablen und nicht die Variable selbst oder eine Anweisung.
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 12:12 Uhr
Aber bitte keine Beule holen

Auch wenn ich mich nun als "Lusche" oute, muß ich die Batchzeilen mit in das Skript einfügen, oder muß das eine extra *.vbs Datei sein ???

Gruß
Marco
Bitte warten ..
Mitglied: Biber
21.10.2005 um 12:17 Uhr
Moin Marco,

kannst wieder aus der Ecke vorkommen... jetzt haben wir Dich lang genug zappeln lassen *gg

Also, meine *.bat Variante sähe dann so aus:
01.
::-----snipp MarcosLonOn.Bat 
02.
@echo off & setlocal 
03.
Set "Errtext=Laufwerk konnte nicht verbunden werden!" 
04.
Set "Marco=MarcosUsername" & set "pw=MarcosPassword" 
05.
for /F "tokens=2 delims=:" %%i in ('ipconfig /all ^|find "DHCP-Server"') do set "IP=%%i" 
06.
set "IP=%IP: =%"       || REM  Leerzeichen entfernen 
07.
Net use * /d >nul 2>&1 
08.
(Net use I: \\%IP%\QDLS /USER:%Marco% %pw%>nul 2>&1)|| echo Das I:-%ErrText% 
09.
(Net use O: \\%IP%\Software /USER:%Marco% %pw% >nul 2>&1)|| echo Das O:-%ErrText% 
10.
(Net use S: \\%IP%\Office /USER:%Marco% %pw% >nul 2>&1) || echo Das S:-%ErrText% 
11.
::-----snapp MarcosLonOn.Bat
Ich habe da oben mit Set "Marco=MarcosUsername" & set "pw=MarcosPassword" Deinen Usernamen und Dein Passwort vorgesehen. Da müssen natürlich Deine Echtdaten rein.
Ich bin davon ausgegangen, dass Username und Password für alle Share-Laufwerke gleich sind.
Und dass Dein IPConfig auch in einer Zeile ausgibt: "DHCP-Server... ....IP-Addr)".
~~~
In geminis Skript kannst Du entsprechend:
01.
... 
02.
strUserName = "MarcosUsername"  
03.
strPassword = "MarcosPasswort" 
04.
... 
05.
WshNetwork.MapNetworkDrive "O:", "\\" & strServerIP & "\OFFICE", blnNoPersist , strUsername, strPassword  
06.
....
setzen.

Aber wie nun der DHCP-Server bei den VB-Skriptern heißt??? *grübel... Weiß nur gemini...
Wahrscheinlich numDHCPServer

Also warte da lieber auf gemini. Denn ich denke, Dein Admin weiß das bestimmt nicht.
Grüße
Biber
Bitte warten ..
Mitglied: Biber
21.10.2005 um 12:36 Uhr
*grmmmmbl*.... spielerisch mir dem nassen Handtuch in der Hand die Entfernung zu Marco abschätzt..

Ich versuchs mal zu sortieren, Marco:

Zuerst (m)einen Batch laufen lassen und am besten den das VBSkript rufen lassen:
01.
::---Snipp --MarcoLogsOn.bat 
02.
@echo off & setlocal 
03.
for /F "tokens=2 delims=:" %%i in ('ipconfig /all ^|find "DHCP-Server"') do set "IP=%%i" 
04.
set "IP=%IP: =%" 
05.
:: nächste Zeile...Aufruf von Geminis Skript !! Username und Passwort dort anpassen!!! 
06.
cscript //nologo c:\pfadZurVBS\MarcoLogsOn.Vbs %IP% 
07.
::--------Snapp --MarcoLogsOn.bat
So, und aus erzieherischen Gründen sortierst du mal am Wochenende den Thread durch und machst ein halbseitiges Tutorial draus...

Biber

[Edit]
Das wichtigste: geminis Skript muss natürlich einen Parameter annehmen..diese DHCP-IP, die mein Bätchelchen rübergibt.
Alternativ: keinen Parameter und im *.vbs die Variable %IP% einlesen.

Kurz:
entweder: strServerIP = objArgs(0) ........(Parameter übergeben)
oder: strServerIP = %IP% ...........(Umgebungsvariable auslesen)
[/Edit]
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 12:55 Uhr
Hallo Biber,
vielen Dank für deine Hilfe.
Da ich das Ganze gerne in einer Datei hätte, warte ich noch auf Gemini.
Vieleicht ist er ja so nett, einem Anfänger wie mir, trotz "Beulen" (nochmal sorry) dies als ganzes Skript zur Verfügung zu stellen. * Hoff*

Schönes WE, habe nun Wochenende und kann somit dies auch erst am Montag wieder ausprobieren.

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 12:57 Uhr
Ich würde wirklich gerne deiner Aufforderung (erzieherische Maßnahme) nach kommen, weiß aber leider nicht wie.

Gruß
Marco
Bitte warten ..
Mitglied: gemini
21.10.2005 um 13:04 Uhr
Also warte da lieber auf gemini. Denn ich denke, Dein Admin
weiß das bestimmt nicht.
Momentan weiß ich es auch nicht

Was ich aber weiß; in 2 Std. ist Feierabend und dann freu ich mich auf einen schönen Kurzurlaub bei Freunden an der Nordsee

Ganz ohne VBS und Batch und mit ganz wenig Computer
Bitte warten ..
Mitglied: Biber
21.10.2005 um 13:13 Uhr
@Marco
War auch nicht sooooooo ernst gemeint...

Wäre nur für nachfolgende User einfacher, wenn unter Deiner Überschrift: "Automatische Netzlaufwerksverbindung bei wechselnder IP" und einer kurzen Problem-Beschreibung dann nur die beiden "endgültigen" *.vbs bzw. *bat-Skizzen stehen würden.

Wenn ein ohnehin mit den Nerven vibrierender Ratsuchender hier alle Irrwege nachvollziehen soll incl. der datumsmäßig durcheinandergehenden Teilthreads... der wird auch mit dem Kopf gegen die Wand wummern.
So wie gemini seit Stunden

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: Biber
21.10.2005 um 13:21 Uhr
@gemini
Falls Du über Bremen fährst, spendier ich Dir ein paar Schmalzkuchen auf dem Freimarkt

Aber auch andernfalls ein Schönes Wochenende!
Bitte warten ..
Mitglied: Schmidtke
21.10.2005 um 13:27 Uhr
@Biber
Guten Hunger. Vieleicht komm ich auch nochmal dahin. DEL ist ja nicht so weit.

@gemini
Schönen Urlaub wünsche ich. Und Erholung von solchen Leuten wie mir

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: gemini
21.10.2005 um 14:31 Uhr
Aber wie nun der DHCP-Server bei den VB-Skriptern heißt??? *grübel...
Weiß nur gemini...
Wahrscheinlich numDHCPServer
Falsch Biber, DHCP-Server werden IMMER als Bool'sche-Werte angegeben.
Entweder ist einer da, dann ist blnDHCPServer = TRUE oder eben nicht, dann halt FALSE

In diesem Sinne
Have a good time!
Bitte warten ..
Mitglied: Biber
21.10.2005 um 14:52 Uhr
@gemini
Verpass bloß nicht Urlaub und Fähre wegen dieses Threads.
Sonst kommst Du an der Nordsee an und das Meer ist weg.. das passiert mir auch immer.
Bitte warten ..
Mitglied: gemini
21.10.2005 um 19:25 Uhr
@Biber
Verpass bloß nicht Urlaub und Fähre wegen dieses Threads.
Nach WHV brauchts noch keine Fähre, es sei denn das Meer gewinnt Land

@Marco
So ein Schlag gegen den Kopf bewirkt oftmals positives
Ich hoffe diese Version erfüllt jetzt deine Anforderungen.
Ich habe es nicht mehr getestet!!!

Noch benutzerfreundlicher kann man es fast nicht machen.
Gestatte mir noch den Hinweis, dass die Credentials im Klartext in dem Script stehen!!!

Falls jetzt, was ich gar nicht mehr ausschließen möchte, plötzlich die Problematik auftaucht dass auf jedem Share andere Credentials gelten.
Ich habe in dieser Sache dann vollstes Vertrauen in deinen Admin

'
' MarcoLogsOnUsingTheDhcpIP.vbs
' aka MarcosNeverendingLogonstory.vbs #
'
Option Explicit

Const blnForce = TRUE

Dim WshNetwork, WshShell, objWMIService, objAdapter
Dim colDrives, colAdapters
Dim strMsg, strUserName, strCompName, strServerIP
Dim i, strSec2Wait, strUser, strPass

strSec2Wait = "10"
strUser = "MarcosUsername"
strPass = "MarcosPasswort"

Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
strUserName = WSHNetwork.UserName
strCompName = WSHNetwork.ComputerName
Set objWMIService = GetObject("winmgmts:\\"& strCompName & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")

For Each objAdapter in colAdapters
strServerIP = objAdapter.DHCPServer
Next

Set colDrives = WshNetwork.EnumNetworkDrives
On Error Resume Next
If colDrives.Count > 0 Then
For i = 0 To colDrives.Count - 1 Step 2
WshNetwork.RemoveNetworkDrive colDrives(i), blnForce
Next
End If
On Error GoTo 0

WshNetwork.MapNetworkDrive "I:", "\\" & strServerIP & "\QDLS", , strUser, strPass
WshNetwork.MapNetworkDrive "S:", "\\" & strServerIP & "\SOFTWARE", , strUser, strPass
WshNetwork.MapNetworkDrive "O:", "\\" & strServerIP & "\OFFICE", , strUser, strPass

Set colDrives = WshNetwork.EnumNetworkDrives
strMsg = strMsg & vbCrLf & "Anmelde Ergebnisse" & vbCrLf & vbCrLf & _
"Benutzername" & Chr(9) & "= " & strUserName & vbCrLf & "Computername" & _
Chr(9) & "= " & strCompName & vbCrLf
If colDrives.Count = 0 Then
strMsg = strMsg & vbCrLf & "Kein Netzlaufwerk ist verbunden." & vbCrLf
Else
strMsg = strMsg & vbCrLf & "Verbundene Netzlaufwerk(e):" & vbCrLf
For i = 0 To colDrives.Count - 1 Step 2
strMsg = strMsg & vbCrLf & colDrives(i) & Chr(9) & colDrives(i + 1)
Next
End If

WshShell.PopUp strMsg,strSec2Wait,strUserName & "@" & strCompName,64
' ### eof ###
Bitte warten ..
Mitglied: Schmidtke
22.10.2005 um 16:36 Uhr
Hallo Gemini,
ich hoffe der Kurztrip nach WHV war erholsam.
Dein Skript ist völlig ok.
Wenn ich MsgBox strServerIP einfüge gibt er mir die korrekte IP an.
Leider bekomme ich trotzdem immer die Fehlermeldung:

Der Netzwerkpfad wurde nicht gefunden

Ich glaub, ich lasse das mit dem Skript sein. Der Admin hat wohl doch recht. Schade eigendlich. Oder liegt das doch daran das ich am LT keine Admin-Rechte habe, sondern nur Benutzer????

Ich werde ihn (Admin) mal dein Skript zukommen lassen. Vieleicht kann er noch was daran drehen (Hoff).

Trotzdem schönen Dank für deine Hilfe.

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: Schmidtke
22.10.2005 um 17:08 Uhr
Ich bin nochmal.
Habe dein Skript gerade auf einen anderen PC im Netzwerk laufen lassen. Dort geht es wunderbar.
Der Unterschied von den beiden Rechnern ist eigendlich nur die Arbeitsgruppe (z.B. LT ist Hammer, der PC ist Hammer101).
Der Server ist, wo ich mich anmelden muß, ist jeden Tag in einer anderen Arbeitsgruppe.
Kann es auch daran liegen????

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: Biber
22.10.2005 um 23:14 Uhr
Moin Marco,
nun lass gemini doch mal einen Tach im Norden reläxen, der muss es das ganze Rest-Jahr über in Bayern aushalten...

Zur Beantwortung Deiner Frage wäre folgende Info interessant:
- funktioniert denn an dieser Stelle das "Musterskript" Deines Admins an dem PC, wo geminis Skript aussteigt?
- funktioniert denn da meine Batchvariante?

Habe übrigens beantragt, dass wir für diesen Thread sicherheitshalber eine eigene Rubrik aufmachen

Und auf diese beiden Behauptungen gehe ich keinem Wort ein:
> .. ich lasse das mit dem Skript sein. Der Admin hat wohl doch recht.
>Ich werde ihn (Admin) mal dein Skript zukommen lassen. Vieleicht kann er noch was daran drehen

..bestimmt... der sieht sofort unsere Tippfehler...

Schönes Rest-WE
Biber
Bitte warten ..
Mitglied: Schmidtke
23.10.2005 um 13:59 Uhr
Hallo Biber,
natürlich gönne ich gemini den Urlaub an der schönen See. Wird für Ihn eine richtige Erholung sein, wenn er doch sonst immer nur in Bayern ist

Also,
das Musterskript vom Admin geht auf allen PC (LT sowie Workstation).
Das Skript von gemini läuft auf den WS aber nicht auf meinem LT. Unterschied hier, wie bereits oben beschrieben.
Dein Batch läuft auf meinem LT auch nicht. Auf den WS habe ich es noch nicht ausprobiert.

Auch Dir noch ein schönes Rest-WE

Marco
Bitte warten ..
Mitglied: Schmidtke
25.10.2005 um 09:54 Uhr
Moin biber,
habe gestern nochmals dein Batch und gemini Skript ausprobiert. Die Sachlage sieht momentan so aus:

WS (AG 1) = Amin-Skript geht, gemini Skript geht, dein Batch geht nicht (Fenster bleibt ohne Regung offen).

WS (AG2) = Admin-Skript geht, dein Batch geht, gemini Skript muß ich noch testen.

LT (AG2) = nur Admin-Skript geht.

{AG = Arbeitsgruppe}

Das ist doch paradox oder nicht. Ich hoffe das das an den verschiedenen Arbeitsgruppen liegt. Vieleicht bekommt man (gemini ) es doch hin. Mein Admin ist wohl überfordert.

Gruß
Marco
Bitte warten ..
Mitglied: Biber
25.10.2005 um 10:16 Uhr
Moin Marco,

*kopfkratz*
..nö, versteh ich jetzt nicht wirklich...*grübel*..
...was geht denn da ab???
Sehe im Moment da keine Erklärung, die sich mir richtig doll aufdrängt...

Melde mich bei Geistesblitz..

Grüße
Biber

P.S. Sind es in allen drei Fällen unterschiedliche DHCP-Server?
Ist da vielleicht etwas dabei, dass die auffällig unterscheidet z.B. in der Formatierung
(ich denke da enthaltene Leerzeichen in der Mitte, die vielleicht falsch interpretiert werden können. Beispiel: "178.__5.111.123" oder so etwas)?
Bitte warten ..
Mitglied: Schmidtke
25.10.2005 um 13:03 Uhr
Hallo Biber,
ich bin gerade in meinem URLAUB (ja sowas gibt es) in die Filiale gefahren.
Dort habe ich nochmals geschaut und ausprobiert.

Zur Erläuterung: Alle Rechner sind mittels eines Switch an unseren Filialserver angebunden. Auf diesem läuft auch der DHCP. Somit hat unser Filialserver die IP-Adresse des DHCP 192.168.XXX.1 (die XXX sind das was sich von Filiale zu Filiale ändert).
Mein Laptop (LT) hat die Arbeitsgruppe (AG) =1, Die eine Workstation (WS) hat als AG auch 1. Die zweite WS hat als AG die 2. Alle Rechner sind mit XP Pro SP2 ausgestattet. Eine Domäne ist nicht vorhanden. AG des Filialservers ist 2.

So und nun zum Ergebnis des Test:

LT = Admin-Skript geht, gemini´s vbs geht nicht (Fehlermeldung=Der Netzwerkpfad wurde nicht gefunden), dein Batch regt sich auch nicht (Eingabeaufforderung bleibt >5min stehen, wurde dann von mir geschlossen).

WS1=Admin-Script geht, gemini´s Script geht, dein Batch siehe LT

WS2=Admin-Script geht, dein Batch geht, gemini´s Skript siehe LT

Ich kann mir das nicht erklären *mitdemkopfschütteln*

Hoffentlich hast Du noch einen GEISTESBLITZ oder vieleicht gemini. Mein Admin ist gerade auch im Urlaub . Aber ich glaube er wird mir da auch nicht bei helfen können.

Schönen Tag noch, und nicht soviele "anstrengende" User wie mich.

Marco
Bitte warten ..
Mitglied: 13100
25.10.2005 um 15:44 Uhr
also ich hab mir dat jetz mal so halbwegs durchgelesen,
eine menge an impressionen aufgeschnappt, eine menge
an lösungsansätzen gesehen und auch ein paar erfolgs-
erlebnisse rausgehört. was ich nich mitbekommen habe,
is das problemchen jetz eigentlich gelöst, bzw. was
is eigentlich das problem? ne anständige problem-
beschreibung wer doch mal der hit, oder geht's nur mir so.
wieso wird eigentlich nich das script von deinem admin
verwendet, wenn es den funktioniert, oder hab ich mich
da verlesen.
Bitte warten ..
Mitglied: Schmidtke
25.10.2005 um 16:37 Uhr
Hallo,
das Problemchen bei dem Script meines Admin ist eigendlich nur, das ich die IP-Adresse des Servers (DHCP) selber eintragen muß.
Dies hätte ich gerne automatisiert.
Das Script von gemini funktioniert auf den Rechnern auch 100%. Nur auf meinem Laptop bekomme ich immer die Fehlermeldung "Netzlaufwerkpfad nicht gefunden".

Dies hätte ich gerne noch geklärt.

Marco
Bitte warten ..
Mitglied: 13100
25.10.2005 um 16:46 Uhr
um wieviel verschiedene dhcp server geht es den
eigentlich?

sollte es sich dabei, um eine handvoll handeln, die
dann eh eigentlich immer die gleiche ip haben, würd
ich die einfach alle als standardgateway (wenn es
darum geht) eintragen.
Bitte warten ..
Mitglied: Schmidtke
25.10.2005 um 18:09 Uhr
@13100

Also,
ich bin im Außendienst tätig und bereise so ca. 110 Filialen. Jede Filiale hat einen eigenen Server der auch gleichzeitig als DHCP dient. D.h. die IP die ich bei dem Script meines Admin eintrage lt. immer 192.168.XXX.1 Das XXX steht für die entsprechende Filiale.
Das Script von gemini klappt auf den Workstations in der Filiale auch prima. Nur auf meinem Laptop nicht.
Ich könnte ja nun jedesmal wenn ich in einer Filiale bin die Verbindungen zu den drei Netzlaufwerken von "Hand" verbinden. Aber es müsste ja auch mit einem Script gehen.

Das Script von gemini liest die IP des DHCP-Servers aus, welche auch gleichzeitig die IP des Fileservers ist.

Nur wenn es dann an das Verbinden mit den Netzlaufwerken geht bekomme ich immer nur die o.g. Fehlermeldung.

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: 13100
25.10.2005 um 18:48 Uhr
ouch - stehe immer noch unter schock, man
möge mich in diesem thread ignorieren.
Bitte warten ..
Mitglied: Schmidtke
25.10.2005 um 19:53 Uhr
* SCHOCK *

Warum und wodurch ????

*ratsuchend*

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: 13100
25.10.2005 um 19:57 Uhr
liegt an anderen threads, gönne mir nun eine threadpause.
hat nix mit diesem zutun, is mir für heute nur einfach zu hoch.

wie gesagt, ignoriert mich in diesem thread.
Bitte warten ..
Mitglied: gemini
25.10.2005 um 22:08 Uhr
@Biber
Die 3 Minuten Aufenthalt in HB haben leider nicht ausgereicht für nen Schmalzkuchen.
Was ist da eigentlich, sowas wie Ausgezogene? Na, egal ein Dickmacher jedenfalls.

@Marco
War auch kurz im, dank Element of Crime, nun weltberühmten Delmenhorst.
Apropos, ich bin ganz gerne in Bayern.
Das ist da wo ihr alle hinkommen werdet wenn ihr mal in Rente seid
Ich hab mir mein Plätzchen am Chiemsee schon gesichert *grins*

Back to theme...
Das Script habe ich auf der Workstation im Geschäft geschrieben (und mein Chef hats bezahlt ), da habe ich auch nur Benutzerrechte.

Es liegt auch nicht an der Arbeitsgruppe. Der DHCP ist ein Attribut der Netzwerkkarte.

Wird der Pfad gefunden, wenn du die vom Script ermittelte IP manuell einträgst?
Du kannst es debuggen indem du entweder
01.
WScript.Echo <<a>Variable<a>>
oder
01.
MsgBox <<a>Variable<a>>
an verschiedenen, sinnvollen Stellen einfügst.

Mal Resumieren:
Das Script deines Admin (Ich bin auch dafür, dass jetzt jeder seinen eigenen Admin bekommt ) funktioniert?
Mein Script gibt den richtigen Wert zurück?
Es ist kein Tippfehler im Script?
Du hast die nötigen Rechte auf das Share?
Die Credentials passen?
Wenn alles JA, dann fällt mir momentan auch nichts mehr ein.
Außer dass es evtl. doch nicht der DHCP-Server ist, sondern der NTP-Server *lach*
Bitte warten ..
Mitglied: Biber
25.10.2005 um 22:55 Uhr
@wb gemini
Schmalzkuchen ist so eine Sorte Fettgebackenes, die man/frau nur einmal im Jahr verträgt und dann auch nur mit Glühwein. So eine Art Mutprobe zum Freimarkt.

@Marco
Dann bitte in meinem Batch auch noch drei Sachen zum Fehlerfinden:

Am Anfang eine Zeile dazu:
Set "Log=%temp%\MarcosLog.txt"
...
Vor dem "Net use * /d"... eine Zeile
Echo %time% [%IP%]>>%log%
...
und in den "Net use.."-Zeilen jeweils das ">nul" durch ein ">>%log%" ersetzen.

Dann haben wir eine MarcosLog.txt, wo wir etwas sehen können.

unddannmachenwirdiesenThreadirgendwannendlichzuheuuuuuuuuuuul
Bitte warten ..
Mitglied: Schmidtke
26.10.2005 um 10:58 Uhr
@gemini
Und wie gefällt Dir Delmenhorst? Ist es nicht "herrlich"

Mal Resumieren:
Dein Script gibt den richtigen Wert zurück.
Es ist kein Tipfehler in dem Script, da ich ein und die selbe Datei benutzt habe.
Auf die drei Netzlaufwerke kann ich zugreifen und habe auch die Rechte.
*Die Credentials passen?* Jetzt müsste ich nur noch wissen was das ist

@Biber
Ich habe noch bis Donnerstag Urlaub
Am Freitag werde ich deinen Vorschlag ausprobieren, da ich dann wieder in eine Filiale komme. Das LOG werde ich dann hier posten.

Gruß
Marco
Bitte warten ..
Mitglied: gemini
26.10.2005 um 12:22 Uhr
Delmenhorst, *räusper* ich hab ja nur den Bahnhof gesehen.


*Die Credentials passen?* Jetzt müsste ich nur noch wissen was das ist
Deine Anmeldedaten; Benutzername und Passwort
Bitte warten ..
Mitglied: Biber
26.10.2005 um 14:10 Uhr
@gemini
>Delmenhorst, *räusper* ich hab ja nur den Bahnhof gesehen.
Außer dem Bahnhof gibt es da noch zwei Telefonzellen und einen Schlecker-Markt

@Marco
Falls ihr bei Euch eine Kaffeemaschine hast, zu der Du die Credentials besorgen kannst, kann ich auch mal kurz zu Dir rüberbrackern nach DEL.
Wollte mir die Straße der Verdammnis ja ohnehin mal irgendwann angucken...

Biber
Bitte warten ..
Mitglied: Schmidtke
26.10.2005 um 14:42 Uhr
@gemini
Und eine Fr. Connor. Die ist auch aus Delmenhorst. Und es gibt auch mehr als zwei Telefonzellen

@Biber
Kaffee werde ich ordern. Mußt mir nur Bescheid geben, wenn du die unsägliche Geschichte mal in Augenschein nehmen willst.

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: Schmidtke
26.10.2005 um 16:22 Uhr
@gemini
Ich hab es im Urlaub nicht ausgehalten und bin nochmal in die Filiale gefahren. In deinem Script habe ich nun die Variable "strServerIP" entfernt und die korrekte IP eingetragen.

WshNetwork.MapNetworkDrive "I:", "\\192.168.26.1\QDLS", , strUser, strPass
WshNetwork.MapNetworkDrive "S:", "\\192.168.26.1\SOFTWARE", , strUser, strPass
WshNetwork.MapNetworkDrive "O:", "\\192.168.26.1\OFFICE", , strUser, strPass

Und was soll ich sagen, nun hat das mit dem Verbinden geklappt. Sollte es evtl. möglich sein, das ich die Variable nicht speichern kann? kopfkratz
Wenn ich an der Eingabeaufforderung "set strServerIP" eingebe sagt es mir das die Umgebungsvariable nicht definiert ist.
Liegt es daran ???? mitdemkopfaufdentischschlagen

@Biber
Habe deine Änderungen durchgeführt. In dem LOG steht nun:

16:16:24,33 [192.168.26.1]
Sie verfgen ber folgendene Remoteverbindungen:
Q: \\FilePW1\Daten
Fortsetzen beendet die Verbindungen.
M?chten Sie diesen Vorgang fortsetzen? (J/N) [N]: Der Befehl wurde erfolgreich ausgefhrt.
Der Befehl wurde erfolgreich ausgefhrt.
Der Befehl wurde erfolgreich ausgefhrt.

Dabei habe ich festgestellt, das ich in dem leeren Eingabefenster nur "J" drücken muß. Dann werden die Laufwerke verbunden. Aber warum kann ich das nicht sehen, das ich "J" drücken muß? kopfschüttel
Das Fenster ist absulut leer.

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: gemini
26.10.2005 um 17:52 Uhr
Ich hab es im Urlaub nicht ausgehalten und bin nochmal in die Filiale gefahren.
So mag ich das, wenn die Leute Einsatz zeigen

In deinem Script habe ich nun die Variable "strServerIP" entfernt und die
korrekte IP eingetragen.
Und was soll ich sagen, nun hat das mit dem Verbinden geklappt. Sollte es evtl.
möglich sein, das ich die Variable nicht speichern kann? kopfkratz
Du brauchst die Variable nicht zu speichern, der Wert ist in der Variablen gespeichert.
strServerIP enthält in deinem Beispiel den Wert 192.168.26.1. Wenn du, nachdem die Variable gefüllt wurde, MsgBox strServerIP eingibst und das Script startest, öffnet sich ein Fenster in dem 192.168.26.1 steht.
In einem String kannst du die Variable stellvertretend für den Wert einsetzen, den sie enthält.
In dem Beispiel entspricht
01.
WshNetwork.MapNetworkDrive "I:", "\\" & strServerIP & "\QDLS", , strUser, strPass
dem ausgeführten Code
01.
WshNetwork.MapNetworkDrive "I:", "\\192.168.26.1\QDLS", , <<a>DeinBenutzername<a>>, <<a>DeinPasswort<a>>
Wenn ich an der Eingabeaufforderung "set strServerIP" eingebe sagt es
mir das die Umgebungsvariable nicht definiert ist.
Liegt es daran ???? mitdemkopfaufdentischschlagen
Nein,
01.
set
gibt die Umgebungsvariablen des lokalen Computers aus und
01.
set strServerIP
eben alle, die mit strServerIP beginnen. Davon wird es nicht allzuviele geben.
Bitte warten ..
Mitglied: Biber
26.10.2005 um 17:57 Uhr
@Marco
*wummerwummerwummermitdemKopfandieWand*

Okay... jetzt haben wir es gleich...

Das Problem ist sooooooo banal, dass ich es auch verratzt habe.
Also - bevor ich in dem Batch die Netzlaufwerke verbinde, trenne ich ja die eventuell bestehenden Laufwerkszuordnungen mit "net use * /d" . Eher aus Angewohnheit - normalerweise sollten nie welche vorhanden sein.
Es sei denn, irgendeine Pappnase hätte irgendwann mal die Netzwerklaufwerke verbunden mit der Klicki-Bunti-Option "Verbindung bei Start wiederherstellen" bzw den "net use"-Befehl mit der Option "/Persistent" (dauerhaft) aufgerufen.
Was natürlich totaler Unsinn wäre in genau Deinem Fall mit immer anderen Verbindungen.
Wenn nun tatsächlich schon -wider Erwarten- Netzwerkverbindungen bestehen, fragt das *zensiert* Windows nach, ob Du auch meinst, was Du tippst (Windows und sein Anwender misstrauen sich ständig gegenseitig).
Und diese Sicherheitsabfrage habe ich Dir geschickterweise umgeleitet ins Nirwana bzw. in die Logdatei "**Möchten Sie diesen Vorgang fortsetzen? (J/N) [N]:"....
Wenn Du also einfach "Enter" gedrückt hast, galt das als "N"... Vorgang nicht fortsetzen.
Netzlaufwerke wurden nicht getrennt. Folgefehler: Laufwerk I:. O:. S: konnten "nicht erneut verbunden werden".

Abhilfe (auch wenns wieder mal undokumentiert ist - M$ mal <s>den Mittelfinger zeigt</s> die Zunge rausstreckt) :
Entweder einmalig an diesen Rechnern am CMD-Prompt eingeben:
Net use /P:NO .......(nie wieder persistent *gg)
oder den Schalter "/Y " anhängen an die Net-Use-Delete-Anweisung:
Net Use * /d /y >nul 2>&1 .........Thats All

Damit sollte zumindest die *.Bat-Variante laufen. Das entspricht dem Parameter "blnForce" in geminis Geraffel: "WshNetwork.RemoveNetworkDrive colDrives(i), blnForce "

Die andere Frage:
Mit "Set strServerIP" vom CMD-Prompt kannst Du auch nichts sehen, das ist ok. Die wird nur lokal, in einem anderen Scope...ach was, egal...ist in Ordnung so!

Mach doch bitte in geminis Script eine Zeile vor dem Lw-verbinden ein "WScript.Echo strServerIP".
Das bekommen wir auch zum Fliegen.

Wettet ganz optimistisch

Biber
P.S. Wegen Kaffee und/oder Connor komm ich trotzdem mal.
[Edit] @gemini
Da haben wir wohl parallel getippt... hoffentlich nichts widersprüchliches
[/Edit]
Bitte warten ..
Mitglied: Schmidtke
26.10.2005 um 18:51 Uhr
Und wie kommt es dann, das wenn ich die IP eintrage verbunden werde, aber mit der Variablen nicht???

*ziemlichblödausderwäscheschauend*

Marco
Bitte warten ..
Mitglied: gemini
26.10.2005 um 19:12 Uhr
Das weiß ich nicht *achselzuck*
Bei mir funktioniert das Script, trennt die Laufwerke und verbindet sie neu.
Ich hab auch schon mehr Variablen in Scripten eingesetzt und es funktioniert eigentlich immer. Abgesehen von den Fällen, wo ich halt mal Tippfehler reinhaue.

Füge mal diese Zeile ein, bevor die Laufwerke verbunden werden
01.
MsgBox "\\" & strServerIP & "\QDLS"
Die MessageBox müsste \\192.168.26.1\QDLS ausgeben.

Außerdem stelle ich mir grad die Frage, welche Fehlermeldung jetzt kommt?
Immer noch der fehlende Netzwerkpfad oder gibts Abwechslung?

Du kannst auch nach jedem Mapping eine Zeile einfügen
01.
MsgBox Err.Number & " " & Err.Description
Gruß
gemini
(der jetzt langsam graue Haare bekommt )
Bitte warten ..
Mitglied: Biber
26.10.2005 um 20:06 Uhr
@Marco
...ist mir jetzt auch schon egal, ob Du nun hier 17 oder 18 Seiten rausbekommst, wenn Du diesen Thread für Deinen Admin ausdruckst..

Also, was mir (wieder zu spät) ins Auge gesprungen ist bei Deiner Log-Datei:

Da gibt es ja offensichtlich noch ein Laufwerk Q:
Sie verfgen ber folgendene Remoteverbindungen:
Q: \\FilePW1\Daten

...welches mein Bätchelchen und geminis Skript auch einfach trennen und nicht wiederherstellen.
Also machen wir es doch gleich ganz sauber (und mit Logdatei
01.
::-----snipp MarcosLonOn.Bat  --- Version 0.33 
02.
@echo off & setlocal  
03.
Set "Log=%temp%\MarcosLog.txt" 
04.
Set "Marco=MarcosUsername" & set "pw=MarcosPassword"  
05.
for /F "tokens=2 delims=:" %%i in ('ipconfig /all ^|find "DHCP-Server"') do set "IP=%%i"  
06.
set "IP=%IP: =%" || REM Leerzeichen entfernen 
07.
Set "Errtext=Laufwerk konnte nicht verbunden werden! IP:%IP% am %date%"  
08.
For %%i in ( I O S ) do Net use %%i: /d /y>>"%Log%" 2>&1  
09.
(Net use I: \\%IP%\QDLS /USER:%Marco% %pw%>>"%Log%" 2>&1)|| echo %Time% Das I:-%ErrText%>>"%Log%" 
10.
(Net use O: \\%IP%\Software /USER:%Marco% %pw% >>"%Log%" 2>&1)|| echo %Time% Das O:-%ErrText%>>"%Log%"  
11.
(Net use S: \\%IP%\Office /USER:%Marco% %pw% >>"%Log%" 2>&1) || echo %Time% Das S:-%ErrText%>>"%Log%" 
12.
::-----snapp MarcosLonOn.Bat  --- Version 0.33 
Disclaimer: Alle voran gegangenen Versionen verlieren hiermit ihre Gültigkeit.
Der Ablauf des Mindesthaltbarkeitsdauer bleibt davon unberührt.

Biber
P.S. So lange Bätche schreib ich sonst nie zum Laufwerksverbinden... *grummelt*
Bitte warten ..
Mitglied: gemini
26.10.2005 um 20:34 Uhr
Ich verzichte hiermit ausdrücklich auf mein aus den Art. GG 2(1) und 5(1) ableitbares Recht einer weiteren Version mit im IE ausgegebenen Report und ausführlichen Einträgen im Anwendungs-Log.

Allerdings würde mich die Meinung von Marco's Admin zu unseren Ergüssen schon interessieren
Bitte warten ..
Mitglied: Schmidtke
27.10.2005 um 16:39 Uhr
Hallo Gemini,
bin mal wieder in der Firma *fraudrehtmirbalddenhalsum*

Habe dein Script lt. Anleitung umgestrickt. Folgendes hat sich dabei ergeben.

Wenn ich direkt hinter der Zeile
-- strServerIP = objAdapter.DHCPServer--
eine Box einfüge mit
--MsgBox strServerIP--
zeigt mir die Box die korrekte IP an.

Wenn ich nun
--MsgBox "\\" & strServerIP & "\QDLS--
eintrage bevor die Laufwerke mit
--WshNetwork.MapNetworkDrive "I:", "\\" & strServerIP & "\QDLS", , strUser, strPass--
verbunden werden sollen zeigt mir die Box nur
--\\\QDSL--
an. Danach kommt dann wieder die Fehlermeldung:
--Zeile 40, Zeichen 1, Der Netzwerkpfad wurde nicht gefunden, Code 80070035--

Da fällt mir noch ein, weil es bei biber sein Batch so war, es ist jedesmal noch ein Laufwerk Q vorhanden. Dies hat mein Admin wohl so eingestellt, das es sich automatisch verbindet. Ist auch nicht so tragisch, da das ein Netzlaufwerk auf unserem Zentralrechner ist, wo die Adresse immer gleich ist.

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: Schmidtke
27.10.2005 um 16:42 Uhr
lächelndundfreuendindiehändeklaschend

100%tig. Nun geht es einwandfrei.

Wenn wir nun auch das Script noch hinbekommen bin ich der "glücklichste" Mensch auf Erden.

Mit freundlichen Grüßen
Marco

P.S. Das Kaffeeangebot steht trotzdem
Bitte warten ..
Mitglied: Biber
27.10.2005 um 17:03 Uhr
@Marco
*puuuuuuuuuuh *Schweißabwisch*
>>Wenn wir nun auch das Script noch hinbekommen ..
<s>Wenn</s> Sobald wir nun auch das Script noch hinbekommen ...
bin ich der "glücklichste" Mensch auf Erden.
Ja, gemini hat auch schon was von Ergüssen geschrieben. Ich hab aber lieber nicht nachgefragt.

Da kann eigentlich nur noch ein Leerzeichen zuviel im Rückgabewert von "objAdapter.DHCPServer" sein oder so ein Unsinn...
Hast Du da mal ein 'WScript.Echo "[" & strServerIP & "]" ' oder so was eingebaut?

Was wir Biber nicht alles für eine Tasse Kaffee auf uns nehmen... *zumHimmelaufschaut
Bitte warten ..
Mitglied: gemini
27.10.2005 um 18:22 Uhr
Hallo Marco,
ist dieser Block in deinem Script enthalten?
01.
For Each objAdapter in colAdapters  
02.
If Not IsNull(objAdapter.DefaultIPGateway) Then  
03.
For i = 0 To UBound(objAdapter.DefaultIPGateway)  
04.
strServerIP = objAdapter.DefaultIPGateway(i)  
05.
Next  
06.
End If  
07.
Next
Das wäre wichtig, weil sonst ALLE Adapter ausgelesen werden und die Variable jeweils überschrieben wird.
Wenn ich die Not IsNull-Abfrage rausnehme, erhalte ich auch einen Leerstring zurück.

Ein Problem könnte noch sein, wenn du einen weiteren aktiven Adapter hast, bspw. eine WLAN-Karte. Aber darüber will ich mir jetzt momentan (noch) nicht den Kopf zerbrechen

gemini
Bitte warten ..
Mitglied: Schmidtke
28.10.2005 um 09:16 Uhr
Hallo Gemini,
nein dieses ist in dem Script nicht enthalten. Außerdem wollte ich ja nicht die Standardgatway-Adresse sondern die des DHCP. Wenn ich es so wie du geschrieben hast einfüge und dann das StandardGateway durch DHCPServer ersetze, bekomme ich immer eine Unverträglichkeitsmeldung wegen einem UBound *achselzuckendnichtverstehen*

Zur Info.
Meine eingebaute W-Lankarte ist deaktiviert. Mein Admin will sie nicht freigeben (Noch nicht).
Dann habe ich außerdem noch eine Fritz ISDN-Karte die als LAN2 erscheint (Kein DHCP).
Und natürlich die eigendliche Netzwerkkarte.

Hoffe die Angaben bringen uns (
*DICH***) weiter.

Mit freundlichen Grüßen
Marco
Bitte warten ..
Mitglied: Schmidtke
28.10.2005 um 09:22 Uhr
Hallo Biber,
gemini hat, glaube und hoffe ich mal, die Lösung schon vor Augen. Evtl. liegt das an meinen Netzwerkadaptern die vorhanden sind. W_Lan (zwar deaktiviert, aber wer weiß), normale Nerzwerkkarte und eine Fritzkarte die sich als LAN2 zeigt.

zumhimmelbetend

Meinem Admin zeige ich dieses Thraed aber wohl lieber nicht. Er mag es nicht wenn man versucht sich selber zuhelfen.

ehrverletzend


Marco
Bitte warten ..
Mitglied: gemini
28.10.2005 um 20:57 Uhr
Hi Marco,

bei diesen verworrenen Thread bin ich ins falsche Posting gekommen, Sorry.

UBound gibt den oberen Grenzwert eines Arrays zurück.
Dim arrTest(100)
Ubound(arrTest) gibt 100 zurück

Ersetze mal die entspr. Passage damit und schau was passiert:
' DHCP ermitteln
For Each objAdapter in colAdapters
If objAdapter.DHCPEnabled = True Then
strServerIP = objAdapter.DHCPServer
End If
Next

Ich gehe jetzt davon aus, dass nur auf einem Adapter DHCP aktiv ist.
Falls eine weitere NIC aktiviert wird, könnte man das ganze auch noch an der MAC evtl. auch am Adaptertyp festmachen.
Ich hoffe jedoch, dass dieser Krug an mir vorübergeht

~~~~~~~
gemini hat, glaube und hoffe ich mal, die Lösung schon vor Augen.
Mir wird gleich schwarz vor Augen!!

Meinem Admin zeige ich dieses Thraed aber wohl lieber nicht. Er mag es nicht wenn man versucht sich selber zuhelfen. ehrverletzend
Trotzdem schönen Gruß an deinen Admin und eine Empfehlung
http://www.amazon.de/exec/obidos/ASIN/3827321964/qid%3D1130524329/028-1 ...
Gut 1200 Seiten zum Unters-Kopfkissen-legen.

HTH
gemini

PS: Das Fehlerhandling übergebe ich hiermit vertrauensvoll in die Hände deines Admin.
Tipp: Wenn objAdapter.DHCPEnabled = FALSE sollte die weitere Verarbeitung abgebrochen, also keine Mappings versucht werden, das Popup mit einer entspr. Meldung aber trotzdem gestartet werden.
Bitte warten ..
Mitglied: Biber
28.10.2005 um 21:56 Uhr
@gemini
Das sollte es nun aber auch gewesen sein (bete ich!)...
Nach diesem Thread glaube ich auch tatsächlich, dass sich zu dem Thema WScripting die von Dir empfohlenen 1200 Seiten zusammenschreiben lassen.
(Ich habe mich aber dann doch für den "Halbblutprinzen" von der gleichen Site entschieden.)

Eigentlich sollten wir diesen Thread mittels QuickSort oder BubbleSort wieder in eine lesbare Form sortieren lassen. Könnte ich ja mit einem Batch-Oneliner versuchen, aber eigentlich wäre das doch eher prädestiniert für ein kleines VBSkriptchen...
schwarzenPeterwegschieb

Wünsche Dir und Marco ein DHCP-Serverfreies Wochenende
Biber
Bitte warten ..
Mitglied: Schmidtke
31.10.2005 um 09:38 Uhr
@gemini
*zurdiraufschauendundsichgleichzeitigverneigen*

Was soll ich sagen. Das war der Fehler. Nun haut es 100%tig hin und wir können diesen Thread schließen.

*tausenddank*

Werde dich immer weiterempfehlen

@Biber
auch Dir herzlichen Dank für deine freundliche Unterstützung.

*auchhierverneigeichmicheinhundertmal*

Marco

P.S.
@Biber
@gemini

Das Kaffeeangebot steht natürlich weiterhin, auch wenn es für einen Bayern wahrscheinlich schwerer ist, dies anzunehmen.

Eine letzte Frage hätte ich dann trotzdem noch.
Wie kann ich dieses Thread schließen bzw. ordnen und die Bewertung auf "voll" stellen?
Bitte warten ..
Mitglied: Biber
31.10.2005 um 10:10 Uhr
Moin Marco,

na, schöner konnte ja mein Montagmorgen kaum beginnen...*strahl*
Sollten wir es endlich geschafft haben?

Freue mich jedenfalls wirklich mit...

>>Eine letzte Frage hätte ich dann trotzdem noch.
>>Wie kann ich dieses Thread schließen...
Die Funktion ist noch in Entwicklung. Also lass es so. Oder setze ein "~geloest~" an den Beginn des Titels.
>>...bzw. ordnen ...
Macht gemini via BubbleSort in VBSkript.
....und die Bewertung auf "voll" stellen?
Kannst Du nicht und ist auch nicht nötig.
Reicht gemini und mir vollkommen, wenn unsere Skripte auch unter widrigen Umständen laufen.

Weiterhin schönen Montag und spätestens bis zum Kaffee in DEL.

Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: gemini
31.10.2005 um 11:57 Uhr
Moin Marco,

na, schöner konnte ja mein Montagmorgen kaum beginnen...*strahl*
Sollten wir es endlich geschafft haben?
dito

Freue mich jedenfalls wirklich mit...
Me too!
Wie sagte schon der große Hannibal Smith: "I just love it when a plan comes together!"

>>...bzw. ordnen ...
Macht gemini via BubbleSort in VBSkript.
Falsch, Biber dachte gemini würde das machen.
Ein kleiner aber gravierender Unterschied.

Reicht gemini und mir vollkommen, wenn
unsere Skripte auch unter widrigen Umständen laufen.
Ja klar, ich leb von Lust, Liebe und Spaghetti-Code

Das Kaffeeangebot steht natürlich weiterhin, auch wenn es für einen
Bayern wahrscheinlich schwerer ist, dies anzunehmen.
Der Bayer freut sich auf einen schönen Feiertag morgen.
So richtig mit ausschlafen, gemütlich frühstücken und den ganzen Tag nix tun

Schöne Woche
gemini
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(1)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
E-Mail
gelöst Mail Spam fremde IP (10)

Frage von BerndP zum Thema E-Mail ...

DNS
gelöst Sophos UTM9 - FTP nur über IP erreichbar (4)

Frage von PronMaster zum Thema DNS ...

Windows 7
gelöst Automatische User Abmeldung nach Inaktivität (30s) (10)

Frage von IT-Blondi zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...