Conector CSV genérico: Guía de referencia técnica (versión preliminar)

En este artículo se describe el conector CSV genérico (GCSV). El artículo se aplica a los siguientes productos:

Para MIM 2016, el conector está disponible como descarga desde el Centro de descarga de Microsoft.

Para ver este conector en acción, consulte el artículo Conector de SQL genérico paso a paso .

Nota

El servicio de aprovisionamiento de Azure AD ahora proporciona una solución basada en agente ligero para aprovisionar usuarios en archivos CSV, sin una implementación completa de sincronización de MIM. Se recomienda evaluar si satisface sus necesidades. Más información.

Introducción al conector CSV genérico

El conector CSV genérico (GCSV) permite integrar los datos de identidad de usuario y grupo mantenidos en archivos CSV con productos de Microsoft, como el agente de aprovisionamiento de Microsoft Entra Connect (ECMA2Host) y Microsoft Identity Manager 2016 (MIM2016).

Tiene varias características, como la capacidad de orquestar el uso de PowerShell para administrar los datos de identidad antes o después de las importaciones o exportaciones. Ofrece compatibilidad con varios tipos de datos, como binarios y referencias, compatibilidad con valores de cadena calificados y cadenas multivalor.

En este artículo se describen las características y funciones del conector CSV genérico y cómo configurarlo para MIM 2016.

En la tabla siguiente se enumeran las características que admite la versión actual del conector, desde una perspectiva de alto nivel:

