AddUnixProfile

Adds a new UNIX profile for an existing Active Directory user account to the specified zone.

Syntax

IUserUnixProfile AddUnixProfile (IZone zone, int uid, string name, string shell, string homeDir, int primaryGroup)

IUserUnixProfile AddUnixProfile (IZone zone, long uid, string name, string shell, string homeDir, long primaryGroup)

Parameters

Specify the following parameters when using this method.

Parameter Description
zone The destination zone for the new user information.
uid The UID of the user associated with the profile.
name The UNIX login name of the user associated with the profile.
shell The default shell of the user associated with the profile.
homeDir The default home directory of the user associated with the profile.
primaryGroup The GID of the primary group of the user associated with the profile.

Return value

A new UserUnixProfile object.

Discussion

There are two versions of this method: one designed for COM-based programs that supports a 32-bit signed number for the uid and primaryGroup arguments and one designed for .NET-based programs that allows a 64-bit signed number for the arguments.

Exceptions

AddUnixProfile throws a NotSupportedException if the zone schema is not supported.

Example

The following code sample illustrates using AddUnixProfile in a script:

...  
// Create a CIMS object to interact with AD
ICims cims = new Cims();  
// Note: There is no cims.connect function.
// By default, this application will use the connection to the domain controller

// and existing credentials from the computer already logged in.
// Get the user object
IUser objUser = cims.GetUserByPath(strUser);  
// Get the zone object
IZone objZone = cims.GetZoneByPath("cn=" + strZone + "," + strContainerDN);  
IUserUnixProfile objUserUnixProfile;  
if (objUser.UnixProfiles.Find(objZone) == null)  
{  
    // New user for the zone
    long lngUID = objZone.NextUID;  
    string strShell = objZone.DefaultShell;  
    string strHome = objZone.DefaultHomeDirectory;  
    if (bool.Parse(bPrivate))  
    {  
        // Create the user as a member of a private group
        objUserUnixProfile = objUser.AddUnixProfile(objZone, lngUID, strUnixAccount,   
        strShell, strHome, lngUID);  
    }  
    else  
    {  
        // Create the user as a member of the default group
        IGroupUnixProfile objDefaultGroup = objZone.DefaultGroup;  
        long lngGID = 10000; // use 10000 as default
        if (objDefaultGroup != null)  
        {  
            lngGID = objDefaultGroup.GroupId;  
        }  
        objUserUnixProfile = objUser.AddUnixProfile(objZone, lngUID, strUnixAccount,  
            strShell, strHome, lngGID);  
    }  
    // Enable the UNIX profile for the end user
    objUserUnixProfile.UnixEnabled = true;  
    objUserUnixProfile.Commit();  
}  
else  
{  
    Console.WriteLine(strUser + " is already a member of " + strZone);  
    return;  
}  
Console.WriteLine("User " + strUser + " was successfully added to zone " +
    strZone + ".");  
...