[Func] Membre d'un domaine ou groupe de travail
Posté : mar. 26 févr. 2013 16:05
par jguinch
Bonjour
Suite à un ancien post, voici une petite fonction qui permet de savoir si l'ordinateur est membre d'un domaine ou non.
Suite à un ancien post, voici une petite fonction qui permet de savoir si l'ordinateur est membre d'un domaine ou non.
► Afficher le texte
Code : Tout sélectionner
; Example
If _MemberOfDomain() Then Exit MsgBox(0, "Member of a domain", @ComputerName & " is member of a domain")
MsgBox(0, "Member of a workgroup", @ComputerName & " is not member of a domain")
; #FUNCTION# ====================================================================================================================
; Name .........: _MemberOfDomain()
; Description ..: Returns computer belongs to a domain or not
; Syntax .......: _MemberOfDomain()
; Parameters....: None
; Return values.: Success -
; Return 0 if computer is 'Standalone Workstation' or 'Standalone Server'
; Return 1 if computer is 'Member Workstation', 'Member Server', 'Backup Domain Controller' or 'Primary Domain Controller'
; Failure - Return -1
; ===============================================================================================================================
Func _MemberOfDomain()
Local $wbemFlagReturnImmediately = 0x10
Local $wbemFlagForwardOnly = 0x20
Local $O_WMIService, $colComputer, $objComputer
Local $A_getRole[6][2] = [ _
[0, "Standalone Workstation"], _
[1, "Member Workstation"], _
[0, "Standalone Server"], _
[1, "Member Server"], _
[1, "Backup Domain Controller"], _
[1, "Primary Domain Controller"] ]
$O_WMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & @ComputerName & "\root\cimv2")
If @error Then Return -1
$colComputer = $O_WMIService.ExecQuery ("Select * from Win32_ComputerSystem", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If @error Then Return -1
For $objComputer In $colComputer
$I_status = Int($objComputer.DomainRole)
Return $A_getRole[$I_status][0]
Next
Return -1
EndFunc ; ---> _MemberOfDomain()