The msIIS-FTPDir attribute is a single-valued Unicode string field on user objects in Active Directory (AD) that stores the user-specific subdirectory portion of an FTP home directory path under IIS FTP Active Directory user isolation mode. It works exclusively in combination with msIIS-FTPRoot, which stores the share-level root path: IIS concatenates the two values at login time to form the complete home directory path the FTP user is locked into.
This article covers what msIIS-FTPDir is, how the IIS FTP isolation path is constructed, and how to manage it using three approaches: Active Directory Users and Computers (ADUC), PowerShell, and ManageEngine ADManager Plus.
| LDAP display name | msIIS-FTPDir |
| CN | ms-IIS-FTP-Dir |
| Syntax | String (Unicode), attributeSyntax 2.5.5.12, omSyntax 64 |
| Attribute ID (OID) | 1.2.840.113556.1.4.1786 |
| System ID GUID | 8a5c99e9-2230-46eb-b8e8-e59d712eb9ee |
| Single- or multi-valued | Single-valued |
| Maximum length | 256 characters (recommended: 30-50 characters per Microsoft guidance) |
| Indexed | No |
| In Global Catalog | No |
| Replicated | Yes, within the domain |
| System-Only (writable) | False— writable by domain administrators and delegated accounts |
| Update frequency | Set once when the FTP site is configured; rarely changes after that |
| Visible in ADUC UI | No. Requires the Attribute Editor tab (Advanced Features enabled). |
| Applies to | User class |
| First implemented | Windows Server 2003 |
| Source schema | Microsoft core AD schema (IIS FTP) |
| Microsoft reference | Win32 ADSchema · MS-ADA2 · IIS FTP AD isolation config |
Important: msIIS-FTPDir cannot be used alone. If either msIIS-FTPDir or msIIS-FTPRoot is missing or null on a user account, IIS denies that user FTP access entirely with error 530 User cannot log in, home directory inaccessible. Both attributes must be populated before a user can log in to an AD-isolated FTP site.
IIS FTP Active Directory user isolation mode (enabled by setting FTP home directory configured in Active Directory in IIS Manager) reads both msIIS-FTPRoot and msIIS-FTPDir from the authenticating user's AD object at login time. It then concatenates them as [msIIS-FTPRoot] + "\" + [msIIS-FTPDir] = effective home directory.
The FTP service appends a backslash and the msIIS-FTPDir value to the msIIS-FTPRoot value to form the full home directory path. The user is locked to this path and cannot navigate above it.
Examples:
| msIIS-FTPRoot | C:\FTPRoot |
| msIIS-FTPDir | jsmith |
| Effective path | C:\FTPRoot\jsmith |
| msIIS-FTPRoot | \\fileserver\ftpshare |
| msIIS-FTPDir | marketing\jsmith |
| Effective path | \\fileserver\ftpshare\marketing\jsmith |
Note: The effective home directory path must exist on the file system before the user attempts to log in. IIS does not create the directory automatically. If the path does not exist, the user receives the 530 error even when both AD attributes are correctly set. Pre-create the directory structure before populating the attributes.
msIIS-FTPDir was introduced in Windows Server 2003 alongside the IIS 6.0 FTP service's Active Directory user isolation mode. The feature solved a multi-tenant FTP hosting problem: without isolation, all FTP users who authenticate to the same site land in the same root directory and can traverse each other's folders. AD isolation mode locks each user into their own subdirectory, and the msIIS-FTPDir attribute is the per-user part of that path definition.
Common deployment scenarios for this attribute:
If your IIS FTP site does not use Active Directory user isolation mode, msIIS-FTPDir has no effect. The attribute is only read by IIS when the site's user isolation mode is set to FTP home directory configured in Active Directory. On sites using standard isolation or no isolation, the attribute is ignored entirely.
msIIS-FTPDir is not surfaced in any standard ADUC user properties tab. You read and set it through the Attribute Editor, which requires Advanced Features to be enabled.
Note: After setting both attributes, confirm the corresponding directory path ([msIIS-FTPRoot]\[msIIS-FTPDir]) exists on the file system and that the IIS FTP service account has read access to it. The attribute values alone are not sufficient for the user to log in.
Because msIIS-FTPDir contains a hyphen in its LDAP name, you must always wrap the attribute name in single quotes when using it in Set-ADUser hash tables or Get-ADUser property lists. There is no named parameter for this attribute on Set-ADUser; always use the -Replace hash table syntax.
Get-ADUser -Identity jsmith `
-Properties 'msIIS-FTPDir', 'msIIS-FTPRoot' |
Select-Object SamAccountName, 'msIIS-FTPDir', 'msIIS-FTPRoot'
Returns the current msIIS-FTPDir and msIIS-FTPRoot values for the specified user. Both must be requested explicitly with -Properties.
Set-ADUser -Identity jsmith -Replace @{
'msIIS-FTPDir' = 'jsmith'
'msIIS-FTPRoot' = 'C:\FTPRoot'
}
Sets both IIS FTP isolation attributes on the specified user in a single operation. Always set both attributes together to avoid a state where one is present and the other is not.
Set-ADUser -Identity jsmith -Replace @{
'msIIS-FTPDir' = 'jsmith'
'msIIS-FTPRoot' = '\\fileserver\ftpshare'
}
Sets msIIS-FTPRoot to a UNC path, placing the user's FTP home at \\fileserver\ftpshare\jsmith. The UNC path and the subdirectory must both exist and be accessible by the IIS FTP service account.
Set-ADUser -Identity jsmith -Clear 'msIIS-FTPDir', 'msIIS-FTPRoot'
Removes both FTP isolation attributes from the user, setting them to null. After this, the user will be denied access to any AD-isolated FTP site. Use -Clear rather than setting to an empty string to produce a true null value.
# CSV format: SamAccountName,FTPDir,FTPRoot
Import-Csv .\ftp-users.csv | ForEach-Object {
Set-ADUser -Identity $_.SamAccountName -Replace @{
'msIIS-FTPDir' = $_.FTPDir
'msIIS-FTPRoot' = $_.FTPRoot
}
}
Reads a CSV with SamAccountName, FTPDir, and FTPRoot columns and sets both IIS FTP attributes on each user. Validate the CSV data and confirm the corresponding directories exist before running in production.
Get-ADUser -Filter 'msIIS-FTPDir -like "*"' `
-Properties 'msIIS-FTPDir', 'msIIS-FTPRoot' |
Select-Object SamAccountName, DisplayName, 'msIIS-FTPDir', 'msIIS-FTPRoot' |
Export-Csv .\ftp-isolation-inventory.csv -NoTypeInformation
Finds all user accounts where msIIS-FTPDir is set and exports the results to CSV alongside the corresponding FTPRoot values. Useful as a premigration audit or coverage check.
Get-ADUser -Filter 'msIIS-FTPDir -like "*"' `
-Properties 'msIIS-FTPDir', 'msIIS-FTPRoot' |
Where-Object { -not $_.'msIIS-FTPRoot' } |
Select-Object SamAccountName, 'msIIS-FTPDir' |
Export-Csv .\ftp-incomplete-config.csv -NoTypeInformation
Identifies user accounts where msIIS-FTPDir is set but msIIS-FTPRoot is missing, which causes a 530 error at FTP login. Use this to find and fix incomplete configurations.
ADManager Plus can surface msIIS-FTPDir and msIIS-FTPRoot as custom attributes, making them available in user management screens, bulk update workflows, and creation templates without requiring administrators to use the Attribute Editor or PowerShell.
Note: The Modify Custom Attributes of users workflow applies one value to all matched users. If different users need different msIIS-FTPDir values (for example, each user has their own username-based subdirectory), run the workflow once per distinct value, scoping each CSV to only the users who share that value.
If msIIS-FTPDir and msIIS-FTPRoot are part of your standard provisioning workflow for FTP-enabled users, add them to a user creation template:
To allow a server administrator or help desk operator to set FTP isolation attributes for users in a specific OU without broader AD write access, use help desk delegation:
By default, msIIS-FTPDir is readable by all authenticated domain users, consistent with the general AD read model for user attributes. The value is a directory path, which may reveal internal file system structure (server names, share names, folder naming conventions). In environments where this constitutes sensitive information, restrict read access to the attribute via the OU-level ACL.
The three most common causes:
Confirm that Advanced Features is enabled in ADUC (View > Advanced Features). The attribute is present on all User class objects from Windows Server 2003 onward, so it should always be visible once Advanced Features is on. If Advanced Features is enabled and the attribute still does not appear, confirm the domain schema version is at least Windows Server 2003 level.
The attribute must be requested explicitly. Confirm your command includes -Properties 'msIIS-FTPDir' with single quotes (required because the hyphen in the name would otherwise be interpreted as a subtraction operator).
Confirm you are using single quotes around the attribute name: -Replace @{'msIIS-FTPDir' = 'value'}. Without quotes the hyphen is interpreted as syntax and the hash table is malformed. Also confirm the account running the command has write permission on the user object.
Verify that the physical directory path resolves correctly for the failing users. A common cause is users whose msIIS-FTPDir value contains a typo or a path that does not exist. Also check that the IIS FTP service account has read access to those specific subdirectories, not just the root. Run iisftp.vbs /GetADProp <username> FTPDir on Server 2003, or query AD directly on later versions, to confirm the stored value matches what you expect.
IIS FTP reads msIIS-FTPDir and msIIS-FTPRoot at authentication time. A user who is already connected when the attribute changes will not be affected until they disconnect and reconnect. New login attempts after the attribute change will use the updated value immediately, subject to AD replication latency to the DC the IIS server queries.
ADManager Plus gives you centralized control over IIS FTP isolation attributes, bulk provisioning via CSV, and delegated access for server administrators, without requiring the Attribute Editor or scripting for routine updates.
No. The attribute is read only by the IIS FTP service when the site is configured for Active Directory user isolation mode. On FTP sites using other isolation modes, on SFTP servers, on SMB file shares, and in all other contexts, the attribute is ignored entirely.
IIS appends msIIS-FTPDir to msIIS-FTPRoot using a backslash separator. If you put an absolute path in msIIS-FTPDir (for example, C:\Users\jsmith), the concatenation produces a malformed path (C:\FTPRoot\C:\Users\jsmith). Keep msIIS-FTPDir as a relative subdirectory name or relative path only. Put the root share or drive in msIIS-FTPRoot.
The user is denied FTP access with a 530 error. IIS requires both attributes to be present and non-null to construct the home directory path. A missing msIIS-FTPRoot is treated the same as a missing path.
Yes. The attribute is defined in the base AD schema shipped with Windows Server and is present on all User class objects from Windows Server 2003 onward, regardless of whether IIS is installed on any server in the domain. Its presence on the schema does not indicate an IIS deployment.
No. msIIS-FTPDir is not included in the default Microsoft Entra Connect synchronization attribute set and does not sync to Entra ID or Microsoft 365. It is an on-premises AD DS attribute with no cloud equivalent.
IIS constructs the home path by concatenating msIIS-FTPRoot and msIIS-FTPDir with a single backslash. If you place a UNC path in msIIS-FTPDir, the result will be a malformed string. Place the UNC server and share in msIIS-FTPRoot (for example, \\fileserver\ftpshare) and put only the subdirectory name or relative path in msIIS-FTPDir (for example, jsmith).