Exemple #1
0
        private static void CreateSchema()
        {
            SchemaObject so = new SchemaObject();

            so.ServiceInstanceName        = "DynamicADSO";
            so.ServiceInstanceDisplayName = "DynamicADSO";
            so.ServiceInstanceDescription = "DynamicADSO";

            //Standard Inputs
            List <string> inputProp = new List <string>();
            List <string> reqProp   = new List <string>();
            List <string> retProp   = new List <string>();

            so.AddProperty("sAMAccountName", "sAMAccountName", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("displayName", "Display Name", "AD Display Name Property", "DirectoryString", SoType.Text);
            so.AddProperty("cn", "Common Name", "AD Common Name Property", "DirectoryString", SoType.Text);
            so.AddProperty("userPrincipleName", "userPrincipleName", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("givenName", "givenName", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("initials", "initials", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("sn", "sn", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("userPassword", "userPassword", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("mail", "mail", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("WhenCreated", "WhenCreated", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("WhenUpdated", "WhenUpdated", "AD Schema Property", "DirectoryString", SoType.Text);

            reqProp = new List <string>();

            //Hard Coded Properties

            so.AddProperty("SubStringSearchInput", "SubString Search Input", "User/Group Common Name SubString Search Input", "DirectoryString", SoType.Text);
            so.AddProperty("Domain", "Domain", "Specify Domain to use for action [Coded Property]", "DirectoryString", SoType.Text);
            so.AddProperty("MaxSearchResultSize", "MaxSearchResultSize", "Specify the maximun number of records to return - default is 2000 - *=Unlimited [Coded Property]", "DirectoryString", SoType.Text);
            so.AddProperty("OrganisationalUnit", "OrganisationalUnit", "Specify OU, for multilevel OU pass delimited string ie America|HR [Coded Property]", "DirectoryString", SoType.Text);
            so.AddProperty("UAC_AccountDisabled", "UAC_AccountDisabled", "User Account Disabled [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("UAC_PasswordCannotChange", "UAC_PasswordCannotChange", "User Cannot Change password [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("UAC_PasswordNeverExpired", "UAC_PasswordNeverExpired", "User password never expires [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("UAC_PasswordExpired", "UAC_PasswordExpired", "User password expired [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("transactionStatus", "Transaction Status", "Status of last operation", "DirectoryString", SoType.Text);
            so.AddProperty("transactionMessage", "Transaction Message", "Error message from last operation", "DirectoryString", SoType.Text);

            //CreateUser
            reqProp.Add("sAMAccountName");

            inputProp.Add("sAMAccountName");
            inputProp.Add("givenName");
            inputProp.Add("initials");
            inputProp.Add("userPassword");
            inputProp.Add("sn");
            inputProp.Add("mail");

            inputProp.Add("OrganisationalUnit");
            inputProp.Add("UAC_AccountDisabled");
            inputProp.Add("UAC_PasswordCannotChange");
            inputProp.Add("UAC_PasswordNeverExpired");
            inputProp.Add("UAC_PasswordExpired");

            retProp.Add("WhenCreated");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            so.AddMethod("CreateUser", "CreateUser", "Create a User in Active Directory", MethodType.Create, inputProp, reqProp, retProp);

            //UpdateUser
            inputProp = new List <string>();
            reqProp   = new List <string>();
            retProp   = new List <string>();

            reqProp.Add("sAMAccountName");

            inputProp.Add("sAMAccountName");
            inputProp.Add("givenName");
            inputProp.Add("initials");
            inputProp.Add("userPassword");
            inputProp.Add("sn");
            inputProp.Add("mail");

            inputProp.Add("OrganisationalUnit");
            inputProp.Add("UAC_AccountDisabled");
            inputProp.Add("UAC_PasswordCannotChange");
            inputProp.Add("UAC_PasswordNeverExpired");
            inputProp.Add("UAC_PasswordExpired");

            retProp.Add("WhenUpdated");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            so.AddMethod("UpdateUser", "UpdateUser", "Update a User in Active Directory", MethodType.Update, inputProp, reqProp, retProp);


            //Read User
            inputProp = new List <string>();
            reqProp   = new List <string>();
            retProp   = new List <string>();

            reqProp.Add("sAMAccountName");

            inputProp.Add("sAMAccountName");

            retProp.Add("sAMAccountName");
            retProp.Add("givenName");
            retProp.Add("initials");
            retProp.Add("sn");
            retProp.Add("mail");
            retProp.Add("OrganisationalUnit");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            so.AddMethod("ReadUser", "ReadUser", "Read a Users details from Active Directory", MethodType.Read, inputProp, reqProp, retProp);


            //GetUsers
            inputProp = new List <string>();
            reqProp   = new List <string>();
            retProp   = new List <string>();

            inputProp.Add("givenName");
            inputProp.Add("initials");
            inputProp.Add("sn");
            inputProp.Add("mail");
            inputProp.Add("MaxSearchResultSize");
            inputProp.Add("OrganisationalUnit");

            retProp.Add("sAMAccountName");
            retProp.Add("givenName");
            retProp.Add("initials");
            retProp.Add("sn");
            retProp.Add("mail");
            retProp.Add("MaxSearchResultSize");
            retProp.Add("OrganisationalUnit");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            so.AddMethod("GetUsers", "GetUsers", "Get a list of users details from Active Directory", MethodType.List, inputProp, reqProp, retProp);

            //MoveUserOU
            inputProp = new List <string>();
            reqProp   = new List <string>();
            retProp   = new List <string>();

            reqProp.Add("sAMAccountName");
            reqProp.Add("OrganisationalUnit");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");
            inputProp.Add("OrganisationalUnit");
            inputProp.Add("sAMAccountName");
            so.AddMethod("MoveUserOU", "Move User OU", "Move a user to a different OU in Active Directory", MethodType.Execute, inputProp, reqProp, retProp);

            //AddUserToGRoups / RemoveUserFRomGroups
            inputProp = new List <string>();
            reqProp   = new List <string>();
            retProp   = new List <string>();

            reqProp.Add("sAMAccountName");
            reqProp.Add("memberOf");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");
            inputProp.Add("sAMAccountName");
            inputProp.Add("memberOf");
            so.AddMethod("AddUserToGroups", "Add User To Groups", "Add User To Active Directory Groups", MethodType.Execute, inputProp, reqProp, retProp);
            so.AddMethod("RemoveUserFromGroups", "Remove User From Groups", "Remove a user from Active Directory Groups", MethodType.Execute, inputProp, reqProp, retProp);

            //Search Users By SubString / Search Groups By SubString
            inputProp = new List <string>();
            reqProp   = new List <string>();
            retProp   = new List <string>();

            retProp.Add("sAMAccountName");
            retProp.Add("SubStringSearchInput");
            retProp.Add("displayName");
            retProp.Add("cn");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            reqProp.Add("SubStringSearchInput");

            inputProp.Add("sAMAccountName");
            inputProp.Add("SubStringSearchInput");
            inputProp.Add("displayName");
            inputProp.Add("cn");

            so.AddMethod("SearchUsersBySubString", "Search Users By SubString", "Search for users by Selected Properties", MethodType.List, inputProp, reqProp, retProp);
            so.AddMethod("SearchGroupsBySubString", "Search Groups By SubString", "Search for groups by Selected Properties", MethodType.List, inputProp, reqProp, retProp);

            SchemaManager.SaveSchemaXMLFile(so, string.Empty);
        }
        private static void CreateSchema()
        {
            SchemaObject so = new SchemaObject();

            so.ServiceInstanceName = "DynamicADSO";
            so.ServiceInstanceDisplayName = "DynamicADSO";
            so.ServiceInstanceDescription = "DynamicADSO";

            //Standard Inputs
            List<string> inputProp = new List<string>();
            List<string> reqProp = new List<string>();
            List<string> retProp = new List<string>();

            so.AddProperty("sAMAccountName", "sAMAccountName", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("displayName", "Display Name", "AD Display Name Property", "DirectoryString", SoType.Text);
            so.AddProperty("cn", "Common Name", "AD Common Name Property", "DirectoryString", SoType.Text);
            so.AddProperty("userPrincipleName", "userPrincipleName", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("givenName", "givenName", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("initials", "initials", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("sn", "sn", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("userPassword", "userPassword", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("mail", "mail", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("WhenCreated", "WhenCreated", "AD Schema Property", "DirectoryString", SoType.Text);
            so.AddProperty("WhenUpdated", "WhenUpdated", "AD Schema Property", "DirectoryString", SoType.Text);

            reqProp = new List<string>();

            //Hard Coded Properties

            so.AddProperty("SubStringSearchInput", "SubString Search Input", "User/Group Common Name SubString Search Input","DirectoryString", SoType.Text);
            so.AddProperty("Domain", "Domain", "Specify Domain to use for action [Coded Property]", "DirectoryString", SoType.Text);
            so.AddProperty("MaxSearchResultSize", "MaxSearchResultSize", "Specify the maximun number of records to return - default is 2000 - *=Unlimited [Coded Property]", "DirectoryString", SoType.Text);
            so.AddProperty("OrganisationalUnit", "OrganisationalUnit", "Specify OU, for multilevel OU pass delimited string ie America|HR [Coded Property]", "DirectoryString", SoType.Text);
            so.AddProperty("UAC_AccountDisabled", "UAC_AccountDisabled", "User Account Disabled [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("UAC_PasswordCannotChange", "UAC_PasswordCannotChange", "User Cannot Change password [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("UAC_PasswordNeverExpired", "UAC_PasswordNeverExpired", "User password never expires [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("UAC_PasswordExpired", "UAC_PasswordExpired", "User password expired [Coded Property]", "bool", SoType.YesNo);
            so.AddProperty("transactionStatus", "Transaction Status", "Status of last operation","DirectoryString", SoType.Text);
            so.AddProperty("transactionMessage", "Transaction Message", "Error message from last operation","DirectoryString", SoType.Text);

            //CreateUser
            reqProp.Add("sAMAccountName");

            inputProp.Add("sAMAccountName");
            inputProp.Add("givenName");
            inputProp.Add("initials");
            inputProp.Add("userPassword");
            inputProp.Add("sn");
            inputProp.Add("mail");

            inputProp.Add("OrganisationalUnit");
            inputProp.Add("UAC_AccountDisabled");
            inputProp.Add("UAC_PasswordCannotChange");
            inputProp.Add("UAC_PasswordNeverExpired");
            inputProp.Add("UAC_PasswordExpired");

            retProp.Add("WhenCreated");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            so.AddMethod("CreateUser", "CreateUser", "Create a User in Active Directory", MethodType.Create, inputProp, reqProp, retProp);

            //UpdateUser
            inputProp = new List<string>();
            reqProp = new List<string>();
            retProp = new List<string>();

            reqProp.Add("sAMAccountName");

            inputProp.Add("sAMAccountName");
            inputProp.Add("givenName");
            inputProp.Add("initials");
            inputProp.Add("userPassword");
            inputProp.Add("sn");
            inputProp.Add("mail");

            inputProp.Add("OrganisationalUnit");
            inputProp.Add("UAC_AccountDisabled");
            inputProp.Add("UAC_PasswordCannotChange");
            inputProp.Add("UAC_PasswordNeverExpired");
            inputProp.Add("UAC_PasswordExpired");

            retProp.Add("WhenUpdated");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            so.AddMethod("UpdateUser", "UpdateUser", "Update a User in Active Directory", MethodType.Update, inputProp, reqProp, retProp);


            //Read User
            inputProp = new List<string>();
            reqProp = new List<string>();
            retProp = new List<string>();

            reqProp.Add("sAMAccountName");

            inputProp.Add("sAMAccountName");

            retProp.Add("sAMAccountName");
            retProp.Add("givenName");
            retProp.Add("initials");
            retProp.Add("sn");
            retProp.Add("mail");
            retProp.Add("OrganisationalUnit");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            so.AddMethod("ReadUser", "ReadUser", "Read a Users details from Active Directory", MethodType.Read, inputProp, reqProp, retProp);


            //GetUsers
            inputProp = new List<string>();
            reqProp = new List<string>();
            retProp = new List<string>();

            inputProp.Add("givenName");
            inputProp.Add("initials");
            inputProp.Add("sn");
            inputProp.Add("mail");
            inputProp.Add("MaxSearchResultSize");
            inputProp.Add("OrganisationalUnit");

            retProp.Add("sAMAccountName");
            retProp.Add("givenName");
            retProp.Add("initials");
            retProp.Add("sn");
            retProp.Add("mail");
            retProp.Add("MaxSearchResultSize");
            retProp.Add("OrganisationalUnit");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");
            
            so.AddMethod("GetUsers", "GetUsers", "Get a list of users details from Active Directory", MethodType.List, inputProp, reqProp, retProp);

            //MoveUserOU
            inputProp = new List<string>();
            reqProp = new List<string>();
            retProp = new List<string>();

            reqProp.Add("sAMAccountName");
            reqProp.Add("OrganisationalUnit");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");
            inputProp.Add("OrganisationalUnit");
            inputProp.Add("sAMAccountName");
            so.AddMethod("MoveUserOU", "Move User OU", "Move a user to a different OU in Active Directory", MethodType.Execute, inputProp, reqProp, retProp);

            //AddUserToGRoups / RemoveUserFRomGroups
            inputProp = new List<string>();
            reqProp = new List<string>();
            retProp = new List<string>();

            reqProp.Add("sAMAccountName");
            reqProp.Add("memberOf");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");
            inputProp.Add("sAMAccountName");
            inputProp.Add("memberOf");
            so.AddMethod("AddUserToGroups", "Add User To Groups", "Add User To Active Directory Groups", MethodType.Execute, inputProp, reqProp, retProp);
            so.AddMethod("RemoveUserFromGroups", "Remove User From Groups", "Remove a user from Active Directory Groups", MethodType.Execute, inputProp, reqProp, retProp);

            //Search Users By SubString / Search Groups By SubString
            inputProp = new List<string>();
            reqProp = new List<string>();
            retProp = new List<string>();

            retProp.Add("sAMAccountName");
            retProp.Add("SubStringSearchInput");
            retProp.Add("displayName");
            retProp.Add("cn");
            retProp.Add("transactionStatus");
            retProp.Add("transactionMessage");

            reqProp.Add("SubStringSearchInput");

            inputProp.Add("sAMAccountName");
            inputProp.Add("SubStringSearchInput");
            inputProp.Add("displayName");
            inputProp.Add("cn");

            so.AddMethod("SearchUsersBySubString", "Search Users By SubString", "Search for users by Selected Properties", MethodType.List, inputProp, reqProp, retProp);
            so.AddMethod("SearchGroupsBySubString", "Search Groups By SubString", "Search for groups by Selected Properties", MethodType.List, inputProp, reqProp, retProp);

            SchemaManager.SaveSchemaXMLFile(so, string.Empty);
            
        }