issues with mismatched NetBIOS & DNS Host names ..
Hi,
we have a couple of issues where mismatched NetBIOS & DNS Hostnames on machines are affecting a variety of things including SMS, SCCM activities + Sophos Deployments
We are seeking a script to check & confirm the names are mismatched, issue a nbtstat -RR, & export the NetBIOS & DNS Host names to a file..
We are then intending to forward this file to our "Hostmaster" who administers our DNS to alter DNS names to match the NetBIOS names.
Has anyone done this or parts of this & can share their work with me please..
_____________________________
M H Rich
we have a couple of issues where mismatched NetBIOS & DNS Hostnames on machines are affecting a variety of things including SMS, SCCM activities + Sophos Deployments
We are seeking a script to check & confirm the names are mismatched, issue a nbtstat -RR, & export the NetBIOS & DNS Host names to a file..
We are then intending to forward this file to our "Hostmaster" who administers our DNS to alter DNS names to match the NetBIOS names.
Has anyone done this or parts of this & can share their work with me please..
_____________________________
M H Rich
0 Comments
[ + ] Show comments
Answers (5)
Please log in to answer
Posted by:
admrich
15 years ago
ORIGINAL: admrich
Hi,
we have a couple of issues where mismatched NetBIOS & DNS Hostnames on machines are affecting a variety of things including SMS, SCCM activities + Sophos Deployments
We are seeking a script to check & confirm the names are mismatched, issue a nbtstat -RR, & export the NetBIOS & DNS Host names to a file..
We are then intending to forward this file to our "Hostmaster" who administers our DNS to alter DNS names to match the NetBIOS names.
Has anyone done this or parts of this & can share their work with me please..
_____________________________
M H Rich
Ooops, & also.. need to check/confirm that the machines isn't disabled in Active Directory ?!
Posted by:
anonymous_9363
15 years ago
Done properly, scripts like this are distinctly non-trivial and you are unlikely to find anything suitable off-the-shelf or for free.
Some searching will undoubtedly locate scripts which do parts of what you want: you could then stitch them together. A good start would be the Domain Inventory Reporting tool from MouseTrax (no affiliation, etc.). There are some good AD scripts on computerperformance
Some searching will undoubtedly locate scripts which do parts of what you want: you could then stitch them together. A good start would be the Domain Inventory Reporting tool from MouseTrax (no affiliation, etc.). There are some good AD scripts on computerperformance
Posted by:
admrich
15 years ago
ORIGINAL: VBScab
Done properly, scripts like this are distinctly non-trivial and you are unlikely to find anything suitable off-the-shelf or for free.
Some searching will undoubtedly locate scripts which do parts of what you want: you could then stitch them together. A good start would be the Domain Inventory Reporting tool from MouseTrax (no affiliation, etc.). There are some good AD scripts on computerperformance
Many thx for your response. Parts is pretty much all that I'm expecting & stitching was what I was hoping to do given the parts are there to start with :)
Posted by:
Byoung4now
15 years ago
I will give this one a quick try from all the pieces of scripts I collected off the internet. :-)
first find out if Name and DNShost name are different
Option Explicit
Dim objWMIService, objItem, colItems, strComputer
Dim Name, DNSName ,strQuery
' On Error Resume Next
strComputer = "LocalHost"
Set objWMIService = GetObject("winmgmts:\\" _
& strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery(_
"Select * from Win32_ComputerSystem")
For Each objItem in colItems
Name = objItem.Name
DNSName = objItem.DNSHostName
Next
Then a function to find the computer in AD and then I made another from it to check Account disabled
Public Function SearchDistinguishedName(ByVal vSAN, byVal vType)
' Function: SearchDistinguishedName
' Description: Searches the DistinguishedName for a given SamAccountName
' Parameters: ByVal vSAN - The SamAccountName to search
' Returns: The Name
Dim oRootDSE, oConnection, oCommand, oRecordSet
Set oRootDSE = GetObject("LDAP://rootDSE")
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open "Provider=ADsDSOObject;"
Set oCommand = CreateObject("ADODB.Command")
oCommand.ActiveConnection = oConnection
oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & _
">;(&(objectCategory="&vType&")(samAccountName=" & vSAN & "));Name;subtree"
Set oRecordSet = oCommand.Execute
On Error Resume Next
If Error = 0 Then
SearchDistinguishedName = oRecordSet.Fields("Name")
Else
SearchDistinguishedName = "Error"
On Error GoTo 0
End If
oConnection.Close
Set oRecordSet = Nothing
Set oCommand = Nothing
Set oConnection = Nothing
Set oRootDSE = Nothing
End Function
Public Function AccountNotLocked(ByVal vSAN, byVal vType)
' Function: SearchDistinguishedName
' Description: Searches the DistinguishedName for a given SamAccountName
' Parameters: ByVal vSAN - The SamAccountName to search
' Returns: The Name
Dim oRootDSE, oConnection, oCommand, oRecordSet
Set oRootDSE = GetObject("LDAP://rootDSE")
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open "Provider=ADsDSOObject;"
Set oCommand = CreateObject("ADODB.Command")
oCommand.ActiveConnection = oConnection
oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & _
">;(&(objectCategory="&vType&")(samAccountName=" & vSAN & ")!(userAccountControl:1.2.840.113556.1.4.803:=2 ));Name;subtree"
Set oRecordSet = oCommand.Execute
On Error Resume Next
If Error = 0 Then
SearchDistinguishedName = oRecordSet.Fields("Name")
Else
SearchDistinguishedName = "Error"
On Error GoTo 0
End If
oConnection.Close
Set oRecordSet = Nothing
Set oCommand = Nothing
Set oConnection = Nothing
Set oRootDSE = Nothing
End Function
Lastly a little nested IF to compare all the results.
If UCase(Name) <> UCase(DNSName) Then
If SearchDistinguishedName (Name & "$" , "COMPUTER") <> "Error" Then
MsgBox "This PC has a name mismatch, it's currently NOT in AD."
If AccountNotLocked (Name & "$" , "COMPUTER") <> "Error" Then
MsgBox "This PC has a name mismatch, it's currently in AD and the Account Isn't Locked."
End If
End If
End If
as far as writing a log file or doing the Wshshell.run for the nbtstat. That should be easy enough to add I think.
first find out if Name and DNShost name are different
Option Explicit
Dim objWMIService, objItem, colItems, strComputer
Dim Name, DNSName ,strQuery
' On Error Resume Next
strComputer = "LocalHost"
Set objWMIService = GetObject("winmgmts:\\" _
& strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery(_
"Select * from Win32_ComputerSystem")
For Each objItem in colItems
Name = objItem.Name
DNSName = objItem.DNSHostName
Next
Then a function to find the computer in AD and then I made another from it to check Account disabled
Public Function SearchDistinguishedName(ByVal vSAN, byVal vType)
' Function: SearchDistinguishedName
' Description: Searches the DistinguishedName for a given SamAccountName
' Parameters: ByVal vSAN - The SamAccountName to search
' Returns: The Name
Dim oRootDSE, oConnection, oCommand, oRecordSet
Set oRootDSE = GetObject("LDAP://rootDSE")
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open "Provider=ADsDSOObject;"
Set oCommand = CreateObject("ADODB.Command")
oCommand.ActiveConnection = oConnection
oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & _
">;(&(objectCategory="&vType&")(samAccountName=" & vSAN & "));Name;subtree"
Set oRecordSet = oCommand.Execute
On Error Resume Next
If Error = 0 Then
SearchDistinguishedName = oRecordSet.Fields("Name")
Else
SearchDistinguishedName = "Error"
On Error GoTo 0
End If
oConnection.Close
Set oRecordSet = Nothing
Set oCommand = Nothing
Set oConnection = Nothing
Set oRootDSE = Nothing
End Function
Public Function AccountNotLocked(ByVal vSAN, byVal vType)
' Function: SearchDistinguishedName
' Description: Searches the DistinguishedName for a given SamAccountName
' Parameters: ByVal vSAN - The SamAccountName to search
' Returns: The Name
Dim oRootDSE, oConnection, oCommand, oRecordSet
Set oRootDSE = GetObject("LDAP://rootDSE")
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open "Provider=ADsDSOObject;"
Set oCommand = CreateObject("ADODB.Command")
oCommand.ActiveConnection = oConnection
oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & _
">;(&(objectCategory="&vType&")(samAccountName=" & vSAN & ")!(userAccountControl:1.2.840.113556.1.4.803:=2 ));Name;subtree"
Set oRecordSet = oCommand.Execute
On Error Resume Next
If Error = 0 Then
SearchDistinguishedName = oRecordSet.Fields("Name")
Else
SearchDistinguishedName = "Error"
On Error GoTo 0
End If
oConnection.Close
Set oRecordSet = Nothing
Set oCommand = Nothing
Set oConnection = Nothing
Set oRootDSE = Nothing
End Function
Lastly a little nested IF to compare all the results.
If UCase(Name) <> UCase(DNSName) Then
If SearchDistinguishedName (Name & "$" , "COMPUTER") <> "Error" Then
MsgBox "This PC has a name mismatch, it's currently NOT in AD."
If AccountNotLocked (Name & "$" , "COMPUTER") <> "Error" Then
MsgBox "This PC has a name mismatch, it's currently in AD and the Account Isn't Locked."
End If
End If
End If
as far as writing a log file or doing the Wshshell.run for the nbtstat. That should be easy enough to add I think.
Posted by:
anonymous_9363
15 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.