2009-03-19 13 views
8

Je dois implémenter des versions pour le déploiement pour l'application que je supporte où je peux copier le site pour dire c: \ inetpub \ wwwroot \ app_v2 et puis changez le répertoire virtuel de c: \ inetpub \ wwwroot \ app_v1.modifier le chemin physique pour le répertoire virtuel ou le site dans IIS en utilisant la ligne de commande pour IIs6 ou IIs7

Existe-t-il un moyen de modifier le chemin physique d'un répertoire virtuel dans IIS à partir de la ligne de commande?

Edit:

j'ai trouvé que dans IIS7 vous pouvez utiliser appcmd pour définir le chemin physique d'un répertoire virtuel en utilisant ce format sur cette page Change the Physical Path of Virtual Directory Content. Je cherchais quelque chose de plus universel ....

appcmd set vdir /vdir.name:string/physicalPath: string

Cependant, il ne marche pas semble être un equivelant pour IIS 6.

Répondre

2

J'ai eu la même question aujourd'hui: "comment voulez-vous changer le chemin d'un vdir IIS6 en utilisant la ligne de commande?" Les scripts WMI étaient la voie à suivre, alors j'ai pensé que je posterais les vbs que j'ai créés pour cela.

Pour l'utiliser il suffit de passer le nom et le chemin vdir. Donc, si j'avais un vdir appelé « Web » et je voulais changer le chemin « d: \ theNewPath \ to \ Website », puis je courrais la commande suivante dans l'invite de commande:

updateVDirPath web d:\theNewPath\to\Website 

En outre, à vérifier le chemin du vdir, il suffit de passer le nom de vdir:

updateVDirPath web 

Voici le contenu à updateVDirPath.vbs

If WScript.Arguments.Count = 0 or WScript.Arguments.Count > 2 Then 
    WScript.Echo "To check the vDirs path, call updateVDirPath <vDir>" & vbCrLf & "To update the vDir's path, call updateVDirPath <vDir> <newPath>" 
Else 
    set providerObj = GetObject("winmgmts://localhost/root/MicrosoftIISv2") 
    set IIsWebVirtualDirSettingObj = providerObj.get("IIsWebVirtualDirSetting='W3SVC/1/ROOT/" & WScript.Arguments(0) & "'") 

    If WScript.Arguments.Count = 1 Then 
     WScript.Echo "Current path is: " & IIsWebVirtualDirSettingObj.Path 
    Else 
     IIsWebVirtualDirSettingObj.Path = WScript.Arguments(1) 
     IIsWebVirtualDirSettingObj.Put_() 
    End If 
End If