Pregunta

IIS 6 años y mayores barcos con un guión utilidad llamada ADSUTIL.VBS :

  

Adsutil.vbs es una administración de IIS   utilidad que utiliza Microsoft Visual   Basic Scripting Edition (VBScript)   con servicio de Active Directory   Interfaces (ADSI) para manipular el   configuración de IIS. Este script debe   ejecutarse utilizando CScript, que es   instalado con Windows Script Host.

En otras palabras, esta herramienta le permite cambiar metabase de IIS configuración mediante programación, desde la línea de comandos.

Me gustaría llamar a esta herramienta a partir de un proyecto de InstallShield con el fin de hacer algunos cambios en la configuración de IIS. Tengo curiosidad si bien legal para volver a distribuir el guión (no hay ningún texto legal dentro de la fuente para ello) o simplemente para poner en marcha el comando a través de:

CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs

y esperar que el script existe en el disco en ese lugar.

Así que mi pregunta es: - ¿siempre existir en ese camino anteriormente, incluso si algunos otros sitios web (inetpub raíces) en la máquina se encuentran en una unidad que no sea del sistema? Parece todo MSDN y otros artículos de Microsoft KB que se refieren a la herramienta ADSUTIL hacerlo a través de la ruta% SYSTEMDRIVE% por encima.

veo que al menos otro intento de hacer frente a este distribuyendo tanto cscript.exe y adsutil.vbs con sus proyectos de InstallShield.

Tal vez hay una clave de registro u otro método para obtener la ubicación de la carpeta Inetpub \ AdminScripts camino?

Tal vez debería escribir una href="http://www.codersource.net/csharp_iis_metabase.html" rel="nofollow noreferrer"> de aplicaciones # mi propia VBScript y distribuir con mi propia pequeña aplicación en su lugar?

¿Fue útil?

Solución 2

la respuesta de JShumaker para resolver el problema. La mejor ruta parece ser la siguiente función InstallScript que llamo para ejecutar un script por lotes:

prototype SetIISValues();   
function SetIISValues()  
    string szProgram, szCmd;
begin                              
    szProgram = TARGETDIR + "SetIISValues.bat";
    szCmd = "";  
    LaunchAppAndWait (szProgram, szCmd, LAAW_OPTION_WAIT);
end; 

La secuencia de comandos por lotes llama a esto:

@echo off
cscript.exe SetIISValues.vbs

Y el VBScript es el siguiente:

Option Explicit
Dim IIsObject
Set IIsObject = GetObject("IIS://localhost/w3svc/1")
IIsObject.Put "Name", "Value"
IIsObject.Setinfo

Hacerlo de esta manera alivia la necesidad de utilizar ADSUTIL.VBS como parte de la instalación. - la (relativa) ruta al mismo es irrelevante si no hay que usarla

Otros consejos

Me encontré con un problema similar hace poco y decidí simplemente la modificación de un pequeño fragmento de VBScript para utilizar en una acción personalizada en un instalador MSI. Se puede tomar un poco de averiguar el núcleo de cómo adsutil.vbs hace cosas, pero está bien deently writen. Por ejemplo, lo que necesitaba para cambiar un grupo de aplicaciones a la versión clásica en lugar de modo integrado y establecer explícitamente que se ejecute en modo de 32 bits cuando en Windows de 64 bits, en forma destilada esto dio lugar a esto:

Option Explicit

Dim IIsObject
Set IIsObject = GetObject("IIS://LocalHost/W3SVC/AppPools/TestPool")
IIsObject.Put "ManagedPipelineMode", 1
IIsObject.Setinfo
IIsObject.Put "Enable32BitAppOnWin64", CBool("True")
IIsObject.Setinfo
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top