def samaccountnames(self, base_dn, distinguished_names):
        """Retrieve the sAMAccountNames for the specified DNs

        :param str base_dn: The base DN to search within
        :param list distinguished_name: A list of distinguished names for which to
            retrieve sAMAccountNames

        :return: Key/value pairs mapping DistinguishedName to sAMAccountName
        :rtype: dict
        """
        attributes = ['sAMAccountName']
        search_filter = '(|{0})'.format(''.join(['(DistinguishedName={0})'.format(dn)
                                                 for dn in distinguished_names]))
        logging.debug('%s Search filter: %s', self.__class__.__name__, search_filter)

        results = self.adq.search(base_dn, search_filter, attributes)

        mappings = {result[0]: result[1]['sAMAccountName'][0] for result in results}

        return mappings
Retrieve the sAMAccountNames for the specified DNs

        :param str base_dn: The base DN to search within
        :param list distinguished_name: A list of distinguished names for which to
            retrieve sAMAccountNames

        :return: Key/value pairs mapping DistinguishedName to sAMAccountName
        :rtype: dict