ZabbixAgent2Installer/Public/Get-ComputerDomainMembership.ps1
2025-09-18 03:03:12 +00:00

42 lines
No EOL
1.1 KiB
PowerShell

function Get-ComputerDomainMembership {
# https://learn.microsoft.com/en-us/windows/win32/api/dsrole/ne-dsrole-dsrole_machine_role
# https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/win32-computersystem
enum MACHINE_ROLE {
StandaloneWorkstation = 0
MemberWorkstation = 1
StandaloneServer = 2
MemberServer = 3
BackupDomainController = 4
PrimaryDomainController = 5
}
$Win32CS = Get-CimInstance -ClassName Win32_ComputerSystem -Property Domain, DomainRole
$obj = [PSCustomObject][ordered]@{
Domain = $Win32CS.Domain
DomainRole = [MACHINE_ROLE]$Win32CS.DomainRole
IsDomainMember = $false
IsWorkstation = $false
IsServer = $true
IsDomainController = $false
}
if ($obj.DomainRole -in 1,3,4,5) {
$obj.IsDomainMember = $true
}
if ($obj.DomainRole -in 4,5) {
$obj.IsDomainController = $true
}
if ($obj.DomainRole -in 0,1) {
$obj.IsWorkstation = $true
$obj.IsServer = $false
}
$obj
}