Característica Detalles
Compatibilidad con varios productos El uso de este conector es compatible con los siguientes productos de Microsoft:
  • agente de aprovisionamiento de Microsoft Entra Connect (ECMA2Host)
  • Microsoft Identity Manager 2016 (MIM2016)
  • Archivos CSV admitidos Este conector admite la administración de usuarios (obligatorios) y grupos (opcionales), mediante la configuración de hasta tres archivos CSV:
  • Archivo CSV de usuarios (por ejemplo, Users.csv)
  • Archivo CSV de grupos (por ejemplo, Groups.csv)
  • Archivo CSV de miembros del grupo (por ejemplo, Members.csv)
  • Procesamiento previo y posterior a la operación con PowerShell Este conector admite la configuración de hasta cuatro (4) scripts de PowerShell para facilitar el procesamiento previo o posterior de los datos de identidad de usuario y grupo antes o después de las importaciones o exportaciones.
    Codificación de archivos CSV compatible El conector admite todos los tipos de codificación de servidor predeterminados (o instalados): (por ejemplo, Unicode, UTF-8, UTF-7, ASCII, etc.)
    Tipos de datos de campo CSV admitidos El conector admite los siguientes tipos de datos de atributo:
  • Binario: (como cadenas base64)
  • Boolean: (como True/False)
  • Enteros
  • Cadenas/Cadenas multivalor
  • Referencia
  • Delimitación de campos CSV Compatibilidad con comas (,) o cualquier carácter alfamerico imprimible para calificar el principio y el final de cualquier valor de cadena.
    Compatibilidad con la calificación de cadenas Compatibilidad con comillas dobles (") o cualquier carácter alfameric imprimible para calificar el principio y el final de cualquier valor de cadena.
    Compatibilidad con cadenas multivalor Compatibilidad con cadenas multivalor
    Operaciones de conector admitidas El conector admite las siguientes operaciones:
  • Importación completa
  • Exportación
  • Exportación completa
  • Schema

    La detección de esquemas es dinámica, pero requiere una configuración manual para completarse.

    Los campos se identifican dinámicamente en función de un delimitador especificado (o conocido como "Separador de valores").

    Los tipos de datos de campo se designan manualmente durante la configuración.

    Requisitos previos

    Antes de usar el conector, asegúrese de que tiene lo siguiente en el servidor de sincronización:

    • Microsoft .NET 4.6.2 Framework o posterior
    • Archivos CSV que contienen el esquema deseado para los siguientes tipos de identidad:
      • Archivo de usuarios (obligatorio)
      • Grupos (opcional)
      • Miembros del grupo (obligatorios si se usan grupos)
    • (Opcional) Scripts de PowerShell para administrar el procesamiento previo y posterior para los siguientes eventos de tipos de operación:
      • Pre-Import: este script se ejecuta antes de que se ejecute una operación de importación.
      • Posterior a la importación: este script se ejecuta después de ejecutar una operación de importación.
      • Exportación previa: este script se ejecuta antes de que se ejecute una operación de exportación.
      • Posterior a la exportación: este script se ejecuta después de ejecutar una operación de exportación.

    Permisos de cuenta de servicio de sincronización de MIM

    Importante

    La cuenta del servicio de sincronización de MIM 2016 es el contexto de seguridad que realiza las operaciones de archivo en archivos CSV y ejecuta los scripts de PowerShell previos y posteriores al procesamiento. Esta cuenta de servicio necesita permisos de lectura y escritura para todos los archivos CSV y PowerShell configurados. También necesita los permisos ExecutePolicy de PowerShell adecuados para ejecutar los scripts configurados.

    Creación de un nuevo conector

    La lista siguiente es una introducción general de alto nivel de los pasos descritos en esta guía. Para comenzar, es necesario usar una cuenta con el rol de sincronización de MIM Administración para realizar estas tareas:

    • Abra la ventana Crear nuevo agente de administración (MA) desde el Service Manager de sincronización de MIM.
    • Seleccione el conector CSV genérico como tipo de conector.
    • Proporcione la ruta de acceso del archivo y el nombre del archivo CSV que se van a importar o exportar.
    • Especifique la codificación de archivos, el separador de valores, el separador de varios valores y el calificador de texto para el archivo CSV.
    • Elija si desea usar los valores de la primera fila como campos de encabezado o no.
    • Seleccione los tipos de objeto y los atributos que se van a importar o exportar desde el archivo CSV.
    • Configure la partición, el perfil de ejecución y los detalles de asignación de ma.
    • Proporcione las rutas de acceso de script y los parámetros para los scripts de PowerShell, si los hay.
    • Ejecute ma para realizar las operaciones de importación, sincronización o exportación.

    Para crear un conector CSV genérico, en Servicio de sincronización , seleccione Agente de administración y Crear. Seleccione el conector CSV genérico (Microsoft).

    Captura de pantalla de la página Crear conector 1

    Conectividad

    La página Conectividad contiene las ubicaciones de archivo de los archivos CSV Usuarios, Grupos y Miembros del grupo.

    La imagen siguiente es un ejemplo de la página Conectividad .

    Captura de pantalla de la página Conectividad

    En esta página se especifican las ubicaciones de los siguientes archivos CSV:

    • Archivo de usuarios: ruta de acceso completa del archivo CSV que contiene los registros de usuario y sus valores de atributo. Se requiere un archivo.
    • Archivo de grupos: ruta de acceso completa del archivo CSV que contiene los registros de grupo. Este archivo es opcional.
    • Archivo de miembros: ruta de acceso completa del archivo CSV que contiene registros de referencia de miembros del grupo.

    Importante

    La cuenta de servicio de sincronización de MIM debe tener permisos de lectura y escritura en todos los archivos CSV designados. Como se mencionó anteriormente, los archivos de grupo y miembro no son necesarios si solo los usuarios están configurados.

    La pantalla Conectividad es la primera que aparece cuando se crea un nuevo conector de SQL genérico. En primer lugar, debe proporcionar la siguiente información de sección:

    Funcionalidades

    En esta página se describen las funcionalidades del conector. Las funcionalidades del conector son fijas y no se pueden cambiar, pero se explican aquí para proporcionar información sobre cómo funciona el conector.

    La imagen siguiente es un ejemplo de la página Funcionalidades .

    Captura de pantalla de la página Capablities

    En la sección siguiente se enumeran las configuraciones individuales y sus significados:

    • Estilo de nombre distintivo (LDAP): el conector GCSV usa la sintaxis LDAP (Protocolo ligero de acceso a directorios) para construir el DN (nombre distintivo) para identificar de forma única cada objeto User o Group en su espacio conector. Todos los valores de DN se expresan en el siguiente formato: CN=[ANCHOR_VALUE],Object=[User|Group],O=CSV.
    • Confirmación del objeto (Normal): normalmente, el motor de sincronización supone que puede recuperar el objeto de nuevo en una importación delta posterior después de una exportación. Así funciona normalmente el motor de sincronización, pero no todos los sistemas conectados funcionan de esta manera. Esta configuración de Normal garantiza que no haya ninguna exported-change-not-reimported advertencia en la importación de seguimiento.
    • Tipo de exportación (MultivaluedReferenceAttributeUpdate): el tipo de exportación especifica cómo se da formato a los objetos y se envían al sistema de destino durante la sincronización. MultivaluedReferenceAttributeUpdate es un tipo de exportación diseñado para trabajar con Microsoft Entra ID. Solo envía los atributos que han cambiado. En el caso de los atributos de tipo de valor, usa AttributeReplace y, para los atributos de referencia, usa AttributeUpdate.
    • Normalizaciones (Ninguno): las normalizaciones hacen referencia a la estandarización de datos en un formato coherente. Ninguno significa que no se aplican reglas de normalización específicas. Los datos permanecen tal cual sin ninguna transformación adicional por parte del conector.

    Esquema 1 (configuraciones de formato de archivo CSV)

    El conector GCSV utiliza tres tipos de separadores (o delimitadores) para delimitar y analizar campos CSV y sus valores.

    Esta página contiene la configuración de valores de caracteres para estos separadores y el tipo de codificación que se usó para crear el archivo como CSV.

    La imagen siguiente es una imagen de la página Esquema 1 (Configuraciones de formato de archivo CSV).

    Captura de pantalla de la página 4 de la regla de sincronización (configuraciones de formato de archivo CSV)

    La siguiente sección es una lista de las configuraciones individuales:

    • Usar encabezados para la detección de esquemas: cuando se selecciona esta opción, indica al conector que trate el primer registro de cada archivo CSV como un registro de encabezado y no como registro de datos de identidad. Si esta opción no está seleccionada, el conector asigna el nombre Attribute con un valor entero incrementado único anexado (por ejemplo, Attribute1, Attribute2, etc.) y trata la primera fila de como registro de datos de identidad.
    • Separador de valores: este carácter separa los campos (es decir, los valores) de los registros CSV. La coma (,) es la predeterminada, pero se permite cualquier carácter alfanumérico que se pueda imprimir.
    • Separador de varios valores: este tipo de separador se usa para delimitar los valores individuales de una cadena multivalor (por ejemplo, direcciones proxy) o atributos de referencia (por ejemplo, subordinados). El valor predeterminado es un punto y coma (;), pero cualquier carácter alfanumérico imprimible es aceptable.
    • Calificador de texto: cuando un valor de cadena contiene caracteres que, de lo contrario, se interpretarían como delimitadores (por ejemplo, como comas), requiere que el valor esté calificado para que el analizador csv pueda interpretar correctamente la cadena como un único campo. Las comillas dobles (") son las predeterminadas, pero se permite cualquier carácter alfanumérico que se pueda imprimir.

    Nota

    Aunque los esquemas de los archivos CSV no pueden contener ningún campo multivalor o no contener ningún valor que requiera calificación de cadena, se requiere la designación de un carácter imprimible único para cada tipo separador.

    • Codificación de archivos: esta configuración indica la codificación usada en los archivos CSV agregados en la pestaña Conectividad. Asegúrese de que coincide con la codificación de los archivos CSV.

    Nota

    Si no está seguro sobre el tipo de codificación de los archivos CSV, debe intentar usar el tipo de codificación Unicode predeterminado. Unicode es un estándar común que admite muchos caracteres y símbolos, lo que hace que sea una buena opción para codificar datos de texto en la mayoría de los idiomas o el juego de caracteres se usa.

    Esquema 2 (configuraciones de campo de identidad y referencia)

    El valor de delimitador es un identificador único para un registro en un archivo CSV. Diferencia un registro de los demás. El conector GCSV también usa este valor para crear el nombre distintivo (DN) que identifica el objeto de espacio del conector relacionado.

    En esta página, la configuración del atributo anchor se configura para cada uno de los archivos CSV que aparecen en la página Conectividad.

    La imagen siguiente es un ejemplo de la página Esquema 2 (Configuraciones de campo de identidad y referencia).

    Captura de pantalla de la página Esquema 2 (configuraciones de campo de identidad y referencia)

    La siguiente sección es una lista de las configuraciones individuales de esta página:

    • User
      • Delimitador de usuario: el campo del archivo Users que actúa como valor de delimitador para el registro de usuario. El primer campo de encabezado del archivo Users es la opción predeterminada.
      • Tipo de atributo Delimitador de usuario: este es el tipo de atributo del delimitador seleccionado.
    • Grupo
      • Delimitador de grupo: el campo del archivo Groups que actúa como valor de delimitador para el registro de grupo. El primer campo de encabezado del archivo Grupos es la opción predeterminada.
      • Tipo de atributo Group Anchor: este es el tipo de atributo del delimitador seleccionado.
    • Miembro
      • Id. de grupo primario: el campo del archivo Members que tiene el mismo valor (delimitador) que el grupo primario en el archivo CSV de grupos. El primer campo del archivo Members se usa de forma predeterminada.
      • Id. de miembro: el campo del archivo Members que tiene el mismo valor (delimitador) que en el archivo CSV Usuarios o Grupos. El segundo campo del archivo Members está seleccionado de forma predeterminada.
    • Tipo de objeto miembro: campo que contiene un valor de cadena "User" o "Group" para indicar el tipo de objeto del miembro. Este campo solo es necesario si el archivo Member contiene más de dos campos. El campo Tipo de objeto solo debe contener el valor de cadena "User" o "Group". Si falta este campo, el conector supone que los registros del archivo Members hacen referencia a un miembro de objeto User. El tercer campo que se encuentra en el archivo Members está seleccionado de forma predeterminada.

    Importante

    Los nombres de los atributos designados para usarse como delimitadores deben ser únicos en todos los esquemas de tipo de objeto. Esto incluye los delimitadores especificados en el archivo De miembros del grupo.

    Esquema 3 (configuraciones de esquema de atributos de archivo de usuarios)

    Esta página sirve para especificar y explicar el tipo de datos de cada uno de los campos que se identifican en el esquema del archivo CSV de usuarios y si pueden tener más de un valor.

    La imagen siguiente es un ejemplo de la página Esquema 3 (Configuraciones de esquema de atributos de archivo de usuarios).

    Captura de pantalla de la página Esquema 3 (Configuraciones de esquema de atributos de archivo de usuarios)

    En la sección siguiente se enumeran las consideraciones al realizar asignaciones de tipos de datos de atributo.

    Tipos de datos admitidos

    El conector GCSV admite el uso de los siguientes tipos de datos de sección:

    • Boolean: un valor que puede ser true o false.
    • Binario: un valor que se almacena como una secuencia de bytes, que normalmente se usa para almacenar datos como imágenes u otros archivos.
    • Entero: un valor que es un número entero, sin ninguna posición decimal.
    • String: un valor que es una secuencia de caracteres, que normalmente se usa para almacenar datos de texto.
    • Referencia: un valor que es una referencia a otro objeto de usuario. Para especificar un valor de referencia en un archivo CSV, rellene su campo con el valor de delimitador del objeto de usuario al que se hace referencia.

    Importante

    Los atributos de referencia de usuario o grupo solo se pueden usar para hacer referencia a objetos de usuario. Esto no se aplica al atributo Member de objetos Group, que puede contener referencias de usuario o grupo siempre que se especifique el campo de tipo de objeto.

    Tipos de datos de Multiple-Value admitidos

    El conector admite el uso de atributos multivalor solo para los siguientes tipos de datos:

    • String

    Nota

    Si el esquema de los objetos User y Group tienen un atributo (no delimitador) con el mismo nombre, es posible que no se asignen tipos de datos diferentes entre ellos. Ambos deben compartir el mismo tipo de datos.

    Esquema 4 (configuraciones de esquema de atributos de archivo de grupos)

    Esta página sirve para especificar y explicar el tipo de datos de cada uno de los campos que se identifican en el esquema del archivo CSV de grupos y si pueden tener más de un valor.

    La imagen siguiente es un ejemplo de la página Esquema 4 (Configuraciones de esquema de atributos de archivo de grupos).

    Captura de pantalla de la página Configuraciones de esquema de atributos de archivo de grupos

    Las instrucciones que se ofrecen en schema 3 (las configuraciones de atributos de archivo de usuarios también se aplican a esta sección). .

    Después de ejecutar una operación de importación completa inicial, el espacio del conector tendrá un aspecto similar a la imagen siguiente:

    Captura de pantalla del espacio del conector

    Parámetros globales (configuración de scripts de PowerShell)

    Esta página permite la configuración de scripts de PowerShell que se ejecutarán antes o después de las operaciones de importación o exportación. Estas características proporcionan oportunidades para realizar una amplia variedad de acciones de procesamiento previo y posterior en los registros de grupo y usuario de identidad.

    La imagen siguiente es un ejemplo de la página Parámetros globales .

    Captura de pantalla de la página Parámetros globales

    En la siguiente sección se enumeran las opciones de configuración individuales de esta página:

    • Tiempo de espera de script (minutos): el número de minutos que ejecutará un script antes de que se anule automáticamente. El valor predeterminado para esta configuración es 100 y requiere un valor mayor que cero (0).
    • Archivo de script de importación previa: la ruta de acceso completa al script de PowerShell que se debe ejecutar antes de una importación. Esta configuración es opcional y no requiere un valor.
    • Archivo de script posterior a la importación: la ruta de acceso completa al script de PowerShell que se debe ejecutar después de una importación. Esta configuración es opcional y no requiere un valor.
    • Archivo de script de exportación previa: la ruta de acceso completa al script de PowerShell que se debe ejecutar antes de una exportación. Esta configuración es opcional y no requiere un valor.
    • Archivo de script posterior a la exportación: la ruta de acceso completa al script de PowerShell que se debe ejecutar después de una exportación. Esta configuración es opcional y no requiere un valor.

    Parámetros de entrada y ejecución de scripts de PowerShell

    El conector GCSV ejecuta cada uno de los scripts de PowerShell configurados en su propia sesión y no admite el paso de parámetros entre fases.

    El conector pasa un parámetro de entrada a cada script denominado OperationType. El valor de este parámetro varía en función de la operación de perfil de ejecución que se realiza y puede ser uno de estos tres valores:

    Importante

    No se admite la creación dinámica de archivos CSV antes de las operaciones de importación o exportación. Todos los archivos CSV deben estar presentes antes de que se ejecuten los perfiles de ejecución.

    Parámetro de entrada de PowerShell: OperationType

    Aunque no se admite el uso de parámetros de entrada, el conector GCSV pasa un parámetro de entrada a la ejecución de cada script de PowerShell: OperationType.

    • Full : este valor se proporciona durante las operaciones importación completa o exportación completa.
    • Delta : este valor se proporciona durante las operaciones de exportación.

    Este valor de parámetro se puede usar dentro de la lógica de los scripts de PowerShell para determinar la operación de procesamiento previo y posterior adecuada o la acción que se va a realizar.  

    Jerarquía de aprovisionamiento

    Dado que los archivos CSV no almacenan información en una estructura jerárquica, el conector GCSV no admite ninguna configuración de aprovisionamiento jerárquico.

    La imagen siguiente es un ejemplo de la página Jerarquía de aprovisionamiento .

    Captura de pantalla de la página Jerarquía de aprovisionamiento

    Particiones y jerarquías

    El conector GCSV crea un nombre distintivo (DN) distinto para cada registro de usuario y grupo en su espacio conector, siguiendo este formato LDAP:

    CN=[ANCHOR_VALUE],Object=User|Group,O=CSV

    La imagen siguiente es un ejemplo de la página Particiones y jerarquías .

    Captura de pantalla de la página Particiones y jerarquías

    Tipos de objeto

    El conector GCSV requiere que se seleccione al menos el tipo de objeto User. La elección del tipo de objeto Group es opcional.

    La imagen siguiente es un ejemplo de la página Tipos de objeto .

    Captura de pantalla de la página Tipos de objeto

    Atributos

    En esta página se muestra una lista normalizada de todos los atributos en todos los esquemas de tipo de objeto seleccionados.

    La siguiente imagen es un ejemplo de la página Atributos .

    Captura de pantalla de la página Atributos

    Nota

    El atributo Member solo existirá si se seleccionan Grupos y contendrá las referencias a objetos mantenidos en los archivos CSV de miembros del grupo.

    Delimitadores

    El conector GCSV no admite el uso de anclajes complejos ni configuraciones de atributos de anclaje que difieren de los campos de identificador de anclaje del archivo CSV correspondientes.

    Para cambiar las designaciones de anclaje que se muestran en esta página, vuelva al esquema 2 (configuraciones de delimitador).

    La siguiente imagen es un ejemplo de la página Anchors .

    Captura de pantalla de la página Delimitadores

    Aprovisionamiento de registros CSV

    Para que el conector GCSV agregue nuevos objetos User o Group a sus archivos CSV correspondientes, se debe aprovisionar un nuevo objeto de espacio conector para él.

    Tanto si usa el aprovisionamiento declarativo de MIM 2016 como si escribe sus propias extensiones de reglas de sincronización de MIM, los nuevos objetos de espacio conector deben tener un DN construido con el siguiente formato:

    CN=[ANCHOR_VALUE],Object=User|Group,O=CSV

    En la tabla siguiente se proporcionan detalles sobre cada uno de los valores de componente:

    Componente Notas
    CN=[ANCHOR VALUE] El nombre común (CN) debe ser un valor único en y se escribirá en el campo de delimitador designado del archivo CSV.
    Object=User/Group Este componente indica el tipo de objeto de este conector. Solo admite "Usuario" o "Grupo".
    O=CSV Componente raíz común a todos los objetos de espacio del conector GCSV.

    La imagen siguiente es una regla de sincronización que muestra cómo construir un DN correctamente al aprovisionar un nuevo objeto User en un conector GCSV:

    Captura de pantalla de la página 4 de la regla de sincronización

    En el código siguiente se muestra la lógica de aprovisionamiento equivalente mediante extensiones de reglas de metaverso.

    void IMVSynchronization.Provision(MVEntry mventry)
    {
    	if (mventry["employeeID"].IsPresent)
    	{
    		ConnectedMA GCSVConnector = = mventry.ConnectedMAs["Generic CSV Conenctor"];
    
    		if (GCSVConnector.Connectors.Count == 0)
    		{
    			CSEntry csentry = GCSVConnector.Connectors.StartNewConnector("user");
    
    			//Sets DN to "CN=[ANCHOR_VALUE],OBJECT=[User|Group],O=CSV"
    			csentry.DN = GCSVConnector.EscapeDNComponent("CN=" + mventry["employeeID"].Value).Concat("OBJECT=User,O=CSV");
    
    			csentry["AccountName"].StringValue = mventry["accountName"].StringValue;
    			csentry["CountryCode"].IntegerValue = 1;
    			csentry["DisplayName"].Value = mventry["displayName"].Value;
    			csentry["ProxyAddresses"].Value = mventry["proxyAddressCollection"].Value;
    			csentry["IsActive"].BooleanValue = true;
    			csentry["Manager"].Value = mventry["manager"].Value;
    			csentry["ProfilePic"].Value = mventry["pic"].Value;
    
    			csentry.CommitNewConnector();
    		}
    	}
    }
    

    En la imagen anterior, observe el uso de la EcapeDNComponent() función para asegurarse de que el valor de delimitador se escape correctamente para que sea compatible con su sintaxis LDAP.

    Importante

    El escape incorrecto del valor de delimitador al construir un DN producirá un invalid‑dn error.

    Ejemplos de formato de campo CSV

    En las secciones siguientes se muestran ejemplos de cómo dar formato a diferentes tipos de datos en archivos CSV. Todos los ejemplos En la sección siguiente se da por supuesto el uso de la configuración predeterminada del delimitador de campos del conector:

    • Valor independiente: coma (,)
    • Separador de varios valores: Semi-Colon (;)
    • Calificador de texto: comillas dobles (")

    Ejemplo: Calificación de texto

    Si un valor de cadena contiene caracteres que, de lo contrario, se interpretarían como delimitadores (por ejemplo, comas), requiere que el valor se califique para que el analizador csv pueda interpretar correctamente la cadena como un único campo.

    En el ejemplo CSV de la sección siguiente se muestra cómo el campo DisplayName tiene valores con formato de texto completo:

    EmployeeID,DisplayName
    E001,"Smith, John"
    E002,"Doe, Jane"
    E003,"Perez, Juan"
    

    Ejemplo: Delimitar cadenas multivalor

    Para proporcionar varios valores de cadena dentro de un campo de cadena, delimite los valores con el separador multivalor. En el ejemplo CSV de la sección siguiente se muestra cómo el campo ProxyAddress con varios valores:

    EmployeeID,DisplayName,ProxyAddresses
    E001,"Smith, John",SMTP:john.smith@contoso.com;smtp:js001@contoso.com
    E002,"Doe, Jane",SMTP:jane.doe@contoso.com;smtp:jd002@contoso.com
    

    Nota

    String multivalor también admite el uso de valores calificados de cadena. Los valores calificados de texto se pueden delimitar por separadores de varios valores.

    Ejemplo: Campos de referencia

    Para especificar un valor de referencia en un archivo CSV, rellene su campo con el valor de delimitador del objeto de usuario al que se hace referencia. En el ejemplo CSV de la sección siguiente, el campo Administrador contiene el valor de delimitador del registro de usuario al que hace referencia:

    EmployeeID,DisplayName,Manager
    E001,"Smith, John",
    E002,"Doe, Jane",E001
    E003,"Doe, Jane", 
    E004,"Perez, Juan",
    

    Ejemplo: Campos binarios

    Para expresar valores binarios en archivos CSV, deben convertirse en cadenas base64 que usen el mismo tipo de codificación que el archivo CSV. En la siguiente sección, la función de PowerShell muestra cómo codificar un valor de cadena en su cadena codificada en base64 en Unicode:

    function ConvertTo-Base64([string]$text) 
    {
        $bytes = [System.Text.Encoding]::Unicode.GetBytes($text)
        $encodedText = [System.Convert]::ToBase64String($bytes)
        return $encodedText
    }
    

    Esta es la función equivalente en C# que acepta un parámetro de entrada denominado text y devuelve una cadena codificada en Base64 en Unicode.

    public static string ConvertToBase64(string text)
    {
        byte[] bytes = System.Text.Encoding.UTF8.GetBytes(text);
        string encodedText = System.Convert.ToBase64String(bytes);
        return encodedText;
    }
    

    Ejemplo: Campos booleanos

    Los archivos CSV que contienen campos booleanos deben usar el texto True o False para indicar su valor. La siguiente sección es una

    EmployeeID,DisplayName,IsActive
    E001,"Smith, John",true
    E002,"Doe, Jane",true
    E003,"Perez, Juan",false
    

    Limitaciones conocidas

    La lista siguiente contiene las limitaciones conocidas del conector GCSV.

    • Atributos de referencia
      • Aparte del atributo Member del grupo, no se admiten atributos de referencia multivalor.
      • El valor de referencia debe hacer referencia a objetos de usuario. No se admiten referencias a objetos de grupo.
    • Delimitadores
      • No se admiten valores de delimitadores duplicados entre objetos de usuario y grupo.
      • Los nombres de los atributos de delimitador deben ser únicos en los esquemas de usuario y grupo.
    • PowerShell
      • No se admite el paso de variables de entrada a scripts de PowerShell.