Avatar billede kipkup Nybegynder
05. august 2004 - 12:11 Der er 18 kommentarer og
1 løsning

Netværks drev

Sidder med følgende opgave:

Skal have lavet en form for login ting, så folk skal indtaste deres bruger username og password ( fra domæne ) så de kan tilslutte deres mapper på netværket uden selv at være meldt på domænet

Altså skal der når de åbner en hjemmeside være en box til at indtaste brugernavn og en til adgangskode.

Så skal man på en eller anden måde få tilsluttet netværksdrev, om det er nødvendigt at den generer en fil som de så skal downloade er muligt, kan ikke selv helt gennemskue det, har hidtil kørt med en wsh, som fint kan gøre det, men som skriver password i cleartext, kan det ændres så den ikke gør det ville det være lige så godt :)

her er scriptet:
Dim WshNetwork, username, userpass
Set WshNetwork = WScript.CreateObject("WScript.Network")
username = InputBox("Indtast dit brugernavn")
userpass = InputBox("Indtast dit password")
WshNetwork.MapNetworkDrive "P:", "\\server\Users$\" & username & "", false, "domaene\" & username & "", "" & userpass & ""
WshNetwork.MapNetworkDrive "V:", "\\server2\share", false, "skole\" & username & "", "" & userpass & ""
Avatar billede coderdk Praktikant
05. august 2004 - 12:25 #1
Mon ikke det svarer nogenlunde til:

$net = com_load( "WScript.Network" );
com_invoke( $net, "MapNetworkDrive", "P:", "\\\\server\\Users\$\\" . $username, false, "domaene\\" . $username, $userpass );

Se evt: http://dk2.php.net/com_load og http://dk2.php.net/com_invoke
Avatar billede coderdk Praktikant
05. august 2004 - 12:25 #2
Kræver selvfølgelig at du kører php på windows ;)
Avatar billede kipkup Nybegynder
05. august 2004 - 12:50 #3
Nu fordi jeg ikke forstår så meget af det her kode sjov, så kan det godt være jeg føler mig lidt forviret.. og kan så ikke få det der til at virke?
Avatar billede coderdk Praktikant
05. august 2004 - 12:52 #4
Får du nogen fejl?
Avatar billede coderdk Praktikant
05. august 2004 - 12:52 #5
og kan vi se koden?
Avatar billede coderdk Praktikant
05. august 2004 - 12:55 #6
Hmm prøv lige med:

$net = new com( "WScript.Network" );
$net->MapNetworkDrive( "P:", "\\\\server\\Users\$\\" . $username, false, "domaene\\" . $username, $userpass );

eller:

$net = new com( "WScript.Network" );
$net.MapNetworkDrive( "P:", "\\\\server\\Users\$\\" . $username, false, "domaene\\" . $username, $userpass );
Avatar billede kipkup Nybegynder
05. august 2004 - 12:56 #7
jamen problemet ligger jo i koden, aner jo ikke hvordan man koder php ( kun fusk altså ) =D og ja kører på www.kipkup.dk/skole/

en apache server på en windows server.
Avatar billede coderdk Praktikant
05. august 2004 - 12:56 #8
muligvis $net = new COM( "WScript.Network" ); (altså med stort COM)...,
Avatar billede coderdk Praktikant
05. august 2004 - 12:57 #9
Avatar billede kipkup Nybegynder
05. august 2004 - 12:58 #10
og vi er enige i det bare skal skydes ind i en
<?php
$net = new com( "WScript.Network" );
$net->MapNetworkDrive( "P:", "\\\\server\\Users\$\\" . $username, false, "domaene\\" . $username, $userpass );
?>
Avatar billede coderdk Praktikant
05. august 2004 - 12:59 #11
Jeg slutter her, koden virker, fejlen er noget med opsætningen/måden apache er sat op på... Prøv evt at log ind på maskinen og start apache manuelt og se om du får samme fejl.
Avatar billede coderdk Praktikant
05. august 2004 - 13:00 #12
Uhm nej:

<?php
$username = "dinbruger";
$userpass = "ditpassword";
$net = new com( "WScript.Network" );
$net->MapNetworkDrive( "P:", "\\\\server\\Users\$\\" . $username, false, "domaene\\" . $username, $userpass );
?>
Avatar billede coderdk Praktikant
05. august 2004 - 13:00 #13
Du skal jo give den et username og password...
Avatar billede kipkup Nybegynder
05. august 2004 - 13:02 #14
jamen det er jo det der er hele hummelen i det :) det skulle den jo gerne bede om i en form for prompt, det der var meningen med det hele. :P tror jeg også at jeg skrev til at starte med
Avatar billede coderdk Praktikant
05. august 2004 - 13:07 #15
ok ;)

<?php

  if ( isset( $_POST['username'] ) )
  {
    $username = $_POST['username'];
    $userpass = $_POST['userpass'];
    $net = new com( "WScript.Network" );
    $net->MapNetworkDrive( "P:", "\\\\server\\Users\$\\" . $username, false, "domaene\\" . $username, $userpass );
  }

