Verbinden naar AD mogelijk via VisualBasic?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ProCal
  • Registratie: Juni 2001
  • Laatst online: 31-08-2023
Sommige collega's op het werk maken gebruik van een loginscriptje dat ik ooit eens heb gemaakt.

Dit wordt uitgevoerd in een DOS-venster en dat ziet er natuurlijk wat gedateerd uit. Nog een nadeel van dit venster is: Bij het invoeren van het wachtwoord, ziet de gebruiker niets. Geen sterretjes of iets dergelijks, hierdoor zijn tikfouten een veel voorkomend probleem.

Het oog wil ook wat, dus wilde ik proberen dit script om te zetten in Visual Basic. Hiertoe heb ik Visual Basic 2010 Express gedownload.

Inmiddels heb ik al verschillende tutorials gelezen en op Youtube het één en ander aan informatie gevonden, wat ik alleen niet kan vinden is het antwoord op de vraag zoals in de titel: Kan ik vanuit Visual Basic naar de Active Directory een gebruiker aanmelden?

Het is de bedoeling dat in het venster alleen een username+password wordt gevraagd, bij het drukken op de knop "Volgende" moeten deze credentials worden geverifiëerd in de AD en als het klopt, moet een share worden gemaakt.

Hieronder het cmd-scriptje dat op dit moment wordt gebruikt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
@ECHO OFF
:BEGIN
CLS
NET USE Z: /D /Y
CLS
SET GEBRUIKER=
SET KEUZE=
ECHO.
ECHO.
ECHO           ÚÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÂÄÂÄ¿
ECHO           ³Û³ Inloggen                      ³_³þ³X³° 
ECHO           ÃÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÄÁÄ´°
ECHO           ³                                       ³°
ECHO           ³  Voer hieronder uw gebruikersnaam in  ³°
ECHO           ³        Druk daarna op enter           ³°
ECHO           ³                                       ³°
ECHO           ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ°
ECHO            °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
ECHO.
ECHO.
ECHO.
SET /P GEBRUIKER=Gebruikersnaam: 
SET GEBRUIKER=%GEBRUIKER%
CLS
ECHO.
ECHO.              
ECHO           ÚÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÂÄÂÄ¿
ECHO           ³Û³ %GEBRUIKER%                     ³_³þ³X³° 
ECHO           ÃÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÁÄÁÄ´°
ECHO           ³                                      ³°
ECHO           ³   Een ogenblik geduld alstublieft,   ³°
ECHO           ³    De verbinding wordt gemaakt...    ³°
ECHO           ³                                      ³°
ECHO           ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ°
ECHO            °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
ECHO.
ECHO.
ECHO.
ECHO.
ECHO                     Gebruikersnaam: %GEBRUIKER%
ECHO      Geef hieronder het wachtwoord op voor gebruiker %GEBRUIKER%: 
ECHO Let op: Het door u ingetikte wachtwoord verschijnt niet op het scherm!
ECHO.
NET USE Z: "\\10.0.1.200\gedeeldemap" /user:domein\%GEBRUIKER% > NUL
IF ERRORLEVEL 1 GOTO NOK
:OK
CLS
ECHO.
ECHO.
ECHO De verbinding is succesvol tot stand gebracht
ECHO.
ECHO Een ogenblik geduld alstublieft
START Z:
GOTO END
:NOK
CLS
ECHO.
ECHO.
ECHO Let op: De ingevoerde gebruikersnaam ( %GEBRUIKER% ) of het wachtwoord is onjuist,
ECHO of u beschikt niet over de benodigde rechten.
ECHO Neem contact op met de helpdesk om te controleren
ECHO of u de juiste rechten hebt voor deze map.
ECHO.
ECHO Opnieuw proberen?
ECHO.
ECHO (J/N?)
SET /P KEUZE=
SET KEUZE=%KEUZE%
IF %KEUZE% == N GOTO NEND
IF %KEUZE% == n GOTO NEND
IF %KEUZE% == J GOTO BEGIN
IF %KEUZE% == j GOTO BEGIN
GOTO NOK
ECHO.
PAUSE > NUL
GOTO BEGIN
:NEND
NET USE Z: /D /Y
SET GEBRUIKER=
SET KEUZE=
CLS
:END
CLS


Het gaat vooral om deze regel: NET USE Z: "\\10.0.1.200\gedeeldemap" /user:domein\%GEBRUIKER%

Ik hoef niet uitgekouwd te hebben hoe ik het in VB moet gaan doen (hoewel hulp natuurlijk welkom is) maar wil wel graag weten of het uberhaupt kan, anders is het een beetje zonde van m'n moeite.

Alvast dank!

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Geheid niet 't antwoord wat je wil horen maar waarom doe je dit niet met een group policy op een OU? En, als dat teveel moeite is, waarom geef je niet gewoon iedereen die share en zet je op FS niveau niet gewoon de rechten zodat de juiste mensen bij de juiste zaken kunnen? Either way: geen (al dan niet "ouderwets ogende") scriptjes, geen code om te onderhouden, geen verplichting tot het geïnstalleerd hebben van .Net versie XXX etc. Het zit gewoon native in je OS.

