Das scheint zu funktionieren
%Vor%Ich bin dabei, einige automatisierte Skripte zu schreiben, um IIS-Sites auf einem Server mit PowerShell zu erstellen / zu aktualisieren.
Ziel ist es, ein Konfigurationsobjekt zu haben, das dann von einem einzigen Skript gehandhabt werden kann, um alle schweren Aufgaben zu erledigen.
Meine Konfiguration HashTable
sieht folgendermaßen aus:
Mein Skript verwendet dann die Konfiguration, um jeden Anwendungspool und jede Website zu verarbeiten:
%Vor%Wie Sie sehen, ist der Prozess praktisch identisch (abgesehen von den Artikelpfaden und dem Typ, der erstellt wird). Dies wird natürlich umgestaltet, wenn ich die Dinge zum Laufen bringe!
Ich habe eine Funktion namens Set-PropertiesFromHash
geschrieben. Dies flacht die Hash-Tabelle im Grunde auf einen Eigenschaftspfad ab:
Die erzeugte scriptblock
in der else
-Klausel führt zur Ausführung von $on.ProcessModel.IdentityType = $properties.IdentityType
(das Eigenschaftsobjekt in jeder Schleife ist der letzte gefundene HashTable-Wert, so dass dieser den richtigen Wert zugewiesen hat)
Immer noch hier? Danke!
Alle oben genannten Funktionen funktionieren wie erwartet für Anwendungspools, aber schlägt vollständig für Websites fehl . Warum funktioniert das nur bei Websites?
Ich weiß, dass ich Set-ItemProperty
verwenden kann, aber das Ziel ist, dass das config-Objekt die Eigenschaften steuert, die gesetzt werden.
Ein einfacheres Beispiel ist unten aufgeführt:
%Vor% Nachdem Set-Item
aufgerufen wurde, werden die Elemente erneut abgerufen $ap
hat den aktualisierten Wert, aber $site
enthält den aktualisierten Wert nicht.
Ich verwende PowerShell v2 und IIS7
Ich habe Set-PropertiesFromHash
so geändert, dass es wie folgt funktioniert:
Was mir erlaubt hat, für jetzt fortzufahren. Aber meine ursprüngliche Frage steht immer noch.
Warum funktioniert $site | Set-Item
für Websites nicht?
Ich bin dabei, einige automatisierte Skripte zu schreiben, um IIS-Sites auf einem Server mit PowerShell zu erstellen / zu aktualisieren.
Ziel ist es, ein Konfigurationsobjekt zu haben, das dann von einem einzigen Skript gehandhabt werden kann, um alle schweren Aufgaben zu erledigen.
Meine Konfiguration %code% sieht folgendermaßen aus:
%Vor%Mein Skript verwendet dann die Konfiguration, um jeden Anwendungspool und jede Website zu verarbeiten:
%Vor%Wie Sie sehen, ist der Prozess praktisch identisch (abgesehen von den Artikelpfaden und dem Typ, der erstellt wird). Dies wird natürlich umgestaltet, wenn ich die Dinge zum Laufen bringe!
Ich habe eine Funktion namens %code% geschrieben. Dies flacht die Hash-Tabelle im Grunde auf einen Eigenschaftspfad ab:
%Vor%Die erzeugte %code% in der %code% -Klausel führt zur Ausführung von %code% (das Eigenschaftsobjekt in jeder Schleife ist der letzte gefundene HashTable-Wert, so dass dieser den richtigen Wert zugewiesen hat)
Immer noch hier? Danke!
Alle oben genannten Funktionen funktionieren wie erwartet für Anwendungspools, aber schlägt vollständig für Websites fehl . Warum funktioniert das nur bei Websites?
Ich weiß, dass ich %code% verwenden kann, aber das Ziel ist, dass das config-Objekt die Eigenschaften steuert, die gesetzt werden.
Ein einfacheres Beispiel ist unten aufgeführt:
%Vor%Nachdem %code% aufgerufen wurde, werden die Elemente erneut abgerufen %code% hat den aktualisierten Wert, aber %code% enthält den aktualisierten Wert nicht.
Ich verwende PowerShell v2 und IIS7
Ich habe %code% so geändert, dass es wie folgt funktioniert:
%Vor%Was mir erlaubt hat, für jetzt fortzufahren. Aber meine ursprüngliche Frage steht immer noch.
Warum funktioniert %code% für Websites nicht?
Das scheint zu funktionieren
%Vor%Tags und Links powershell powershell-v2.0 iis-7