docusnap-dude
Goto Top

VBscript zum starten eines domianloginscripts unter anderem usernamen

...

Hallo,

folgendes Problem:

ich hab da einen PC (XP) wo sich immer nur ein ganz bestimmter User im Active Directory (Win2003) einloggt (damit nicht jeder User dort ein eigenes Profil hat).

Nun such ich eine Idee, mit welcher ich per vbs ein Domainloginscript starte aber unter anderem Usernamen (damit die richtigen Laufwerke gemountet werde).

Meine Idee ist dahingend, das ein Popupwindow kommt zur Abfrage Username, Passwort, Domäne und der user dort alles setzt und danach das entsprechende Mounten entsprechend meines normalen Loginscripts startet (objNetwork.MapNetworkDrive).

Irgendeiner eine Idee dazu?

Danke!

Frank

Content-Key: 141482

Url: https://administrator.de/contentid/141482

Printed on: April 24, 2024 at 22:04 o'clock

Mitglied: 48507
48507 Apr 26, 2010 at 13:31:24 (UTC)
Goto Top
Dafür gibt es netlogon:

IF %USERNAME%==BLAHBLAH MACH DIES

Oder heißt "unter anderem Usernamen" auch mit anderen Rechten?
Member: DocuSnap-Dude
DocuSnap-Dude Apr 26, 2010 at 13:45:06 (UTC)
Goto Top
Letzteres. Völlig unterschiedliche Rechte. das ist der Knackpunkt!
Member: Edi.Pfisterer
Edi.Pfisterer Apr 26, 2010 at 13:57:06 (UTC)
Goto Top
Hola!
Ich hab hier eine Lösung (die von Bastla verbessert werden soll/wird face-wink , die genau das macht, was Du möchtest (glabue ich zumindest)...
(wird hier so -unverändert - von meinen SchülerInnen verwendet)
da ich im stress bin - nur der code, die Bearbeitung überlasse ich Dir selbst...

alle 3 Dateien nach C: kopieren in den Ordner "verbindungstool", fertig isses...

1.) login.htm

<SCRIPT LANGUAGE="VBScript">  

Sub RunScript
    OKClicked.Value = "OK"  
End Sub

Sub CancelScript
    OKClicked.Value = "Cancelled"  
End Sub

</SCRIPT>

<BODY><font  face="Arial">  
<font color="#FF0000">ACHTUNG: vor Ausf&uuml;hrung auf die Leiste oben klicken!!!</font><br>  
<br>


Username:&nbsp;&nbsp;&nbsp; </font><font face="Arial">  
<input type="text" name="benutzer" size="40"><br>  

Password:&nbsp;&nbsp;&nbsp; </font><font face="Arial">  
<input type="password" name="passwort" size="40"><br>  

Klasse:&nbsp;&nbsp;&nbsp; </font><font face="Arial">  
<input type="text" name="klasse" size="40"> (zB 1a bis 5w)<br>  

Verbindung:&nbsp;&nbsp;&nbsp; </font>
<select name="laufwerk" size="1">  
<option value="home">home  
<option value="allgemein">allgemein  
</select>
<br>
</font></p>

<input type="hidden" name="OKClicked" size = "20">  

<input id=runbutton class="button" type="button" value=" OK "  
name="ok_button" onClick="RunScript">  
&nbsp;&nbsp;&nbsp;
<input id=runbutton class="button" type="button" value="Cancel"  
name="cancel_button" onClick="CancelScript">  

</BODY>

netzlaufwerk verbinden.vbs
' mapping-tool von Pfisterer Edi 2008  




   'benutzer = inputBox("bitte gib deine Kennung nach dem Muster vorname.nachname ein!")  



On Error Resume Next

Set objExplorer = WScript.CreateObject _
    ("InternetExplorer.Application", "IE_")  

objExplorer.Navigate "file:///c:/verbindungstool\password.htm"  
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width = 600
objExplorer.Height = 350
objExplorer.Left = 300
objExplorer.Top = 200
objExplorer.Visible = 1

Do While (objExplorer.Document.Body.All.OKClicked.Value = "")  
    Wscript.Sleep 250
Loop

passwort = objExplorer.Document.Body.All.passwort.Value
benutzer = objExplorer.Document.Body.All.benutzer.Value
laufwerk = objExplorer.Document.Body.All.laufwerk.Value
klasse = objExplorer.Document.Body.All.klasse.Value
strButton = objExplorer.Document.Body.All.OKClicked.Value
objExplorer.Quit
Wscript.Sleep 250

If strButton = "Cancelled" Then  
    Wscript.Quit
Else
    'Wscript.Echo strPassword  
End If




   'passwort = inputBox("Dein Passwort?")  
   'klasse = inputBox("Klasse?")  
   'laufwerk = inputBox("Womit möchtest du Dich verbinden? Antwort 'ALLGEMEIN' oder 'HOME'")  

        if laufwerk = "allgemein" then  
        laufwerk = "\\ilva\allgemein"  
        else
        if laufwerk = "home" then  
        laufwerk = "\\halvar\home$\" & klasse & "\" & benutzer  
        else
        laufwerk = "\\halvar"  
        end if
        end if

        Dim WshShell, ret
        Set WshShell = WScript.CreateObject("WScript.Shell")  


        ret = WshShell.Run ("mapping.cmd " & benutzer & "," &  laufwerk & "," &  passwort)  


      WScript.Sleep(2000)




        Erfolg = "Laufwerk erfolgreich verbunden!"  


   msgBox(Erfolg)