[ Voor 25% gewijzigd door RobIII op 10-09-2012 19:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
En op het probleem van hoe je dit omzet naar vb.net lijkt het me dit een kwestie van [google=map network drive vb.net]..

Maar inderdaad, waarom moet iedereen nogmaals een gebruikersnaam+wachtwoord invoeren? :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • ProCal
  • Registratie: Juni 2001
  • Laatst online: 31-08-2023
Hoi RobIII,

Bedankt voor je antwoord. Het probleem is als volgt:

De share is een share die normaalgesproken door iedereen kan worden benaderd, vanaf een werkstation. Dit is, voor zover ik weet, ik ben zelf geen systeembeheerder bij deze toko, middels OU's geregeld. Deze share is voor iedereen benaderbaar, hier heeft iedereen read/write rechten.

Het volgende doet zich voor:

Gebruiker op een laptop met algemeen account. Vervolgens inbellen bij KPN, VPN-verbinding maken naar het werk en dán die share willen benaderen.

Laptop is verder helemaal dichtgetimmerd, gebruikers kunnen zelf dus niets.

Dit is de reden dat het op deze manier moet

Acties:
  • 0 Henk 'm!

  • ProCal
  • Registratie: Juni 2001
  • Laatst online: 31-08-2023
pedorus schreef op maandag 10 september 2012 @ 20:01:
En op het probleem van hoe je dit omzet naar vb.net lijkt het me dit een kwestie van [google=map network drive vb.net]..

Maar inderdaad, waarom moet iedereen nogmaals een gebruikersnaam+wachtwoord invoeren? :p
Dank voor je antwoord. Als antwoord op jouw vraag: zie mijn uitleg hierboven. :)

2x achter elkaar was niet de bedoeling. Excuus.

[ Voor 5% gewijzigd door ProCal op 10-09-2012 20:03 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Overigens kun je ook op een laptop mensen gewoon op het domain laten inloggen, zowel online als offline.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • ProCal
  • Registratie: Juni 2001
  • Laatst online: 31-08-2023
pedorus schreef op maandag 10 september 2012 @ 20:41:
Overigens kun je ook op een laptop mensen gewoon op het domain laten inloggen, zowel online als offline.
Dat weet ik.

Wist je trouwens dat het prettiger rijdt mét een band om je velg, dan zonder?....

Ook geen antwoord op m'n vraag.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
offtopic:
Dit draadje zal gevonden worden door mensen die dat niet weten, en die denken dan dat dit een normale situatie is ofzo ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • ProCal
  • Registratie: Juni 2001
  • Laatst online: 31-08-2023
pedorus schreef op maandag 10 september 2012 @ 20:55:
offtopic:
Dit draadje zal gevonden worden door mensen die dat niet weten, en die denken dan dat dit een normale situatie is ofzo ;)
Er zal een wereld voor ze opengaan! :o

Hoe dan ook, ben er nog steeds niet uit. Ik kom wel heel veel voorbeeldcode tegen maar dat lijkt voor een andere versie te zijn. (VB6?)

Voor de duidelijkheid: mijn "programming-skills" beperken zich tot bovenstaande "code", wat BASIC en een beetje HTML. Het verschil tussen C# en VB.NET zie ik niet. (Ik zie wel dat het er anders uitziet maar ik kan niet zeggen wat wat is...)

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik zie als eerste hit http://cjwdev.wordpress.com/2010/05/30/map-network-drive/

Lijkt me duidelijk voor vb.net. Maar als je totaal geen ervaring hebt, helpt het wellicht om eerst een goed boek (willekeurig) erover te lezen. :p Verschil tussen c# en vb.net is er nauwelijks, in ieder geval niet in de achterliggende api's. Ikzelf gebruik bij voorkeur c# omdat de syntax daarvan op termijn iets handiger is omdat deze minder onzinruimte inneemt.

Goede hit in c# is bijvoorbeeld http://stackoverflow.com/...th-user-name-and-password

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Misschien een tip voor de systeembeheerders: DirectAccess. Daarmee kunnen mensen zonder VPN toch op een veilige manier bij bedrijfsresources zoals fileservers. Ook is dan inloggen onder eigen credentials zonder VPN mogelijk, terwijl group policies alsnog worden afgedwongen.

Ook in het opzicht van auditability lijkt me dat iets wenselijker: wat houdt een gebruiker tegen om alsnog met dat gedeelde account op die share in te loggen?

Ontopic: wil je toch een programmaatje maken, gebruik dan de componenten die al in Windows zitten. Zo is er een popup voor credentials (Windows 7-versie) en zijn er ook al utilities voorzien voor het mappen van een netwerkdrive.

We are shaping the future

Pagina: 1