创建 IIS 虚拟目录






3.06/5 (7投票s)
这是一个命令行程序,它将允许用户在本地主机上创建一个虚拟目录。
创建虚拟目录
无效参数
IIS 中的条目
引言
顾名思义,很容易猜到这个项目是关于什么的,即在默认网站(80端口)中创建一个虚拟目录。该程序使用 IIS 管理 SDK,它具有 Active Directory 服务接口 (ADSI),可帮助 VC++ 访问所需的函数和接口。
背景
我开始在网上寻找使用 ADSI 和 VC++ 的类似程序,但没有找到,所以就想创建一个。
使用代码
要访问 ADSI 函数,我们需要包含以下头文件。
// The basic header files used
iads.h
adshlp.h
iiisext.h
iisext_i.c
// Constant used to access the default port 80 // We take IIS:///w3svc/1/Root // as the path to access the default web site const LPWSTR adsPATH = L"IIS:///w3svc/1/Root";
IDispatch *pDisp = NULL; //Idispatch interface object IADs* iAds = NULL; //Active Directory Interface IADsContainer* iContainer = NULL; //Active Directory Container Interface IISApp *pApp = NULL; //Active Directory IIS Application interface
访问 ADSI 对象
//Get Object of Active Drectory Container ADsGetObject(adsPATH, IID_IADsContainer,(void **)&iContainer);
创建虚拟目录
hr = iContainer->Create(L"IIsWebVirtualDir", cAppName, &pDisp);
使用 QueryInterface 创建应用程序
hr = iAds->QueryInterface( IID_IISApp, (void **)&pApp );
使用 iAds 接口访问虚拟目录属性
hr = iAds->Put(L"AccessRead",CComVariant(VARIANT_TRUE)); hr = iAds->Put(L"AccessWrite",CComVariant(VARIANT_TRUE)); hr = iAds->Put(L"AccessScript",CComVariant(VARIANT_TRUE)); hr = iAds->Put(L"AppIsolated",CComVariant(1)); hr = iAds->Put(L"EnableDirBrowsing",CComVariant(VARIANT_TRUE)); hr = iAds->Put(L"AppFriendlyName",CComVariant(cAppName)); hr = iAds->Put(L"Path",CComVariant(clPath)); //Virtual Dir Physicial Path
更新 ASDI 对象的变化
hr = iAds->SetInfo();
//Save Virtual Dir Application Information
链接问题
你可能会遇到链接错误。要解决此问题,需要包含以下库:
Activeds.lib
Adsiid.lib
当前支持的语言是:C++。
关注点
在尝试很多选项时,我不得不解释 .NET 代码并将其转换为 VC++,我发现的一件事是,无论使用哪种语言,你只需要一个愿景来使其工作。