Verwenden von MsDeploy zum Bereitstellen von Windows Services mit dem preSync-Befehl

8

Wird MsDeploy erfolgreich zum Bereitstellen von Windows-Diensten mit einem preSync runCommand verwendet? Ich habe es funktioniert mit einem Administrator-Konto, aber kann nicht für das Leben von mir es funktioniert auf einem Standard-Benutzerkonto. Leider kann ich die integrierte Authentifizierung nicht verwenden (wir stellen sie auf einer externen Box bereit), und der Gedanke, dass unser Administratorkennwort in den Logs auf unserem Build-Server im Klartext steht, macht mich nicht gerade bequem. In der Tat, auch keine Benutzer-Anmeldeinformationen - aber ich sehe keinen Weg um das.

Der Befehl, den ich verwende, ist dies:

%Vor%

mit Regeln, die in IIS für die Dummy-Site eingerichtet wurden, um die Authentifizierung für das service-deploy-Windows-Konto mit den Berechtigungen contentPath und runCommand zu erlauben (momentan auf C: \ gesetzt, da nicht ganz klar ist, ob dies festgelegt werden muss) auf den temporären Pfad, zu dem MsDeploy streamt, oder auf den Bereitstellungspfad?). Das Service-Deploy-Konto hat auch die volle Kontrolle über das Zielverzeichnis. Ich bekomme folgendes zurück:

%Vor%

Dies geschieht auch, wenn der Inhalt von PreSyncCommand.cmd leer ist. Derselbe Befehl funktioniert einwandfrei, wenn ich Administrator-Anmeldeinformationen übergebe. Ich habe versucht, mithilfe von ProcessMonitor zu überprüfen, ob der Zugriff verweigert wird, aber nicht angezeigt wird. Daher vermute ich, dass es sich um eine MsDeploy-Authentifizierungsregel handelt. Es gibt nichts in WmSvc.log (Debugging ist aktiviert), noch im Ereignisprotokoll.

Irgendwelche Ideen? Danke!

    
James Crowley 04.05.2011, 10:04
quelle

1 Antwort

13

Da Sie Web Deploy über WmSvc verwenden, müssen Sie auf dem Zielserver die entsprechenden Delegierungsregeln einrichten:

Öffnen Sie im IIS-Manager die Funktion "Management-Service-Delegierung". Fügen Sie eine neue Regel hinzu, die mindestens den runCommand -Provider angibt. Wählen Sie im Abschnitt Ausführen als Specific User aus und geben Sie die Anmeldeinformationen für ein lokales Administratorkonto auf diesem Computer an. Dies ist die Identität, unter der Ihre runCommand -Skripte ausgeführt werden. Schließlich muss der Benutzer, den Sie für den Zielpfad dirPath angeben, zur Delegierungsregel hinzugefügt werden.

Damit können Sie eine Bereitstellung unter Verwendung eines nicht privilegierten Kontos aufrufen und auf dem Zielcomputer unter Administratorberechtigungen ausführen lassen.

Weitere Informationen zur Delegation von IIS-Funktionen: Ссылка

    
mthierba 04.05.2011, 21:51
quelle