Script om computernaam te veranderen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Pindamann
  • Registratie: December 2007
  • Laatst online: 15-09 16:23
Tweakerts,

Dit script wordt gebruikt om in Windows XP de computernaam in het mac adres te veranderen maar werkt niet in Windows 7. Mijn vraag is waarom niet?

Ik heb zelf even gekeken of die VB scripts default wel uit kunnen worden gevoerd en dat is het geval dus geen service oid die mogelijk uit staat. Het pad heb ik moeten veranderen van HKLM\System naar HKLM\HKEY_LOCAL_MACHINE omdat dat is veranderd met Windows 7.

De melding die ik telkens krijg is "Ongeldig hoofd in registersleutel" waarna hij het over Computername heeft.

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
strComputer = "localhost"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True AND MACAddress LIKE '00:1E:0B:%'")
Set wingsod = objWMIService.ExecQuery ("SELECT * FROM Win32_OperatingSystem", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
set lol = wscript.createobject("wscript.shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set masters = CreateObject ("WSCript.shell")
strCCS = "HKLM\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\"  
strTcpipParamsRegPath = strCCS & "Services\Tcpip\Parameters\"  
strCompNameRegPath = strCCS & "Control\Computername\"

Set aFile = fso.GetFile("C:\WINDOWS\install\macadr.vbs")

For Each objItem in colItems

macadr = objItem.MACAddress
l = Split(macadr, ":", -1, 1)
mac = l(0) & l(1) & l(2) & l(3) & l(4) &l(5)

Next

For Each objItem in wingsod

cname = objItem.CSName

Next


With masters  

.RegWrite strCompNameRegPath & "Computername\Computername", mac  
.RegWrite strTcpipParamsRegPath & "NV Hostname", mac


End With


wscript.sleep 3000

Set objExec = masters.Exec("shutdown /r /t 00")


Iemand bekend hiermee?

Dank

Edit: Ik zie net dat er bovenaan staat 32bit dit heb ik veranderd in 64bit waarna ik de melding:
Fout: Ongeldige Klasse
Code: 80041010
Bron: SWBemServicesEx

[ Voor 4% gewijzigd door Pindamann op 12-10-2009 14:01 ]

9800X3D | 3070


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 11:02

Haan

dotnetter

Als ik even in mijn Windows7 register kijk, zie ik geen Control key in HKLM\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\

Maar in een XP machine ook niet.. Zou het kunnen dat in XP die key dan aangemaakt wordt, maar dat je daar in Windows7 meer rechten voor nodig hebt? Probeer anders nog eens nadat je de key handmatig in het register hebt aangemaakt.

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Ken je iets van C#? Dan werkt dit misschien: :)

http://www.cy2online.net/...08/Set_Computer_Name.html

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Pindamann
  • Registratie: December 2007
  • Laatst online: 15-09 16:23
Haan schreef op maandag 12 oktober 2009 @ 14:03:
Als ik even in mijn Windows7 register kijk, zie ik geen Control key in HKLM\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\

Maar in een XP machine ook niet.. Zou het kunnen dat in XP die key dan aangemaakt wordt, maar dat je daar in Windows7 meer rechten voor nodig hebt? Probeer anders nog eens nadat je de key handmatig in het register hebt aangemaakt.
Mijn machine heeft wel HKLM\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ en daar NV Host

Ik kan een klein beetje C#`en dus ik zal er naar kijken bedankt!

9800X3D | 3070


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:22

MueR

Admin Tweakers Discord

is niet lief

Pindamann schreef op maandag 12 oktober 2009 @ 13:48:
Edit: Ik zie net dat er bovenaan staat 32bit dit heb ik veranderd in 64bit waarna ik de melding:
Hoe dan? Toch niet door Win32 te veranderen naar Win64 he?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Pindamann
  • Registratie: December 2007
  • Laatst online: 15-09 16:23
MueR schreef op maandag 12 oktober 2009 @ 14:53:
[...]

Hoe dan? Toch niet door Win32 te veranderen naar Win64 he?
Jawel. De Windows die ik gebruik is Windows 7 64bit Enterprise.

9800X3D | 3070


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:22

MueR

Admin Tweakers Discord

is niet lief

Mag je mij vertellen waar ik de Win64_OperatingSystem class kan vinden op MSDN. Die bestaat niet.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Dysmael
  • Registratie: Januari 2002
  • Laatst online: 01-08-2019
Ga je dit in een domein uitvoeren? Een DC vind het niet zo fijn als je zomaar computernamen gaat wijzigen :) Daarvoor kan je het beste netdom.exe gebruiken.
Zorg voor een nette output van alle computernamen en bijbehorende IP adressen en je hebt binnen 15 minuten een batch gemaakt die alle computernamen in één keer wijzigd.
(edit: misschien dat je ook een logon-script kan gebruiken i.c.m. kixtart)

[ Voor 10% gewijzigd door Dysmael op 12-10-2009 15:07 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zomaar willekeurig namen gaan veranderen van Win32 naar Win64 lijkt vast heel zinnig maar ik zou als ik jou was toch maar eens eerst gaan controleren of die dingen wel bestaan voordat je ze zomaar aanroept...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Pindamann
  • Registratie: December 2007
  • Laatst online: 15-09 16:23
Ik heb weinig verstand van dit script, hoopte dat iemand sneller dan ik zou zien waar de fout lag van XP > W7. En verder draait de boel niet in een domein.

9800X3D | 3070


Acties:
  • 0 Henk 'm!

  • Dysmael
  • Registratie: Januari 2002
  • Laatst online: 01-08-2019
Dan nog kan je netdom.exe gebruiken.
Om hoeveel pc's gaat het en waarom moet de computernaam het MAC adres worden?

De foutmelding die je krijgt gaat overigens over een registry-key. Heb je al gecontroleerd of de key je wil ex- en importeren wel bestaat?

Heb je iets aan dit voorbeeld?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMACADDR = objWMIService.ExecQuery ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objMACADDR in colMACADDR
  strMAC = objMACADDR.MACAddress
  If strMAC <> "" Then exit For
Next 

strMAC=replace(strMAC,":","")
 
Set ws = WScript.CreateObject("WScript.Shell")
value1 = "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\"
value2 = "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\ParameterS\"
ws.RegWrite value1 & "ComputerName", strMAC
ws.RegWrite value2 & "NV Hostname", strMAC

[ Voor 58% gewijzigd door Dysmael op 12-10-2009 15:58 ]


Acties:
  • 0 Henk 'm!

  • Pindamann
  • Registratie: December 2007
  • Laatst online: 15-09 16:23
RolfLobker schreef op maandag 12 oktober 2009 @ 15:51:
Dan nog kan je netdom.exe gebruiken.
Om hoeveel pc's gaat het en waarom moet de computernaam het MAC adres worden?

De foutmelding die je krijgt gaat overigens over een registry-key. Heb je al gecontroleerd of de key je wil ex- en importeren wel bestaat?

Heb je iets aan dit voorbeeld?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMACADDR = objWMIService.ExecQuery ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objMACADDR in colMACADDR
  strMAC = objMACADDR.MACAddress
  If strMAC <> "" Then exit For
Next 

strMAC=replace(strMAC,":","")
 
Set ws = WScript.CreateObject("WScript.Shell")
value1 = "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\"
value2 = "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\ParameterS\"
ws.RegWrite value1 & "ComputerName", strMAC
ws.RegWrite value2 & "NV Hostname", strMAC
Bedankt voor de reactie! Ik heb trouwens een foutje gemaakt door HKLM\HKEY_LOCAL_MACHINE te gebruiken op een bepaald punt maar dat leek uiteindelijk niet de fout te zijn.

Ik heb jouw script geprobeerd met . als localhost maar de melding is dezelfde als die op de bijgevoegde screenshot, waar ik het oude script ook nog een keer heb geprobeerd met de herstelde fout.

Het hoeft niet perse het mac adres te zijn maar heeft wel de voorkeur. De reden is namelijk omdat die script in de run_once komt van een image, op deze manier elke PC een unieke naam en computerid heeft.
screenshot

9800X3D | 3070


Acties:
  • 0 Henk 'm!

  • Dysmael
  • Registratie: Januari 2002
  • Laatst online: 01-08-2019
Misschien dit aanpassen:

strCompNameRegPath = strCCS & "Control\Computername\"
naar:
strCompNameRegPath = strCCS & "Control\Computername\Computername\"

en dit:
.RegWrite strCompNameRegPath & "Computername\Computername", mac
naar dit:
.RegWrite strCompNameRegPath & "Computername", mac

Ik heb geen kaas gegeten van vbscript dus misschien zeg ik hiermee wel iets heel doms hoor... :)

Had je intussen ook al de mogelijkheden van netdom.exe bekeken?

[ Voor 72% gewijzigd door Dysmael op 13-10-2009 18:26 ]


Acties:
  • 0 Henk 'm!

  • Pindamann
  • Registratie: December 2007
  • Laatst online: 15-09 16:23
RolfLobker schreef op dinsdag 13 oktober 2009 @ 18:21:
Misschien dit aanpassen:

strCompNameRegPath = strCCS & "Control\Computername\"
naar:
strCompNameRegPath = strCCS & "Control\Computername\Computername\"

en dit:
.RegWrite strCompNameRegPath & "Computername\Computername", mac
naar dit:
.RegWrite strCompNameRegPath & "Computername", mac

Ik heb geen kaas gegeten van vbscript dus misschien zeg ik hiermee wel iets heel doms hoor... :)

Had je intussen ook al de mogelijkheden van netdom.exe bekeken?
Het script dat je hiervoor postte werkt. Een mede stagiair kwam er achter dat het simpelweg een rechtenprobleem was. Het eerste script dat ikzelf postte werkt helemaal niet maar de joue wel via de run_once, op die manier wordt het ook als administrator uitgevoerd.

Bedankt!

9800X3D | 3070

Pagina: 1