?>
<form method="post">
user: <input type="text" name="username" size="10"><br>
pass: <input type="password" name="userpass" size="10"><br>
<input type="submit" value="mount network drive">
</form>
Avatar billede kipkup Nybegynder
05. august 2004 - 13:20 #16
Well, bøvler lidt med det, \\filserver\users$\username skal skrive ala ?
\\\server\\Users\$\\" . $username <-- ? for kan den altså ikke finde ud af :S ellers kan jeg ikke finde ud af det :S
Avatar billede coderdk Praktikant
05. august 2004 - 13:40 #17
prøv evt med "//server/users\$/"
Avatar billede coderdk Praktikant
05. august 2004 - 13:41 #18
Ellers burde det være: "\\\\server\\Users\$\\" (altså 4 \ først)
Avatar billede kipkup Nybegynder
09. august 2004 - 14:53 #19
On Error resume Next
    arrInput = passwordbox("Type username and password for SKOLE", "Username")

if arrInput(0) <> "CANCELLED" Then
    CreateObject("WScript.Network").MapNetworkDrive "p:", "\\server\users$\" & arrInput(0) & "", False, "domain\" & arrInput(0) & "", "" & arrInput(1) & ""
    CreateObject("WScript.Network").MapNetworkDrive "v:", "\\server2\share", False, "skole\" & arrInput(0) & "", "" & arrInput(1) & ""
End if

if arrInput(0)  = "CANCELLED" Then
    msgbox("Operation aborted, no drives were attached")
else
    if err = 0 then
        msgbox(" Connection completed succefully")
else
    if hex(err) = "80070055" then
        msgbox("One or more drives are already attached")

else
        msgbox("Could not connect to Storageservices" & vbcrlf & err.Description)   
        end if
    end if
end if

' A function to present a Password dialog in a VBS (WSF)
' script
' Requires WScript version 5.1+
' Tom Lavedas <tlavedas@hotmail.com>
' with help from and thanks to Joe Ernest and
' Michael Harris
' Modified by EDB-Afdelingen Kommunikation
' Aalborg tekniske skole
' Thanks to Tom Lavedas for providing this script
'
Function PasswordBox(sPrompt, sDefault)
set oIE = CreateObject("InternetExplorer.Application")
With oIE
.RegisterAsDropTarget = False
.Resizable = False : .FullScreen = True
.width = 300 : .height = 170
.Navigate "about:blank"
Do Until .ReadyState = 4 : WScript.Sleep 100 : Loop
.document.open
.document.write _
        "<html><head><" & "script>bboxwait=true;</" _
            & "script><title>Password _</title></head>"_
            & "<style>body { background-color: #fff; font: 10px verdana; border: 1px solid black;} table,td { font: 10px verdana; } input { border: 1px solid black; font: 10px verdana;}</style>" _
            & "<body scroll=no " _
            & "language=vbs " _
            & " onHelp=" _
            & "'window.event.returnvalue=false" _
            & ":window.event.cancelbubble=true'" _
            & " oncontextmenu=" _
            & "'window.event.returnvalue=false" _
            & ":window.event.cancelbubble=true'" _
            & " onkeydown='if ((window.event.keycode>111)"_
            & " and (window.event.keycode<117)) or" _
            & " window.event.ctrlkey then" _
            & " window.event.keycode=0" _
            & ":window.event.cancelbubble=true" _
            & ":window.event.returnvalue=false'" _
            & " onkeypress='if window.event.keycode=13" _
            & " then bboxwait=false'>" _
            & "<b>" & sPrompt & "</b><p>" _
            & "<table><tr><td>Username:</td><td>" _
            & "<input type=text id=user>" _
            & "</td><tr><td>Password:</td><td>" _
            & "<input type=password id=pass>" _
            & "</td></tr></table><br>" _
            & "<button onclick='bboxwait=false;'>" _
            & "&nbsp;Connect&nbsp;" _
            & "</button> &nbsp; <button onclick=" _
            & "'document.all.user.value=""CANCELLED"";" _
            & "document.all.pass.value="""";" _
            & "bboxwait=false;'>Cancel" _
            & "</button><br><br><div align=right><img src=http://digit.aats.dk/drev/aats.jpg alt=aats></div></body></html>"
        .document.close
Do Until .ReadyState = 4 : WScript.Sleep 100 : Loop
With .document
oIE.left = .parentWindow.screen.width \ 2 - 200
oIE.top = .parentWindow.screen.height\ 2 - 100
.all.user.focus
.all.user.select ' Optional
oIE.Visible = True
CreateObject("Wscript.Shell")_
.Appactivate "Password _"
PasswordBox = Array("CANCELLED")
On Error Resume Next
Do While .parentWindow.bBoxWait
if Err Then Exit Function
WScript.Sleep 100
Loop
oIE.Visible = False
PasswordBox = Array(.all.user.value, _
.all.pass.value)
End With ' document
End With ' IE
End Function


Fik endelig det resultat vi ville have, like this :) tag en kigger, det har taget nogen tid på google :)

Well, håber der er andre der kan have nytte af det..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester