據我所知,有兩個Active Directory屬性:msIIS-FTPROOT,msIIS-FTPDir。
從Technet
基本上,用戶的主文件夾驗證時由查詢msIIS-FTPROOT和msIIS-FTPDir確定在Active Directory用戶對象的屬性。 msIIS-FTPRoot和msIIS-FTPDir值的連接會生成用戶主文件夾的路徑。
一個例子可以是這樣的:
msIIS-FTPRoot = D:\FTP Users
msIIS-FTPDir = \JohnSmith
這將導致 「d:\ FTP用戶\ JohnSmith對」 作爲用戶的主文件夾。
代碼遍歷所有用戶有默認目錄:
static void Main(string[] args)
{
string domain = Environment.GetEnvironmentVariable("USERDNSDOMAIN");
string dc = GetDC(domain);
string ldap = String.Format("LDAP://{0}/{1}", domain, dc);
DirectoryEntry e = new DirectoryEntry(ldap);
DirectorySearcher src = new DirectorySearcher(e, "(objectClass=user)");
SearchResultCollection res = src.FindAll();
foreach (SearchResult r in res)
{
DirectoryEntry f = r.GetDirectoryEntry();
Console.WriteLine(f.Name + "\t" + f.Properties["msIIS-FTPRoot"].Value + f.Properties["msIIS-FTPDir"].Value);
}
Console.ReadKey();
}
private static string GetDC(string domain)
{
StringBuilder sb = new StringBuilder(domain);
sb.Replace(".", ",DC=");
sb.Insert(0, "DC=");
return sb.ToString();
}
這篇文章可以幫助(IIS7只): - [自動化IIS管理與C#(http://forums.iis.net/t /1150298.aspx)第二個回覆中的代碼。 – GrayWizardx 2010-01-06 05:26:18