C# создают OU в Active Directory

Проблема в том, что если добавить параметр expand=True, он возвращает DataFrame с одним или несколькими столбцами, поэтому назначьте return NaN с.

Решение - добавить новые столбцы с join или concat к оригиналу DataFrame, также add_prefix для изменения имен новых столбцов :

df = df.join(df['QSTS_ID'].str.split('.',expand=True).add_prefix('QSTS_ID_'))

df = pd.concat([df, df['QSTS_ID'].str.split('.',expand=True).add_prefix('QSTS_ID_')], axis=1)

Если хотите, также удалите оригинальный столбец:

df = df.join(df.pop('QSTS_ID').str.split('.',expand=True).add_prefix('QSTS_ID_'))

df = pd.concat([df,
                df.pop('QSTS_ID').str.split('.',expand=True).add_prefix('QSTS_ID_')], axis=1)

Образец :

df = pd.DataFrame({
        'QSTS_ID':['val_k.lo','val2.s','val3.t'],
        'F':list('abc')
})

df1 = df['QSTS_ID'].str.split('.',expand=True).add_prefix('QSTS_ID_')
df = df.join(df1)
print (df)
    QSTS_ID  F QSTS_ID_0 QSTS_ID_1
0  val_k.lo  a     val_k        lo
1    val2.s  b      val2         s
2    val3.t  c      val3         t

#check columns names of new columns
print (df1.columns)

5
задан Andrew Whitaker 8 June 2011 в 12:35
поделиться

2 ответа

попробуйте это

using System;
using System.DirectoryServices;

namespace ADAM_Examples
{
    class CreateOU
    {
        /// <summary>
        /// Create AD LDS Organizational Unit.
        /// </summary>
        [STAThread]
        static void Main()
        {
            DirectoryEntry objADAM;  // Binding object.
            DirectoryEntry objOU;    // Organizational unit.
            string strDescription;   // Description of OU.
            string strOU;            // Organiztional unit.
            string strPath;          // Binding path.
        // Construct the binding string.
        strPath = "LDAP://localhost:389/O=Fabrikam,C=US";

        Console.WriteLine("Bind to: {0}", strPath);

        // Get AD LDS object.
        try
        {
            objADAM = new DirectoryEntry(strPath);
            objADAM.RefreshCache();
        }
        catch (Exception e)
        {
            Console.WriteLine("Error:   Bind failed.");
            Console.WriteLine("         {0}", e.Message);
            return;
        }

        // Specify Organizational Unit.
        strOU = "OU=TestOU";
        strDescription = "AD LDS Test Organizational Unit";
        Console.WriteLine("Create:  {0}", strOU);

        // Create Organizational Unit.
        try
        {
            objOU = objADAM.Children.Add(strOU,
                "OrganizationalUnit");
            objOU.Properties["description"].Add(strDescription);
            objOU.CommitChanges();
        }
        catch (Exception e)
        {
            Console.WriteLine("Error:   Create failed.");
            Console.WriteLine("         {0}", e.Message);
            return;
        }

        // Output Organizational Unit attributes.
        Console.WriteLine("Success: Create succeeded.");
        Console.WriteLine("Name:    {0}", objOU.Name);
        Console.WriteLine("         {0}",
            objOU.Properties["description"].Value);
        return;
    }
}
}
13
ответ дан 18 December 2019 в 09:10
поделиться

Единственный способ создать объект с Системой. DirectoryServices должен создать объект DirectoryEntry к родителю и использовать DirectoryEntry. Дети. Добавить.

Я думаю, что Ваше лучшее перемещение в этой точке должно использовать путь, Вы имеете и извлекаете часть, в которой Вы нуждаетесь ("OU=something").

4
ответ дан 18 December 2019 в 09:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: