'---------------------------------------------------------------------------------
' Set NetBios over TCP/IP NodeType to Hybrid (H-Node), override DHCP-Settings
' SMB/NBT Namensauflösung über Broadcast, wenn kein WINS-Server vorhanden ist.
' Für Heimnetzwerker und PC-Direktverbindung über Ethernet-Kreuzkabel
' Wolfram Oestreicher 17.4.2003
'---------------------------------------------------------------------------------

Set SystemSet = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
For Each System in SystemSet 
 	If (System.OsType <> 18) Or (Left(System.Version, 1) <> "5")  Then
    	Wscript.echo "Nur für Windows 2000/XP"
    	Wscript.Quit
	End If
Next

Set oRegistry = GetObject("winmgmts:root\default:StdRegProv")
Const HKLM = &H80000002
sKey = "SYSTEM\CurrentControlSet\Services\NetBT\Parameters"
lRC = oRegistry.GetDWORDValue(HKLM, sKey , "DhcpNodeType", lValue)
If lRC <> 0 Then
  	Wscript.echo "Fehler eim Lesen von DhcpNodeType"
    Wscript.Quit
End If
lRC = oRegistry.GetDWORDValue(HKLM, sKey , "NodeType", lValue1)
 		
Select Case lValue
  	Case 1:		sNodetype = "Broadcast"
  	Case 2:		sNodetype = "Peer-Peer"
  	Case 4:		sNodetype = "Mixed"
  	Case 8:		sNodetype = "Hybrid"
  	Case else: 	sNodetype = "unbekannt"
End Select

If lValue1 = 8 Then
	Wscript.echo "Vorhandener DCHP NetBIOS-Knotentyp ist " & sNodetype & vbcrlf & _
	             "NetBIOS Knotentyp Hybrid ist bereits gesetzt"
    Wscript.Quit	 
End If	

If MsgBox ("Vorhandener DCHP NetBIOS-Knotentyp ist " & sNodetype & vbcrlf & vbcrlf & _
           "NetBIOS Knotentyp in Hybrid ändern?" , vbyesno) = vbyes Then
	lRC = oRegistry.SetDWORDValue(HKLM, sKey , "NodeType", 8)
	If lrc = 0 Then
	  	Wscript.echo "NetBIOS Knotentyp Hybrid gesetzt" & vbcrlf & _
	  	             "Die Änderung wird nach Restart der Dienste Dhcp und LMHosts" & vbcrlf & _
	  	             "oder Neustart des PCs wirksam"
	Else
		Wscript.echo "Fehler bei Änderung des NetBIOS Knotentyps"
	End if	
End If

