How do I get computer workgroup(not domain) name in vbscript ?
thanks
Vilius
>
> How do I get computer workgroup(not domain) name in vbscript ?
>
I don't have a workgroup, but I assume there is an environment variable with
the information you need. You can use the wshShell object to retrieve any
environment variable. For example, to retrieve USERDOMAIN:
Set objShell = CreateObject("Wscript.Shell")
Wscript.Echo objShell.Environment("PROCESS").Item("USERDOMAIN")
--
Richard Mueller
MVP Directory Services
Hilltop Lab - http://www.rlmueller.net
--
I guess the fastest way is to read it from the registry with .regread from
the shell object.
If you know one of the workgroups name, you can search for it using the
registry just to track down the key to read from.
Once you know the key to read from, it's a breeze.
Otherwise you can use the WMI, but this way the script must have WMI perms
and it's a lot heavier and slow.
idle,
rusga
On Sun, 12 Jul 2009 16:53:22 +0100, Vilius Mock�nas <v_moc...@yahoo.com>
wrote:
hum (sorry for the poor english)
Not realy the right way.
if you are not on domain, USERDOMAIN is COMPUTERNAME
Try wshNetwork Object (
http://msdn.microsoft.com/en-us/library/s6wt333f(VS.85).aspx )
Something lik that
Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "Domain = " & WshNetwork.UserDomain
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
WScript.Echo "User Name = " & WshNetwork.UserName
But not good :( because it's alway the same isue : DOMAIN is
%USERDOMAIN%
A good way is to use WMI
set wmi = getobject("winmgmts:")
wql = "select * from win32_computersystem"
set results = wmi.execquery(wql)
For each compsys in results
WScript.Echo "DOMAIN / WORKGROUP : " & compsys.domain
Next
--
Franᅵois Dunoyer
Astuces pour Windows : http://fds.mvps.org/ta/
Site perso : http://www.fdunoyer.net
Blog : http://fds34.spaces.live.com/
Documentation states that if the computer is not joined to a domain, the
domain property of the Win32_ComputerSystem class is the name of the
workgroup. So the above code will work, but WMI should be slower than other
methods. Also, WMI is not available before Windows 2000 (unless it is
installed separately).
I don't know if there is an environment variable for this, but if there is,
reading it would be faster. I also do not know what
IADsWinNTSystemInfo.DomainName returns when the computer belongs to a
workgroup. I'm surprised I cannot find how to retrieve this, other than with
WMI. I know there is a registry setting in Win9x, but that doesn't work
after Windows 98.
--
Richard Mueller
MVP Directory Services
Hilltop Lab - http://www.rlmueller.net
--
> I also do not know what
> IADsWinNTSystemInfo.DomainName returns when the computer belongs to a
> workgroup.
test ...
On laptop (Workgroup) IADsWinNTSystemInfo.DomainName ) %computername%
:(
> I'm surprised I cannot find how to retrieve this, other than with
> WMI. I know there is a registry setting in Win9x, but that doesn't work after
> Windows 98.
>
> --
> Richard Mueller
> MVP Directory Services
> Hilltop Lab - http://www.rlmueller.net
regards
--
Franᅵois Dunoyer
Quelques textes qui m'ont sᅵduit : http://fdunoyer.free.fr/textes.htm
Site perso : http://fds.mvps.org
Blog perso : http://fdunoyer.spaces.live.com/
Blog : http://fds34.spaces.live.com/
>> I also do not know what IADsWinNTSystemInfo.DomainName returns when the
>> computer belongs to a workgroup.
> test ...
> On laptop (Workgroup) IADsWinNTSystemInfo.DomainName ) %computername% :(
By the way, on reflection it seems to me that the userdomain variable value
and the result from IADsWinNTSystemInfo are logical; the naming is just a
bit weak. A better name would be SecurityDomain.
Set objWMISvc = GetObject( "winmgmts:\\.\root\cimv2" )
Set colItems = objWMISvc.ExecQuery( "Select * from Win32_ComputerSystem", ,
48 )
For Each objItem in colItems
strComputerDomain = objItem.Domain
If objItem.PartOfDomain Then
WScript.Echo "Computer Domain: " & strComputerDomain
Else
WScript.Echo "Workgroup: " & strComputerDomain
End If
Next
* Source: http://www.robvanderwoude.com/vbstech_network_names_domain.php
"rusga" wrote:
> Hi
>
> I guess the fastest way is to read it from the registry with .regread from
> the shell object.
>
> If you know one of the workgroups name, you can search for it using the
> registry just to track down the key to read from.
>
> Once you know the key to read from, it's a breeze.
>
> Otherwise you can use the WMI, but this way the script must have WMI perms
> and it's a lot heavier and slow.
>
> idle,
> rusga
>
>
> On Sun, 12 Jul 2009 16:53:22 +0100, Vilius Mockûnas <v_moc...@yahoo.com>
Congratulation to your persistence to leading up to an acceptable
solution, by beating the corporate "hiding the decline" attitude.
Nice
---------------
Yes, you were born before Sept. 2009 and you mind is fresh
for challenges in Dec. 2009.
"Renato Pereira" <Renato Per...@discussions.microsoft.com> wrote in message
news:5EFAFF50-6041-422B...@microsoft.com...