mapping.cmd

net use * %2 %3 /user:hakneusiedl\%1

alles in einen Ordner und fertig isses

(gestartet wird durch doppelklick auf NETZLAUFWERK VERBINDEN.vbs

lg
Edi

edit: da könnte man - nach kurzem hinschaun nach der langen Zeit - eine einfache hta-Datei draus basteln, dann gings mit 1 datei ab...
Wenn Du dich bis morgen gedulden kannst und Bastla bis dorthin diese Idee nicht aufgreifen sollte (was mir im übrigen sehr recht ist, ich kämpfe gerade mit einem 3Com G4500 herum), könnte ich Dir morgen die fertige Lösung posten ...
Member: DocuSnap-Dude
DocuSnap-Dude Apr 26, 2010 at 14:58:11 (UTC)
Goto Top
wow; sieht super aus! Danke dir und ich schau mal wie ich das anpasse hier bei mir. Bin kein Programmier-Held face-big-smile aber man lernt ja face-wink
Member: bastla
bastla Apr 26, 2010 at 20:32:59 (UTC)
Goto Top
Hallo Edi!
Ich hab hier eine Lösung (die von Bastla verbessert werden soll/wird face-wink
Das nenn' ich mal ne Steilvorlage ... face-wink

Was meine Bastelei bisher ergeben hat, sieht als HTA-Gerüst etwa so aus:
<html>
<head>
<title>Netzlaufwerk verbinden</title>

<HTA:APPLICATION 
     ID="objMapDrive"  
     APPLICATIONNAME="MapDrive"  
     SCROLL="no"  
     SINGLEINSTANCE="yes"  
>
</head>

<script Language="VBScript">  
Sub Init
	W = 500
	H = 300
	Window.ResizeTo W, H
	Window.MoveTo (screen.availWidth - W) / 2, (screen.availHeight - H) / 2 - 20
	txtbenutzer.Focus
End Sub

Sub RunScript
    benutzer = txtbenutzer.value
    passwort = txtpasswort.value
    klasse = txtklasse.value
    laufwerk = cbolaufwerk.value
    
    Select Case laufwerk
    Case "allgemein"  
        laufwerk = "\\ilva\allgemein"  
    Case "home"  
        laufwerk = "\\halvar\home$\" & klasse & "\" & benutzer  
    Case Else
        laufwerk = "\\halvar"  
    End Select

    Set WshShell = CreateObject("WScript.Shell")  
    
    cmd = "%comspec% /c net use * " & laufwerk & " /user:hakneusiedl\" & benutzer & " " & passwort  
    
    WshShell.Run cmd, 0, True

    MsgBox "Laufwerk erfolgreich verbunden!"  
    Window.Close
End Sub

Sub CancelScript
    Window.Close
End Sub
</script>

<body onload="Init">  
<font face="Arial">  

Username:    </font><font face="Arial">  
<input type="text" name="txtbenutzer" size="40"><br><br>  

Password:    </font><font face="Arial">  
<input type="password" name="txtpasswort" size="40"><br><br>  

Klasse:    </font><font face="Arial">  
<input type="text" name="txtklasse" size="40"> (zB 1a bis 5w)<br><br>  

Verbindung:    </font>
<select name="cbolaufwerk" size="1">  
<option value="home">home  
<option value="allgemein">allgemein  
</select>
<br><br>
</font></p>

<input id=runbutton class="button" type="button" value=" OK "  
name="ok_button" onClick="RunScript">  
   
<input id=runbutton class="button" type="button" value="Cancel"  
name="cancel_button" onClick="CancelScript">  
</body>
</html>
Es werden also weiterhin die Eingaben nicht geprüft, und auch die Behauptung "Laufwerk erfolgreich verbunden!" ist noch immer nur Ausdruck einer Hoffnung (aber zumindest erfolgt die Ausgabe erst, wenn der "Shell"-Aufruf beendet ist) ... face-wink

Grüße
bastla
Member: DocuSnap-Dude
DocuSnap-Dude Apr 28, 2010 at 17:26:52 (UTC)
Goto Top
Hey bastla! Man das rockt! Danke dir 1000x! Genial!
Member: bastla
bastla Apr 28, 2010 at 17:36:26 (UTC)
Goto Top
Hallo frankoehli!
Hey bastla! Man das rockt! Danke dir 1000x! Genial!
Erfreuliche Mitteilung, aber falscher Adressat ...

...leite ich aber gerne an Edi (urobe73) weiter. face-smile

Grüße
bastla
Member: Edi.Pfisterer
Edi.Pfisterer Apr 29, 2010 at 09:00:55 (UTC)
Goto Top
Danke, angenommen face-wink
lg
Edi