Frage

IIS 6 und ältere Schiffe mit einem Dienstprogramm Skript namens adsutil.vbs :

  

Adsutil.vbs ist eine IIS-Verwaltungs   Dienstprogramm, das verwendet Microsoft Visual   Basic Scripting Edition (VBScript)   mit Active Directory Service   Schnittstellen (ADSI) zu manipulieren, um die   IIS-Konfiguration. Dieses Skript sollte   ausgeführt werden CScript mit, das ist   installiert mit Windows Script Host.

Mit anderen Worten: Mit diesem Tool können Sie ändern IIS-Metabasis Einstellungen programmatisch von der Kommandozeile.

Ich möchte dieses Werkzeug aus einem Installshield-Projekt aufrufen, um einige Änderungen an der Konfiguration von IIS zu machen. Ich bin gespannt, ob es entweder legal das Skript neu zu verteilen (es keine rechtliche Formulierung in der Quelle für sie ist) oder einfach starten Sie den Befehl über:

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

und hofft, dass das Skript auf der Festplatte an dieser Stelle vorhanden ist.

Meine Frage ist also - es wird immer existiert in diesem Pfad oben, auch wenn einige andere Websites (inetpub Wurzeln) auf der Maschine auf einem Nicht-Systemlaufwerk befinden? Es scheint, all MSDN und anderen Microsoft-KB-Artikel, die zum ADSUTIL Werkzeug beziehen sich so durch das% Systemlaufwerk% Pfad oben.

Ich sehe, dass zumindest ein anderer Versuch, dies zu beschäftigen von sowohl cscript.exe und adsutil.vbs mit ihren Install Projekten zu verteilen.

Vielleicht gibt es einen Registrierungsschlüssel oder eine andere Methode, um die Position des Inetpub \ Admin Weg?

zu erhalten

Vielleicht soll ich schreiben gerade eine C # .NET-Anwendung, die den Wert oder mein eigenes VBScript und mit meinen eigenen kleinen app verteilen statt?

War es hilfreich?

Lösung 2

Ich arbeitete in JShumaker Antwort das Problem zu lösen. Der beste Weg scheint die folgende InstallScript- Funktion, die ich nenne eine Batch-Skript auszuführen:

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

Der Batch-Skript nennt dies:

@echo off
cscript.exe SetIISValues.vbs

Und das VBScript sieht wie folgt aus:

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

es auf diese Weise tun entlastet die Notwendigkeit adsutil.vbs als Teil der Installation zu verwenden, -. Die (relative) Pfad spielt es keine Rolle, wenn Sie benötigen es nicht verwenden

Andere Tipps

Ich lief in ein ähnliches Problem vor kurzem beschlossen, nur ein kleines bisschen Vbscript Nacharbeit in einer benutzerdefinierten Aktion in einem MSI-Installer zu verwenden. Es kann ein wenig nehmen den Kern wie adsutil.vbs tut Dinge, um herauszufinden, aber es ist deently gut writen. Zum Beispiel, ich brauchte einen Anwendungspool Classic statt integrierten Modus zu wechseln und stellen Sie es explizit in 32-Bit-Modus laufen zu lassen, wenn sie auf 64-Bit-Fenster, in destilliertem Form dies in dieser Folge:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top