¿Cómo encontrar la ruta relativa a C: \ Inetpub \ AdminScripts \ ADSUTIL.VBS?
-
13-09-2019 - |
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?
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