PowerShell Toolbox: Search Settings setzen
Mein heutiger Beitrag aus dem Bereich PowerShell Toolbox adressiert ein Problem welches häufig in größeren Umgebungen auftritt. Wenn in einer Umgebung viele Websitesammlungen (Site Collections) vorhanden sind, möchte man gerne bestimmte Einstellungen überall gleich setzen. Dieses gilt u.a. auch für die Sucheinstellungen der Websitesammlung. In einem konkreten Kundenszenario hatten wir die Anforderung, dass sichergestellt werden sollte, dass bestimmte Sucheinstellungen überall gleich sind.
Nun kann man natürlich sich aus der Zentraladministration alle vorhandenen Websitesammlungen heraussuchen und diese einzeln durchgehen und die Werte per Hand bzw. über die Oberfläche setzten.
Die weitaus schnellere und auch robustere Möglichkeit ist, dies über ein PowerShell-Skript zu erledigen. Da hierdurch keine Websitesammlung vergessen werden kann, oder Fehler beim setzen auftreten können. In unserem Fall sollen folgende Einstellungen verändert werden:
- Einstellung für das “Websitesammlungs-Suchcenter” / “Site Collection Search Center” (SRCH_ENH_FTR_URL)
- Einstellung für den “Dropdownmodus der Websitesammlungssuche” / “Site Collection Search Dropdown Mode” (SRCH_SITE_DROPDOWN_MODE)
- Einstellung für die “Zielergebnisseite der Websitesammlung” / “Site Collection Search Results Page” (SRCH_TRAGET_RESULTS_PAGE)
Hierzu wird über eine ForEach-Schleife durch alle Websitesammlungen einer Webanwendung gegangen und die entsprechenden Werte über “$web.AllProperties” gesetzt.
$mywebapp= "http://virtual_SPTSL01"
$webApp = Get-SPWebApplication
$mywebapp;
$siteCollections = $webApp | Get-SPSite –limit all;
$siteCollections | ForEach-Object {
$web = $_.RootWeb
$web.AllProperties["SRCH_ENH_FTR_URL"] = "https://virtual_SPTSL01/search/pages";
$web.AllProperties["SRCH_SITE_DROPDOWN_MODE"] = "ShowDD_DefaultContextual";
$web.AllProperties["SRCH_TRAGET_RESULTS_PAGE"] = "/_layouts/OSSSEarchResults.aspx";
$web.Update();
}
In der folgenden Tabelle sind sowohl die englischen als auch deutschen Bezeichnungen des Drop-Down Feldes für “Dropdownmodus der Websitesammlungssuche” dargestellt, eine kurze Beschreibung und der Wert, der für das Property “SRCH_SITE_DROPDOWN_MODE” gesetzt werden muss.
Property-Wert |
Englische Bezeichnung in der Oberfläche |
Deutsche Bezeichnung in der Oberfläche |
Beschreibung |
HideScopeDD_ DefaultContextual |
Do not show scopes dropdown, and default to contextual scope |
Bereichsdropdown nicht anzeigen und Kontextbereich als Standard verwenden |
Dies ist die Standardeinstellung. Die Dropdownliste mit den Bereichen wird auf keiner Seite angezeigt, und für alle Abfragen wird standardmäßig der Kontextbereich verwendet, z. B. die aktuelle Website oder Liste, die durchsucht wird. |
HideScopeDD |
Do not show scopes dropdown, and default to target results page |
Bereichsdropdown ausblenden und Zielergebnisseite als Standard verwenden |
Bei dieser Option wird die Dropdownliste mit den Bereichen nicht gerendert, aber alle Abfragen werden nicht mit kontextbezogenen Bereichen verwendet. Es handelt sich um eine Suche mit benutzerdefiniertem Bereich in allen Websites. Wenn für Websitesammlungs-Suchcenter die Verwendung von benutzerdefinierten Bereichen aktiviert ist, wird für alle Abfragen das in der URL dieser Eigenschaft angegebene Suchcenter verwendet. Für die Eigenschaft Websitesammlungs-Suchcenter muss die Verwendung von benutzerdefinierten Bereichen aktiviert sein. Andernfalls werden alle Abfragen auf der Suchergebnisseite für die Websitesammlung angezeigt. Die Standardmäßig ist dies >/_layouts/OSSSearchResults.aspx. |
ShowDD |
Show scopes dropdown |
Bereichsdropdown einblenden |
Dadurch wird die Dropdownliste mit den Bereichen auf jeder Seite gerendert, und der Bereich, der als Standardwert in der Dropdownliste angezeigt wird, ist der kontextbezogene Bereich. Wenn benutzerdefinierte Bereiche nicht aktiviert sind, zeigt die Dropdownliste den Standardbereich in der Anzeigegruppe für benutzerdefinierte Bereiche an. |
ShowDD_DefaultURL |
Show, and default to ‘s’ URL parameter |
Einblenden und standardmäßig den URL-Parameter ‘s’ verwenden |
Diese Eigenschaft ähnelt der Eigenschaft Bereichsdropdown einblenden. Der Unterschied besteht jedoch darin, dass hier, sobald eine Abfrage ausgeführt wurde, der Standardbereich, der in der Dropdownliste mit den Bereichen angezeigt werden soll, der gleiche Bereich wie in der ursprünglichen Abfrage ist. |
ShowDD_DefaultContextual |
Show, and default to contextual scope |
Einblenden und standardmäßig den kontextbezogenen Bereich verwenden |
Dadurch wird die Dropdownliste mit den Bereichen auf jeder Seite gerendert. Der Bereich, der als Standardwert in der Dropdownliste angezeigt wird, ist der kontextbezogene Bereich, unabhängig davon, ob benutzerdefinierte Bereiche aktiviert sind oder nicht. |
ShowDD_NoContextual |
Show, do not include contextual scopes |
Einblenden und kontextbezogene Bereiche nicht einschließen |
Dadurch wird die Dropdownliste mit den Bereichen auf allen Seiten gerendert, sie enthält aber keine kontextbezogenen Bereiche. Diesen Wert sollten Sie nur verwenden, wenn benutzerdefinierte Bereiche aktiviert sind. Der Standardbereich in der Dropdownliste ist der Standardbereich in der Anzeigegruppe für benutzerdefinierte Bereiche. |
ShowDD_NoContextual_ DefaultURL |
Show, do not include contextual scopes, and default to ‘s’ URL parameter |
Einblenden, kontextbezogene Bereiche nicht einschließen und standardmäßig den URL-Parameter ‘s’ verwenden |
Diese Eigenschaft ähnelt der Eigenschaft Einblenden und standardmäßig den URL-Parameter ‘s’ verwenden. Der Unterschied liegt darin, dass kontextbezogene Bereiche nicht in die Dropdownliste mit den Bereichen eingeschlossen werden |
Das fertige Skript gibt es wie immer zum Download: