Domanda

IIS 6 e vecchie navi con uno script utility chiamata ADSUTIL.VBS :

  

Adsutil.vbs è un'amministrazione di IIS   utility che utilizza Microsoft Visual   Basic Scripting Edition (VBScript)   con Active Directory Service   Interfaces (ADSI) per manipolare il   configurazione di IIS. Questo script dovrebbe   essere eseguito utilizzando CScript, che è   installato con Windows Script Host.

In altre parole, questo strumento consente di modificare IIS metabase impostazioni di programmazione, dalla riga di comando.

Vorrei chiamare questo strumento da un progetto InstallShield al fine di apportare alcune modifiche alla configurazione di IIS. Sono curioso di sapere se esso sia legale per ridistribuire lo script (non v'è alcun testo legale all'interno della sorgente per esso) o per lanciare semplicemente il comando tramite:

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

e sperare che lo script è presente sul disco in quella posizione.

Quindi la mia domanda è: - sarà esisterà sempre in quel percorso di cui sopra, anche se alcuni altri siti web (inetpub radici) sulla macchina si trovano su un'unità non di sistema? Sembra tutto MSDN e altri articoli Microsoft KB che si riferiscono allo strumento ADSUTIL farlo utilizzando il percorso% SYSTEMDRIVE% al di sopra.

Vedo che almeno un altro tentativo di affrontare questa di distribuzione sia cscript.exe adsutil.vbs e con i loro progetti InstallShield.

Forse c'è una chiave di registro o un altro metodo per ottenere la posizione del Inetpub \ AdminScripts percorso?

Forse dovrei scrivere un C # applicazione che cambia il valore o il mio VBScript e distribuire con la mia piccola applicazione, invece?

È stato utile?

Soluzione 2

Ho lavorato in la risposta di JShumaker per risolvere il problema. La strada migliore sembra essere la seguente funzione InstallScript che io chiamo per eseguire uno script batch:

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

Lo script batch chiama questo:

@echo off
cscript.exe SetIISValues.vbs

E il VBScript è simile al seguente:

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

Facendo in questo modo allevia la necessità di utilizzare ADSUTIL.VBS come parte dell'installazione -. La (relativa) percorso è irrilevante se non hai bisogno di usarlo

Altri suggerimenti

Mi sono imbattuto in un problema simile di recente e ha deciso di rielaborare solo un po 'piccolo di VBScript per utilizzare in un'azione personalizzata in un programma di installazione MSI. Si può prendere un po 'per capire il nucleo di come adsutil.vbs fa cose, ma è ben deently writen. Ad esempio, avevo bisogno di cambiare un pool di applicazioni Classic invece di modalità integrata ed esplicitamente impostato a funzionare in modalità a 32 bit quando sulle finestre a 64 bit, in forma distillata ciò ha determinato questo:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top