dscResources/common/windows.UserRightsAssignment.ps1

#region Header
$rules = Get-RuleClassData -StigData $StigData -Name UserRightRule
#endregion Header
#region Resource
Foreach( $rule in $rules )
{
    $groupTranslation = @{
        
        'Administrators'            = 'Builtin\Administrators'
        'Auditors'                  = '{0}\auditors'
        'Authenticated Users'       = 'Authenticated Users'
        'Domain Admins'             = '{0}\Domain Admins'
        'Enterprise Admins'         = '{0}\Enterprise Admins'
        'Guests'                    = 'Guests'
        'Local Service'             = 'NT Authority\Local Service'
        'Network Service'           = 'NT Authority\Network Service'
        'NT Service\WdiServiceHost' = 'NT Service\WdiServiceHost'
        'NULL'                      = ''
        'Security'                  = '{0}\security'
        'Service'                   = 'Service'
        'Window Manager\Window Manager Group' = 'Window Manager\Window Manager Group'
    }

    # This requires a local domain name to be injected to ensure a valid account name.
    $domainName = Get-DomainName -Name $DomainName -Format 'NetbiosName'

    $identitySplit = $rule.Identity -split "," 
    [System.Collections.ArrayList]  $IdentityList = @()
    foreach ($identity in $identitySplit)
    { 
        if ($null -eq $groupTranslation.$identity)
        {
            continue
        }
        
        [void] $IdentityList.Add($groupTranslation.$identity -f $domainName )
    }

    UserRightsAssignment (Get-ResourceTitle -Rule $rule)
    {            
        Policy   = ($rule.DisplayName -replace " ","_")
        Identity = $IdentityList  
    }
}
#endregion Resource