Я пытаюсь создать веб-приложение / VirtualDirectory в определенной подпапке веб-сайта IIS 6, используя Powershell, как показано ниже:
Структура веб-сайта IIS <<< >>> Структура физического каталога
Test (website) ----------------> c:\InetPub
SubDirectory ------------------> ..\Subdirectory
gadgets (Web App) -----------------> ..\Gadgets
Сценарий
$WebSiteName = “Test”
$virtualDirName = “subdirectory\gadgets”
$appPoolName = “DefaultAppPool”
$VirtalDirHomePath = "c:\InetPub\Subdirectory\Gadgets"
$iisWebSite = Get-WmiObject "IISWebServerSetting" `
-Namespace "root\MicrosoftIISv2" `
-filter "ServerComment like '%$WebSiteName%'"
$virtualDirSettings = [wmiclass] "root\MicrosoftIISv2:IIsWebVirtualDirSetting"
$newVDir = $virtualDirSettings.CreateInstance()
$newVDir.Name = ($iisWebSite.Name + '/ROOT/' + $virtualDirName)
$newVDir.Path = $VirtalDirHomePath
$newVDir.Put();
$nvdir = $iisWebSite.Name + '/ROOT/' + $virtualDirName
$nvdir = $nvdir.Replace("\", "/")
$v = Get-WmiObject -Class IIsWebVirtualDir -Namespace root\microsoftiisv2 `
-filter "Name='$nvdir'"
#Create WebAppliction
$v.AppCreate3(2, $appPoolName, 1)
Если я укажу $virtualDirName
с разделителем пути косой черты (subdirectory/gadgets
), $newVDir.Put()
вызов вызовет следующее исключение
Исключение, вызывающее "Put" с "0"
аргумент (ы): "Win32: система не может
найти указанный путь.
Если я изменю $virtualDirName
с разделителем пути обратной косой черты (подкаталог \ гаджеты) $newVDir.Put()
вызов успешно завершится.
Я не уверен, что это правильный путь.
Есть ли лучший способ создать веб-приложение / VirtualDirectory в определенной подпапке и как я могу перечислить VirtualDirectory / WebApplication, созданный в подпапке.