Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[VBS} Resolve hostname met een vervolg actie

Pagina: 1
Acties:

  • Dwazer
  • Registratie: april 2000
  • Laatst online: 29-07 13:36
Voor een client migratie (Windows XP SP2/3 naar Windows 7 SP1) heb ik een WDS (Windows Deployment Services) omgeving opgezet met MDT2010. Image gemaakt en drivers geimporteerd. Kan met succes een client voorzien van een nieuwe Windows 7 installatie.

Voor het toevoegen van een client aan het domein, gebruik ik een script wat aan het einde van de sequence draait:

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
On Error Resume Next
' This script joins the current computer to a domain, using specified user and placing it in specified OU
' Created by Sole Viktor - sole@sole.dk

' Set these variables
strDomain = "DOMEIN" ' Domain to logon
strPassword = "WACHTWOORD" ' Service account logon password
strUser = "GEBRUIKERSNAAM" ' Service account
strOU = "COMPUTEROU" ' OU to place computer in

' Constants to choose from when joining
Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144

Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName

' Join Domain
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
strPassword, strDomain & "\" & strUser, strOU, _
JOIN_DOMAIN + ACCT_CREATE + DOMAIN_JOIN_IF_JOINED)

Select Case ReturnValue

Case 0 Status = "Success"

Case 2 Status = "Missing OU"

Case 5 Status = "Access denied"

Case 53 Status = "Network path not found"

Case 87 Status = "Parameter incorrect"

Case 1326 Status = "Logon failure, user or pass"

Case 1355 Status = "Domain can not be contacted"

Case 1909 Status = "User account locked out"

Case 2224 Status = "Computer Account allready exists"

Case 2691 Status = "Allready joined"

Case Else Status = "UNKNOWN ERROR " & ReturnValue

' Show Status
WScript.Echo "Join domain status: " & Status

End Select


Nu is dit een script wat zijn werk doet :)

Nu zou ik willen toevoegen dat het script op basis van de hostname bepaald in welke OU de client terecht komt met een soort van "IF + DO + OR" functie (Gaat om 4 verschillende OU's: 2 bedrijven met een Desktop en een Notebook OU).

Bijvoorbeeld:
IF Hostname: 1234AA***** DO OU: 1234AA
IF Hostname: 1234AB***** DO OU: 1234AB
enz.
(De ***** is een reeks getallen van de client zelf, die is uniek voor elke client. Alleen de eerste 6 characters zijn een vast gegeven)

Voor het resolven van de hostname, heb ik dit script gevonden:
code:
1
2
3
4
Set wshShell = CreateObject( "WScript.Shell" )
strRegValue = "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname"
strHostName = wshShell.RegRead( strRegValue )
WScript.Echo "Host Name: " & strHostName


Is er een idee hoe dit het mooiste opgelost kan worden? :)


Apple iPhone SE (2020) Microsoft Xbox Series X LG CX Google Pixel 4a CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True