[wpkg-users] Add check for 'computer-role'

Carl van Eijk carl.vaneijk+wpkg at gmail.com
Fri Aug 10 15:11:22 CEST 2012


On 10 August 2012 13:51, Carl van Eijk <carl.vaneijk at gmail.com> wrote:

>
>
> On 10 August 2012 12:34, Malte Hohmann <groups at daooze.de> wrote:
>
>> Hi there,
>>
>> I often get into a situation where I need to know, inside a package,
>> which role the local computer has. For example I have a package which
>> deploys a backup software. For this software to work it is necesssary to
>> add a pre-defined user-account to the group of local administrators. This,
>> of cause, would fail on a domain controller as this machine does not have
>> 'local' groups, so I need to skip these steps on domain controllers.
>> At the moment this is done by adding hostname checks, but these checks
>> will fail if there is a computer not named after out naming-convention. And
>> this is, however, just _one_ example!
>>
>> My suggestion is to add a new check to wpkg. This could be something like:
>>
>> <check type="host" condition="role" value="domaincontroller" />
>> <check type="host" condition="role" value="workstation,server" />
>
>
> I've not tested this, but this may work for you:
>
> <check type="execute" path="\\path\to\ComputerRole.vbs"
> condition="exitcodesmallerthan" value="4" >
>
or perhaps
<check type="execute" path="cscript \\path\to\ComputerRole.vbs"
condition="exitcodesmallerthan" value="4" >

>
>  values of 4 and 5 are Domain Controllers
>  so it will match only workstations and servers.
>
>
>> or similar.
>>
>> I have found some VB code which, with slight modifications, could be used:
>>
>
>> Function DomainRole(sNode)
>>     Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &
>> sNode & "\root\cimv2")
>>     Set colComputer = oWMI.ExecQuery("Select DomainRole from
>> Win32_ComputerSystem")
>>     For Each oComputer in colComputer
>>     iDR = oComputer.DomainRole
>>     Next
>>
>>     Select Case iDR
>>         Case 0
>>             DomainRole = "Standalone Workstation"
>>         Case 1
>>             DomainRole = "Member Workstation"
>>         Case 2
>>             DomainRole = "Standalone Server"
>>         Case 3
>>             DomainRole = "Member Server"
>>         Case 4
>>             DomainRole = "Backup Domain Controller"
>>         Case 5
>>             DomainRole = "Primary Domain Controller"
>>         Case Else
>>             DomainRole = "Unknown"
>>     End Select
>>
>> End Function
>>
>>
> ComputerRole.VBS (checks for returnvalue)
>
> strComputer = "."
> Set objWMIService = GetObject("winmgmts:" _
>     & "{impersonationLevel=impersonate}!\\" _
>     & strComputer & "\root\cimv2")
> Set colComputers = objWMIService.ExecQuery _
>      ("Select DomainRole from Win32_ComputerSystem")
> For Each objComputer in colComputers
>     Select Case objComputer.DomainRole
>  Case 0
>             strComputerRole = "Standalone Workstation"
>         Case 1
>             strComputerRole = "Member Workstation"
>         Case 2
>             strComputerRole = "Standalone Server"
>         Case 3
>             strComputerRole = "Member Server"
>         Case 4
>             strComputerRole = "Backup Domain Controller"
>         Case 5
>             strComputerRole = "Primary Domain Controller"
>     End Select
>     Wscript.Echo strComputerRole
> returnvalue = objComputer.DomainRole
> Next
>
> WScript.Quit(returnValue)
>
> You can also add users or groups to the local admins using group policies
> (restricted groups)
>
>
>
>
>
>> Regards,
>> Malte
>>
>> -------------------------------------------------------------------------
>> wpkg-users mailing list archives >>
>> http://lists.wpkg.org/pipermail/wpkg-users/
>> _______________________________________________
>> wpkg-users mailing list
>> wpkg-users at lists.wpkg.org
>> http://lists.wpkg.org/mailman/listinfo/wpkg-users
>>
>>
>
>
> --
> Carl van Eijk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wpkg.org/pipermail/wpkg-users/attachments/20120810/73b1a599/attachment-0002.html>


More information about the wpkg-users mailing list