<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hb9fdz.ch//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thomas</id>
	<title>HB9FDZ - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hb9fdz.ch//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thomas"/>
	<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//Spezial:Beitr%C3%A4ge/Thomas"/>
	<updated>2026-06-13T06:57:43Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.0</generator>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=859</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=859"/>
		<updated>2026-05-27T14:11:50Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* 6. Empfohlene Wartungsroutine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;br /&gt;
&lt;br /&gt;
== 2. Statistiken aktualisieren (empfohlen vor jedem Rebuild) ==&lt;br /&gt;
Kann jederzeit im laufenden Betrieb ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 EXEC sp_updatestats;&lt;br /&gt;
&lt;br /&gt;
== 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) ==&lt;br /&gt;
Dieser Schritt sollte außerhalb der Betriebszeiten ausgeführt werden, da Tabellen während des Rebuilds gesperrt werden.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DECLARE @sql NVARCHAR(MAX) = N&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
SELECT @sql = @sql + &lt;br /&gt;
    &#039;ALTER INDEX [&#039; + i.name + &#039;] ON [&#039; + s.name + &#039;].[&#039; + t.name + &#039;] REBUILD WITH (ONLINE = OFF);&#039; + CHAR(13)&lt;br /&gt;
FROM sys.indexes i&lt;br /&gt;
JOIN sys.tables t ON i.object_id = t.object_id&lt;br /&gt;
JOIN sys.schemas s ON t.schema_id = s.schema_id&lt;br /&gt;
WHERE i.type_desc &amp;lt;&amp;gt; &#039;HEAP&#039;&lt;br /&gt;
  AND i.is_disabled = 0;&lt;br /&gt;
&lt;br /&gt;
EXEC sp_executesql @sql;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HEAP‑Tabellen (ohne Clustered Index) werden übersprungen.&lt;br /&gt;
&lt;br /&gt;
Während des Rebuilds sind Tabellen exklusiv gesperrt.&lt;br /&gt;
&lt;br /&gt;
Dauer bei 200k–1 Mio Zeilen meist nur Sekunden bis wenige Minuten.&lt;br /&gt;
&lt;br /&gt;
== 4. Optional: Index‑Reorganize (online, tagsüber möglich) ==&lt;br /&gt;
Kann im laufenden Betrieb ausgeführt werden, blockiert nicht.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER INDEX ALL ON dbo.DeineTabelle REORGANIZE;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Einsatz:&#039;&#039;&#039;&lt;br /&gt;
Nur sinnvoll bei Fragmentierung unter 30 %.&lt;br /&gt;
== 5. Fehlende Indizes prüfen ==&lt;br /&gt;
SQL Server zeigt an, welche Indizes fehlen und Performance verbessern würden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT *&lt;br /&gt;
FROM sys.dm_db_missing_index_details;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
Diese Vorschläge sind oft wertvoll, aber nicht blind übernehmen — prüfen, ob sie zur Abfrage passen.&lt;br /&gt;
&lt;br /&gt;
== 6. Empfohlene Wartungsroutine ==&lt;br /&gt;
Täglich / wöchentlich:&lt;br /&gt;
&lt;br /&gt;
* sp_updatestats&lt;br /&gt;
* REORGANIZE bei Fragmentierung 5–30 %&lt;br /&gt;
* Monatlich / bei Bedarf: REBUILD aller Indizes (außerhalb der Betriebszeiten)&lt;br /&gt;
&lt;br /&gt;
== Hinweis zu Tabellen mit BLOB‑Daten ==&lt;br /&gt;
Tabellen, die große Datenfelder enthalten (z. B. VARBINARY(MAX), VARCHAR(MAX), NVARCHAR(MAX), XML), können ohne Einschränkungen in den Index‑Rebuild einbezogen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grund:&#039;&#039;&#039;&lt;br /&gt;
SQL Server speichert große Objekte (LOB‑Daten) nicht direkt im Index, sondern auf separaten LOB‑Pages.&lt;br /&gt;
Der Index enthält lediglich einen Verweis auf diese Daten.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Folgen für den Rebuild:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
LOB‑Daten werden nicht neu geschrieben&lt;br /&gt;
&lt;br /&gt;
nur die Indexstruktur wird reorganisiert&lt;br /&gt;
&lt;br /&gt;
der Vorgang ist sicher und verursacht keine Datenverluste&lt;br /&gt;
&lt;br /&gt;
die Dauer des Rebuilds wird durch BLOB‑Daten kaum beeinflusst&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ausnahme:&#039;&#039;&#039;&lt;br /&gt;
Beim Rebuild eines &#039;&#039;&#039;Clustered Index&#039;&#039;&#039; werden die Zeilen neu angeordnet, jedoch bleiben die LOB‑Daten weiterhin ausgelagert. Auch hier werden die BLOB‑Daten selbst nicht vollständig neu geschrieben.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=858</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=858"/>
		<updated>2026-05-27T14:09:57Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;br /&gt;
&lt;br /&gt;
== 2. Statistiken aktualisieren (empfohlen vor jedem Rebuild) ==&lt;br /&gt;
Kann jederzeit im laufenden Betrieb ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 EXEC sp_updatestats;&lt;br /&gt;
&lt;br /&gt;
== 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) ==&lt;br /&gt;
Dieser Schritt sollte außerhalb der Betriebszeiten ausgeführt werden, da Tabellen während des Rebuilds gesperrt werden.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DECLARE @sql NVARCHAR(MAX) = N&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
SELECT @sql = @sql + &lt;br /&gt;
    &#039;ALTER INDEX [&#039; + i.name + &#039;] ON [&#039; + s.name + &#039;].[&#039; + t.name + &#039;] REBUILD WITH (ONLINE = OFF);&#039; + CHAR(13)&lt;br /&gt;
FROM sys.indexes i&lt;br /&gt;
JOIN sys.tables t ON i.object_id = t.object_id&lt;br /&gt;
JOIN sys.schemas s ON t.schema_id = s.schema_id&lt;br /&gt;
WHERE i.type_desc &amp;lt;&amp;gt; &#039;HEAP&#039;&lt;br /&gt;
  AND i.is_disabled = 0;&lt;br /&gt;
&lt;br /&gt;
EXEC sp_executesql @sql;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HEAP‑Tabellen (ohne Clustered Index) werden übersprungen.&lt;br /&gt;
&lt;br /&gt;
Während des Rebuilds sind Tabellen exklusiv gesperrt.&lt;br /&gt;
&lt;br /&gt;
Dauer bei 200k–1 Mio Zeilen meist nur Sekunden bis wenige Minuten.&lt;br /&gt;
&lt;br /&gt;
== 4. Optional: Index‑Reorganize (online, tagsüber möglich) ==&lt;br /&gt;
Kann im laufenden Betrieb ausgeführt werden, blockiert nicht.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER INDEX ALL ON dbo.DeineTabelle REORGANIZE;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Einsatz:&#039;&#039;&#039;&lt;br /&gt;
Nur sinnvoll bei Fragmentierung unter 30 %.&lt;br /&gt;
== 5. Fehlende Indizes prüfen ==&lt;br /&gt;
SQL Server zeigt an, welche Indizes fehlen und Performance verbessern würden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT *&lt;br /&gt;
FROM sys.dm_db_missing_index_details;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
Diese Vorschläge sind oft wertvoll, aber nicht blind übernehmen — prüfen, ob sie zur Abfrage passen.&lt;br /&gt;
&lt;br /&gt;
== 6. Empfohlene Wartungsroutine ==&lt;br /&gt;
Täglich / wöchentlich:&lt;br /&gt;
&lt;br /&gt;
* sp_updatestats&lt;br /&gt;
* REORGANIZE bei Fragmentierung 5–30 %&lt;br /&gt;
* Monatlich / bei Bedarf: REBUILD aller Indizes (außerhalb der Betriebszeiten)&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=857</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=857"/>
		<updated>2026-05-27T14:08:40Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;br /&gt;
&lt;br /&gt;
== 2. Statistiken aktualisieren (empfohlen vor jedem Rebuild) ==&lt;br /&gt;
Kann jederzeit im laufenden Betrieb ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 EXEC sp_updatestats;&lt;br /&gt;
&lt;br /&gt;
== 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) ==&lt;br /&gt;
Dieser Schritt sollte außerhalb der Betriebszeiten ausgeführt werden, da Tabellen während des Rebuilds gesperrt werden.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DECLARE @sql NVARCHAR(MAX) = N&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
SELECT @sql = @sql + &lt;br /&gt;
    &#039;ALTER INDEX [&#039; + i.name + &#039;] ON [&#039; + s.name + &#039;].[&#039; + t.name + &#039;] REBUILD WITH (ONLINE = OFF);&#039; + CHAR(13)&lt;br /&gt;
FROM sys.indexes i&lt;br /&gt;
JOIN sys.tables t ON i.object_id = t.object_id&lt;br /&gt;
JOIN sys.schemas s ON t.schema_id = s.schema_id&lt;br /&gt;
WHERE i.type_desc &amp;lt;&amp;gt; &#039;HEAP&#039;&lt;br /&gt;
  AND i.is_disabled = 0;&lt;br /&gt;
&lt;br /&gt;
EXEC sp_executesql @sql;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HEAP‑Tabellen (ohne Clustered Index) werden übersprungen.&lt;br /&gt;
&lt;br /&gt;
Während des Rebuilds sind Tabellen exklusiv gesperrt.&lt;br /&gt;
&lt;br /&gt;
Dauer bei 200k–1 Mio Zeilen meist nur Sekunden bis wenige Minuten.&lt;br /&gt;
&lt;br /&gt;
== 4. Optional: Index‑Reorganize (online, tagsüber möglich) ==&lt;br /&gt;
Kann im laufenden Betrieb ausgeführt werden, blockiert nicht.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER INDEX ALL ON dbo.DeineTabelle REORGANIZE;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Einsatz:&#039;&#039;&#039;&lt;br /&gt;
Nur sinnvoll bei Fragmentierung unter 30 %.&lt;br /&gt;
== 5. Fehlende Indizes prüfen ==&lt;br /&gt;
SQL Server zeigt an, welche Indizes fehlen und Performance verbessern würden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT *&lt;br /&gt;
FROM sys.dm_db_missing_index_details;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039;&lt;br /&gt;
Diese Vorschläge sind oft wertvoll, aber nicht blind übernehmen — prüfen, ob sie zur Abfrage passen.&lt;br /&gt;
&lt;br /&gt;
== 6. Empfohlene Wartungsroutine ==&lt;br /&gt;
Täglich / wöchentlich:&lt;br /&gt;
&lt;br /&gt;
sp_updatestats&lt;br /&gt;
&lt;br /&gt;
REORGANIZE bei Fragmentierung 5–30 %&lt;br /&gt;
&lt;br /&gt;
Monatlich / bei Bedarf:&lt;br /&gt;
&lt;br /&gt;
REBUILD aller Indizes (außerhalb der Betriebszeiten)&lt;br /&gt;
&lt;br /&gt;
Wenn du willst, kann ich dir auch eine komplette Wiki‑Seite mit Headern, Kategorien und Vorlagen bauen oder ein automatisches SQL‑Wartungsskript, das Rebuild/Reorganize selbst entscheidet.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=856</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=856"/>
		<updated>2026-05-27T13:59:31Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;br /&gt;
&lt;br /&gt;
== 2. Statistiken aktualisieren (empfohlen vor jedem Rebuild) ==&lt;br /&gt;
Kann jederzeit im laufenden Betrieb ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 EXEC sp_updatestats;&lt;br /&gt;
&lt;br /&gt;
== 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) ==&lt;br /&gt;
Dieser Schritt sollte außerhalb der Betriebszeiten ausgeführt werden, da Tabellen während des Rebuilds gesperrt werden.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DECLARE @sql NVARCHAR(MAX) = N&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
SELECT @sql = @sql + &lt;br /&gt;
    &#039;ALTER INDEX [&#039; + i.name + &#039;] ON [&#039; + s.name + &#039;].[&#039; + t.name + &#039;] REBUILD WITH (ONLINE = OFF);&#039; + CHAR(13)&lt;br /&gt;
FROM sys.indexes i&lt;br /&gt;
JOIN sys.tables t ON i.object_id = t.object_id&lt;br /&gt;
JOIN sys.schemas s ON t.schema_id = s.schema_id&lt;br /&gt;
WHERE i.type_desc &amp;lt;&amp;gt; &#039;HEAP&#039;&lt;br /&gt;
  AND i.is_disabled = 0;&lt;br /&gt;
&lt;br /&gt;
EXEC sp_executesql @sql;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HEAP‑Tabellen (ohne Clustered Index) werden übersprungen.&lt;br /&gt;
&lt;br /&gt;
Während des Rebuilds sind Tabellen exklusiv gesperrt.&lt;br /&gt;
&lt;br /&gt;
Dauer bei 200k–1 Mio Zeilen meist nur Sekunden bis wenige Minuten.&lt;br /&gt;
&lt;br /&gt;
== 4. Optional: Index‑Reorganize (online, tagsüber möglich) ==&lt;br /&gt;
Kann im laufenden Betrieb ausgeführt werden, blockiert nicht.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER INDEX ALL ON dbo.DeineTabelle REORGANIZE;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Einsatz:&#039;&#039;&#039;&lt;br /&gt;
Nur sinnvoll bei Fragmentierung unter 30 %.&lt;br /&gt;
== 5. Fehlende Indizes prüfen ==&lt;br /&gt;
SQL Server zeigt an, welche Indizes fehlen und Performance verbessern würden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT *&lt;br /&gt;
FROM sys.dm_db_missing_index_details;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=855</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=855"/>
		<updated>2026-05-27T13:57:59Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;br /&gt;
&lt;br /&gt;
== 2. Statistiken aktualisieren (empfohlen vor jedem Rebuild) ==&lt;br /&gt;
Kann jederzeit im laufenden Betrieb ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 EXEC sp_updatestats;&lt;br /&gt;
&lt;br /&gt;
== 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) ==&lt;br /&gt;
Dieser Schritt sollte außerhalb der Betriebszeiten ausgeführt werden, da Tabellen während des Rebuilds gesperrt werden.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DECLARE @sql NVARCHAR(MAX) = N&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
SELECT @sql = @sql + &lt;br /&gt;
    &#039;ALTER INDEX [&#039; + i.name + &#039;] ON [&#039; + s.name + &#039;].[&#039; + t.name + &#039;] REBUILD WITH (ONLINE = OFF);&#039; + CHAR(13)&lt;br /&gt;
FROM sys.indexes i&lt;br /&gt;
JOIN sys.tables t ON i.object_id = t.object_id&lt;br /&gt;
JOIN sys.schemas s ON t.schema_id = s.schema_id&lt;br /&gt;
WHERE i.type_desc &amp;lt;&amp;gt; &#039;HEAP&#039;&lt;br /&gt;
  AND i.is_disabled = 0;&lt;br /&gt;
&lt;br /&gt;
EXEC sp_executesql @sql;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HEAP‑Tabellen (ohne Clustered Index) werden übersprungen.&lt;br /&gt;
&lt;br /&gt;
Während des Rebuilds sind Tabellen exklusiv gesperrt.&lt;br /&gt;
&lt;br /&gt;
Dauer bei 200k–1 Mio Zeilen meist nur Sekunden bis wenige Minuten.&lt;br /&gt;
&lt;br /&gt;
== 4. Optional: Index‑Reorganize (online, tagsüber möglich) ==&lt;br /&gt;
Kann im laufenden Betrieb ausgeführt werden, blockiert nicht.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER INDEX ALL ON dbo.DeineTabelle REORGANIZE;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Einsatz:&#039;&#039;&#039;&lt;br /&gt;
Nur sinnvoll bei Fragmentierung unter 30 %.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=854</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=854"/>
		<updated>2026-05-27T13:55:52Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;br /&gt;
&lt;br /&gt;
== 2. Statistiken aktualisieren (empfohlen vor jedem Rebuild) ==&lt;br /&gt;
Kann jederzeit im laufenden Betrieb ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 EXEC sp_updatestats;&lt;br /&gt;
&lt;br /&gt;
== 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) ==&lt;br /&gt;
Dieser Schritt sollte außerhalb der Betriebszeiten ausgeführt werden, da Tabellen während des Rebuilds gesperrt werden.&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DECLARE @sql NVARCHAR(MAX) = N&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
SELECT @sql = @sql + &lt;br /&gt;
    &#039;ALTER INDEX [&#039; + i.name + &#039;] ON [&#039; + s.name + &#039;].[&#039; + t.name + &#039;] REBUILD WITH (ONLINE = OFF);&#039; + CHAR(13)&lt;br /&gt;
FROM sys.indexes i&lt;br /&gt;
JOIN sys.tables t ON i.object_id = t.object_id&lt;br /&gt;
JOIN sys.schemas s ON t.schema_id = s.schema_id&lt;br /&gt;
WHERE i.type_desc &amp;lt;&amp;gt; &#039;HEAP&#039;&lt;br /&gt;
  AND i.is_disabled = 0;&lt;br /&gt;
&lt;br /&gt;
EXEC sp_executesql @sql;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
HEAP‑Tabellen (ohne Clustered Index) werden übersprungen.&lt;br /&gt;
&lt;br /&gt;
Während des Rebuilds sind Tabellen exklusiv gesperrt.&lt;br /&gt;
&lt;br /&gt;
Dauer bei 200k–1 Mio Zeilen meist nur Sekunden bis wenige Minuten.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=853</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=853"/>
		<updated>2026-05-27T13:54:20Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;br /&gt;
&lt;br /&gt;
== 2. Statistiken aktualisieren (empfohlen vor jedem Rebuild) ==&lt;br /&gt;
Kann jederzeit im laufenden Betrieb ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
 EXEC sp_updatestats;&lt;br /&gt;
&lt;br /&gt;
== 3. Index‑Rebuild aller Tabellen (Standard Edition, offline) ==&lt;br /&gt;
Dieser Schritt sollte außerhalb der Betriebszeiten ausgeführt werden, da Tabellen während des Rebuilds gesperrt werden.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=852</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=852"/>
		<updated>2026-05-27T13:53:20Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* 1. Fragmentierung prüfen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Interpretation:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
5–30 % → REORGANIZE&lt;br /&gt;
&lt;br /&gt;
&amp;gt;30 % → REBUILD (offline in Standard Edition)&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=851</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=851"/>
		<updated>2026-05-27T13:52:50Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* 1. Fragmentierung prüfen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    dbschemas.[name] AS &#039;Schema&#039;,&lt;br /&gt;
    dbtables.[name] AS &#039;Table&#039;,&lt;br /&gt;
    dbindexes.[name] AS &#039;Index&#039;,&lt;br /&gt;
    indexstats.avg_fragmentation_in_percent&lt;br /&gt;
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, &#039;LIMITED&#039;) AS indexstats&lt;br /&gt;
INNER JOIN sys.tables dbtables ON dbtables.[object_id] = indexstats.[object_id]&lt;br /&gt;
INNER JOIN sys.schemas dbschemas ON dbtables.[schema_id] = dbschemas.[schema_id]&lt;br /&gt;
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]&lt;br /&gt;
    AND indexstats.index_id = dbindexes.index_id&lt;br /&gt;
WHERE indexstats.avg_fragmentation_in_percent &amp;gt; 5&lt;br /&gt;
ORDER BY indexstats.avg_fragmentation_in_percent DESC;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=850</id>
		<title>Index Rebuild MS SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Index_Rebuild_MS_SQL_Server&amp;diff=850"/>
		<updated>2026-05-27T13:52:07Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== SQL Server: Index‑Wartung (Standard Edition) == Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden. Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.  == 1. Fragmentierung prüfen == Um festzustellen, wie stark die Indizes fragmentiert sind:“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SQL Server: Index‑Wartung (Standard Edition) ==&lt;br /&gt;
Diese Dokumentation beschreibt, wie in einer Microsoft SQL Server Standard Edition die Indizes einer Datenbank gewartet werden.&lt;br /&gt;
Da die Standard Edition keine Online‑Rebuilds unterstützt, müssen Rebuilds außerhalb der Betriebszeiten durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== 1. Fragmentierung prüfen ==&lt;br /&gt;
Um festzustellen, wie stark die Indizes fragmentiert sind:&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Datei:Rot.-Zeiger.svg&amp;diff=849</id>
		<title>Datei:Rot.-Zeiger.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Datei:Rot.-Zeiger.svg&amp;diff=849"/>
		<updated>2025-11-14T10:53:17Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Phasenwinkel&amp;diff=848</id>
		<title>Phasenwinkel</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Phasenwinkel&amp;diff=848"/>
		<updated>2025-11-14T10:52:01Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „{{Dieser Artikel|behandelt den Phasenwinkel in der Physik und Technik; zur Bedeutung in der Astronomie siehe Tag-Nacht-Grenze.}} {{Infobox Physikalische Größe |Name = Phasenwinkel, Phase |Größenart =  |Formelzeichen = &amp;lt;math&amp;gt;\varphi&amp;lt;/math&amp;gt; |Dim =  |AbgeleitetVon =  |SI= rad |SI-Dimension= 1 |cgs =  |cgs-Dimension =  |esE =  |esE-Dimension =  |emE =  |emE-Dimension =  |Planck =  |Planck-Dimension =  |Astro =  |Astro-Dimension =…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Dieser Artikel|behandelt den Phasenwinkel in der Physik und Technik; zur Bedeutung in der Astronomie siehe [[Tag-Nacht-Grenze]].}}&lt;br /&gt;
{{Infobox Physikalische Größe&lt;br /&gt;
|Name = Phasenwinkel, Phase&lt;br /&gt;
|Größenart = &lt;br /&gt;
|Formelzeichen = &amp;lt;math&amp;gt;\varphi&amp;lt;/math&amp;gt;&lt;br /&gt;
|Dim = &lt;br /&gt;
|AbgeleitetVon = &lt;br /&gt;
|SI= [[Radiant (Einheit)|rad]]&lt;br /&gt;
|SI-Dimension= 1&lt;br /&gt;
|cgs = &lt;br /&gt;
|cgs-Dimension = &lt;br /&gt;
|esE = &lt;br /&gt;
|esE-Dimension = &lt;br /&gt;
|emE = &lt;br /&gt;
|emE-Dimension = &lt;br /&gt;
|Planck = &lt;br /&gt;
|Planck-Dimension = &lt;br /&gt;
|Astro = &lt;br /&gt;
|Astro-Dimension = &lt;br /&gt;
|Anglo = &lt;br /&gt;
|Anglo-Dimension = &lt;br /&gt;
|Anmerkungen = &lt;br /&gt;
|SieheAuch = &lt;br /&gt;
}}&lt;br /&gt;
Der &#039;&#039;&#039;Phasenwinkel&#039;&#039;&#039; oder die &#039;&#039;&#039;Phase&#039;&#039;&#039; gibt die aktuelle Position im Ablauf eines periodischen Vorgangs an. Für [[Sinus und Kosinus|sinusförmige]] Verläufe ist die Phase die Größe, von der die Winkelfunktion &#039;&#039;unmittelbar&#039;&#039; abhängt&amp;lt;ref name=&amp;quot;D311&amp;quot;&amp;gt; DIN 1311-1 (2000): &#039;&#039;Schwingungen und schwingungsfähige Systeme&#039;&#039;.&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;D483&amp;quot;&amp;gt; DIN 5483-1 (1983): &#039;&#039;Zeitabhängige Größen&#039;&#039;&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;D110&amp;quot;&amp;gt; DIN 40110-1 (1994): &#039;&#039;Wechselstromgrößen&#039;&#039;&amp;lt;/ref&amp;gt; (mathematisch als „Argument“ der [[Funktion (Mathematik)|Funktion]] bezeichnet). Sie hat daher die Dimension eines Winkels.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Rot.-Zeiger.svg|mini| Mit konstanter Kreisfrequenz &#039;&#039;ω&#039;&#039; rotierender Zeiger der Länge &#039;&#039;û&#039;&#039;&amp;amp;nbsp;. Der Phasenwinkel &#039;&#039;φ&#039;&#039;(&#039;&#039;t&#039;&#039;) nimmt linear mit der Zeit zu. Die Projektion des Zeigers auf die &#039;&#039;x&#039;&#039;-Achse ist &#039;&#039;û&#039;&#039;&amp;amp;nbsp;cos&#039;&#039;φ&#039;&#039;.]]&lt;br /&gt;
&lt;br /&gt;
Man kann sich den Verlauf einer [[Harmonische Schwingung|harmonischen Schwingung]] durch einen [[Zeigermodell|Zeiger]] veranschaulichen, der sich mit konstanter [[Winkelgeschwindigkeit]] um den Koordinatenursprung dreht (siehe Abbildung). Wenn man diesen Zeiger auf eine der beiden Koordinatenachsen projiziert, führt der Endpunkt der Projektion dabei die harmonische Schwingung aus. Der Winkel, den der Zeiger mit der horizontalen Achse einschließt, ist der Phasenwinkel.&lt;br /&gt;
&lt;br /&gt;
== Definitionen ==&lt;br /&gt;
Für die Kosinus-Funktion&lt;br /&gt;
:&amp;lt;math&amp;gt;x(t)=\hat x \,\cos(\omega t+\varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
werden in den Normen folgende Größen definiert:&lt;br /&gt;
* der &#039;&#039;Phasenwinkel&#039;&#039; &amp;lt;math&amp;gt;\varphi (t) =\omega t + \varphi_0&amp;lt;/math&amp;gt; als das linear von der Zeit abhängige Argument dieser Funktion,&lt;br /&gt;
* die &#039;&#039;[[Kreisfrequenz]]&#039;&#039; &amp;lt;math&amp;gt;\omega=2\pi f=2\pi/T&amp;lt;/math&amp;gt; als Konstante mit der [[Frequenz]] &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; oder der [[Periodendauer]]&amp;amp;nbsp;&amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;,&lt;br /&gt;
* der &#039;&#039;&#039;Nullphasenwinkel&#039;&#039;&#039; &amp;lt;math&amp;gt;\varphi_0\ &amp;lt;/math&amp;gt; als Phasenwinkel zum Zeitpunkt &amp;lt;math&amp;gt;t=0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Daran gekoppelt ist bei zwei gleichfrequenten sinusförmigen Schwingungen&lt;br /&gt;
* der [[Phasenverschiebungswinkel]] &amp;lt;math&amp;gt;\Delta \varphi&amp;lt;/math&amp;gt; als die Differenz der Phasenwinkel bzw. Nullphasenwinkel der beiden Schwingungen. Teilweise wird diese Größe auch als „Phasendifferenz“, „Phasenunterschied“ oder „Phasenverschiebung“ bezeichnet.&amp;lt;br /&amp;gt;Anders als der Phasenwinkel ist der Phasenverschiebungswinkel zeitlich eine Konstante.&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
* [[Elektrotechnik]]:&lt;br /&gt;
** Bei [[Elektrische Impedanz|Wechselstromwiderständen]] sind [[Wechselspannung]] und [[Wechselstrom]] gegeneinander in den Phasen verschoben.&lt;br /&gt;
** Bei [[Dreiphasenwechselstrom|Drehstrom]] sind die Spannungsschwingungen in den drei Leitungen um jeweils 120° verschoben.&lt;br /&gt;
* [[Interferenz (Physik)|Interferenz]]: Bei einer [[Superposition (Physik)|Superposition]] zweier oder mehrerer Wellen muss der aktuelle Phasenwinkel aller beteiligten Wellen beachtet werden. Sind die Wellen in dem betrachteten Punkt gleichphasig, so interferieren sie konstruktiv. Zwei gegenphasige Wellen gleicher Amplitude löschen sich gegenseitig aus (destruktive Interferenz).&lt;br /&gt;
* [[Phasenmodulation]]: Gezielte Beeinflussung des Phasenwinkels zur Modulierung eines Trägers in der Nachrichtentechnik.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Theoretische Elektrotechnik]]&lt;br /&gt;
[[Kategorie:Schwingungslehre]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Datei:Leistung-BlindKom.svg&amp;diff=847</id>
		<title>Datei:Leistung-BlindKom.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Datei:Leistung-BlindKom.svg&amp;diff=847"/>
		<updated>2025-11-14T10:50:00Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Konvertierung_kommunikation&amp;diff=844</id>
		<title>Konvertierung kommunikation</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Konvertierung_kommunikation&amp;diff=844"/>
		<updated>2025-09-17T09:41:05Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „= Automatisierte Adressfilterung &amp;amp; XLS-Konvertierung =  == Zweck == Dieses Python-Skript automatisiert die Verarbeitung einer Kommunikations-Exportdatei im alten Excel-Format (.xls). Es konvertiert die Datei in das moderne .xlsx-Format, filtert gültige E-Mail-Adressen und entfernt unerwünschte Typen und Fax-Werte. Anschließend wird eine gefilterte Adressliste exportiert und optional die Quelldatei sowie die konvertierte Datei gelöscht.  == Voraussetzu…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Automatisierte Adressfilterung &amp;amp; XLS-Konvertierung =&lt;br /&gt;
&lt;br /&gt;
== Zweck ==&lt;br /&gt;
Dieses Python-Skript automatisiert die Verarbeitung einer Kommunikations-Exportdatei im alten Excel-Format (.xls). Es konvertiert die Datei in das moderne .xlsx-Format, filtert gültige E-Mail-Adressen und entfernt unerwünschte Typen und Fax-Werte. Anschließend wird eine gefilterte Adressliste exportiert und optional die Quelldatei sowie die konvertierte Datei gelöscht.&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
* Windows-System mit installiertem Microsoft Excel&lt;br /&gt;
* Python 3.x&lt;br /&gt;
* Installierte Python-Module:&lt;br /&gt;
  &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  pip install pandas openpyxl pywin32&lt;br /&gt;
  &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Skript ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import pandas as pd&lt;br /&gt;
import os&lt;br /&gt;
import sys&lt;br /&gt;
from pathlib import Path&lt;br /&gt;
import win32com.client as win32&lt;br /&gt;
&lt;br /&gt;
# j/n-Abfrage&lt;br /&gt;
def jn(prompt: str) -&amp;gt; bool:&lt;br /&gt;
    return input(f&amp;quot;{prompt} (j/n): &amp;quot;).strip().lower() == &amp;quot;j&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# String-Bereinigung&lt;br /&gt;
def clean_str_series(s: pd.Series) -&amp;gt; pd.Series:&lt;br /&gt;
    return s.astype(str).str.strip().str.replace(&amp;quot;\x00&amp;quot;, &amp;quot;&amp;quot;, regex=False)&lt;br /&gt;
&lt;br /&gt;
# XLS → XLSX Konvertierung&lt;br /&gt;
def convert_xls_to_xlsx(xls_path: Path) -&amp;gt; Path:&lt;br /&gt;
    print(&amp;quot;→ Konvertiere .xls in .xlsx...&amp;quot;)&lt;br /&gt;
    excel = win32.gencache.EnsureDispatch(&#039;Excel.Application&#039;)&lt;br /&gt;
    excel.Visible = False&lt;br /&gt;
    wb = excel.Workbooks.Open(str(xls_path))&lt;br /&gt;
    xlsx_path = xls_path.with_suffix(&#039;.xlsx&#039;)&lt;br /&gt;
    wb.SaveAs(str(xlsx_path), FileFormat=51)&lt;br /&gt;
    wb.Close(False)&lt;br /&gt;
    excel.Quit()&lt;br /&gt;
    print(f&amp;quot;→ Konvertierung erfolgreich: {xlsx_path}&amp;quot;)&lt;br /&gt;
    return xlsx_path&lt;br /&gt;
&lt;br /&gt;
# Pfade&lt;br /&gt;
quelldatei = Path(r&amp;quot;C:\kommunikation\Export der Kommunikation für Excel.xls&amp;quot;)&lt;br /&gt;
export_pfad = Path(r&amp;quot;C:\kommunikation&amp;quot;)&lt;br /&gt;
export_pfad.mkdir(parents=True, exist_ok=True)&lt;br /&gt;
export_datei = export_pfad / &amp;quot;newsletter_adressen_gefiltert.xlsx&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Schritt 0: Datei prüfen&lt;br /&gt;
while not quelldatei.exists():&lt;br /&gt;
    print(f&amp;quot;⚠️ Quelldatei nicht gefunden: {quelldatei}&amp;quot;)&lt;br /&gt;
    if jn(&amp;quot;Möchtest du es später erneut versuchen?&amp;quot;):&lt;br /&gt;
        input(&amp;quot;→ Bitte Datei bereitstellen und mit Enter bestätigen...&amp;quot;)&lt;br /&gt;
    else:&lt;br /&gt;
        print(&amp;quot;→ Skript wird beendet.&amp;quot;)&lt;br /&gt;
        sys.exit()&lt;br /&gt;
&lt;br /&gt;
# Schritt 1: Konvertieren&lt;br /&gt;
xlsx_datei = convert_xls_to_xlsx(quelldatei)&lt;br /&gt;
&lt;br /&gt;
# Schritt 2: Laden&lt;br /&gt;
print(&amp;quot;→ Lade konvertierte Datei...&amp;quot;)&lt;br /&gt;
try:&lt;br /&gt;
    df = pd.read_excel(xlsx_datei, engine=&amp;quot;openpyxl&amp;quot;)&lt;br /&gt;
except Exception as e:&lt;br /&gt;
    print(f&amp;quot;⚠️ Fehler beim Einlesen: {e}&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Tipp: pip install openpyxl&amp;quot;)&lt;br /&gt;
    sys.exit()&lt;br /&gt;
print(f&amp;quot;→ Datei geladen: {len(df)} Zeilen&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Schritt 3: E-Mail filtern&lt;br /&gt;
emails = clean_str_series(df[&amp;quot;E-Mail&amp;quot;])&lt;br /&gt;
df = df[emails.str.contains(&amp;quot;@&amp;quot;) &amp;amp; ~emails.str.contains(r&amp;quot;\s&amp;quot;)].copy()&lt;br /&gt;
print(f&amp;quot;→ {len(df)} gültige E-Mail-Adressen&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Schritt 4: Typ/Fax filtern&lt;br /&gt;
typ1 = clean_str_series(df[&amp;quot;Typ - 1&amp;quot;])&lt;br /&gt;
typ13 = clean_str_series(df[&amp;quot;Typ - 13&amp;quot;])&lt;br /&gt;
typ20 = clean_str_series(df[&amp;quot;Typ - 20&amp;quot;])&lt;br /&gt;
fax = clean_str_series(df[&amp;quot;Fax&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
filterbedingungen = (&lt;br /&gt;
    typ1.isin([&amp;quot;H&amp;quot;, &amp;quot;L&amp;quot;]) |&lt;br /&gt;
    (typ13 == &amp;quot;V&amp;quot;) |&lt;br /&gt;
    typ20.isin([&amp;quot;O&amp;quot;, &amp;quot;X&amp;quot;]) |&lt;br /&gt;
    (fax == &amp;quot;$&amp;quot;)&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
df_gefiltert = df[~filterbedingungen].copy()&lt;br /&gt;
print(f&amp;quot;→ {len(df_gefiltert)} Adressen nach Filterung&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Schritt 5: Spalten extrahieren&lt;br /&gt;
df_export = df_gefiltert[[&amp;quot;Adressnr&amp;quot;, &amp;quot;Name&amp;quot;, &amp;quot;Vorname&amp;quot;, &amp;quot;E-Mail&amp;quot;]].copy()&lt;br /&gt;
print(f&amp;quot;→ {df_export.shape[0]} Adressen für Export&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Schritt 6: Export&lt;br /&gt;
try:&lt;br /&gt;
    df_export.to_excel(export_datei, index=False)&lt;br /&gt;
    print(f&amp;quot;→ Export erfolgreich: {export_datei}&amp;quot;)&lt;br /&gt;
except Exception as e:&lt;br /&gt;
    print(f&amp;quot;⚠️ Fehler beim Speichern: {e}&amp;quot;)&lt;br /&gt;
    print(&amp;quot;Tipp: pip install openpyxl&amp;quot;)&lt;br /&gt;
    sys.exit()&lt;br /&gt;
&lt;br /&gt;
# Schritt 7: Löschabfrage&lt;br /&gt;
if jn(&amp;quot;Möchtest du die Quelldatei und die konvertierte Datei löschen?&amp;quot;):&lt;br /&gt;
    try:&lt;br /&gt;
        os.remove(quelldatei)&lt;br /&gt;
        print(&amp;quot;→ Quelldatei gelöscht.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;⚠️ Fehler beim Löschen der Quelldatei: {e}&amp;quot;)&lt;br /&gt;
    try:&lt;br /&gt;
        os.remove(xlsx_datei)&lt;br /&gt;
        print(&amp;quot;→ Konvertierte Datei gelöscht.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;⚠️ Fehler beim Löschen der konvertierten Datei: {e}&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;→ Keine Datei wurde gelöscht.&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nutzung ==&lt;br /&gt;
* Skript lokal speichern, z. B. als &amp;lt;code&amp;gt;export.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* Desktop-Verknüpfung erstellen für schnellen Zugriff&lt;br /&gt;
* Doppelklick genügt – das Skript erledigt alles automatisch&lt;br /&gt;
&lt;br /&gt;
== Erweiterungen ==&lt;br /&gt;
* Zeitstempel im Exportnamen&lt;br /&gt;
* Automatischer E-Mail-Versand&lt;br /&gt;
* Integration in Aufgabenplaner&lt;br /&gt;
* Logging in Textdatei&lt;br /&gt;
&lt;br /&gt;
== Lizenz ==&lt;br /&gt;
Dieses Skript steht unter der GNU-Lizenz für freie Dokumentation.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Ping&amp;diff=843</id>
		<title>Ping</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Ping&amp;diff=843"/>
		<updated>2025-08-28T10:51:57Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „Einfaches Ping-Tool zur Überwachung und Protokollierung von ausfällen&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt; import subprocess import time from datetime import datetime import os  # IP-Adresse deines Servers SERVER_IP = &amp;quot;192.168.1.100&amp;quot;  # ← bitte anpassen  # Ping-Intervall in Sekunden PING_INTERVAL = 10  # Logdatei im aktuellen Verzeichnis LOG_FILE = os.path.join(os.getcwd(), &amp;quot;ping_log.txt&amp;quot;)  def ping_server(ip):     try:         # Windows verwendet &amp;#039;-n&amp;#039; stat…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einfaches Ping-Tool zur Überwachung und Protokollierung von ausfällen&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import subprocess&lt;br /&gt;
import time&lt;br /&gt;
from datetime import datetime&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# IP-Adresse deines Servers&lt;br /&gt;
SERVER_IP = &amp;quot;192.168.1.100&amp;quot;  # ← bitte anpassen&lt;br /&gt;
&lt;br /&gt;
# Ping-Intervall in Sekunden&lt;br /&gt;
PING_INTERVAL = 10&lt;br /&gt;
&lt;br /&gt;
# Logdatei im aktuellen Verzeichnis&lt;br /&gt;
LOG_FILE = os.path.join(os.getcwd(), &amp;quot;ping_log.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def ping_server(ip):&lt;br /&gt;
    try:&lt;br /&gt;
        # Windows verwendet &#039;-n&#039; statt &#039;-c&#039;&lt;br /&gt;
        result = subprocess.run([&#039;ping&#039;, &#039;-n&#039;, &#039;1&#039;, ip], stdout=subprocess.DEVNULL)&lt;br /&gt;
        return result.returncode == 0&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Fehler beim Pingen: {e}&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def log_event(message):&lt;br /&gt;
    with open(LOG_FILE, &amp;quot;a&amp;quot;) as f:&lt;br /&gt;
        f.write(f&amp;quot;{datetime.now()} - {message}\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
def monitor():&lt;br /&gt;
    print(f&amp;quot;Starte Überwachung von {SERVER_IP}...\n&amp;quot;)&lt;br /&gt;
    down_since = None&lt;br /&gt;
&lt;br /&gt;
    while True:&lt;br /&gt;
        if ping_server(SERVER_IP):&lt;br /&gt;
            print(f&amp;quot;{datetime.now()} - Ping erfolgreich.&amp;quot;)&lt;br /&gt;
            if down_since:&lt;br /&gt;
                duration = datetime.now() - down_since&lt;br /&gt;
                log_event(f&amp;quot;Server wieder erreichbar. Ausfall dauerte {duration}.&amp;quot;)&lt;br /&gt;
                down_since = None&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;{datetime.now()} - ❌ Server nicht erreichbar!&amp;quot;)&lt;br /&gt;
            if not down_since:&lt;br /&gt;
                down_since = datetime.now()&lt;br /&gt;
                log_event(&amp;quot;Server nicht erreichbar.&amp;quot;)&lt;br /&gt;
        time.sleep(PING_INTERVAL)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    monitor()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server_Backup&amp;diff=842</id>
		<title>Microsoft SQL Server Backup</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server_Backup&amp;diff=842"/>
		<updated>2025-08-19T09:59:15Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 1. Backup-Skript erstellen === Erstelle z. B. eine Datei namens &amp;lt;code&amp;gt;sqlbackup.ps1&amp;lt;/code&amp;gt; mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt; $timestamp = Get-Date -Format &amp;quot;yyyyMMdd_HHmmss&amp;quot; $backupPath = &amp;quot;C:\SQLBackups\MyDatabase_$timestamp.bak&amp;quot; $sql = &amp;quot;BACKUP DATABASE [MyDatabase] TO DISK = N&#039;$backupPath&#039; WITH INIT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Invoke-Sqlcmd -Query $sql -ServerInstance &amp;quot;localhost\SQLEXPRESS&amp;quot; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ersetze &amp;lt;code&amp;gt;MyDatabase&amp;lt;/code&amp;gt; mit dem Namen deiner Datenbank&lt;br /&gt;
&lt;br /&gt;
Stelle sicher, dass der Ordner &amp;lt;code&amp;gt;C:\SQLBackups&amp;lt;/code&amp;gt; existiert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-Sqlcmd&amp;lt;/code&amp;gt; ist Teil der &#039;&#039;SQL Server PowerShell Tools&#039;&#039; (ggf. über &amp;lt;code&amp;gt;SqlServer&amp;lt;/code&amp;gt;-Modul installieren)&lt;br /&gt;
&lt;br /&gt;
=== 2. Aufgabenplanung einrichten ===&lt;br /&gt;
&lt;br /&gt;
Öffne die &#039;&#039;Windows Aufgabenplanung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue Aufgabe erstellen: ** Trigger: Täglich oder nach Wunsch ** Aktion: &amp;lt;code&amp;gt;powershell.exe&amp;lt;/code&amp;gt; mit Argument: &amp;lt;syntaxhighlight lang=&amp;quot;dos&amp;quot;&amp;gt; -File &amp;quot;C:\Pfad\zu\sqlbackup.ps1&amp;quot; &amp;lt;/syntaxhighlight&amp;gt; ** Option: Mit höchsten Privilegien ausführen&lt;br /&gt;
&lt;br /&gt;
=== 3. Backup prüfen ===&lt;br /&gt;
&lt;br /&gt;
Nach Ausführung sollte im Ordner &amp;lt;code&amp;gt;C:\SQLBackups&amp;lt;/code&amp;gt; eine &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt;-Datei mit Zeitstempel liegen&lt;br /&gt;
&lt;br /&gt;
Diese kann später für Wiederherstellung verwendet werden: &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt; RESTORE DATABASE [MyDatabase] FROM DISK = N&#039;C:\SQLBackups\MyDatabase_20250819_1154.bak&#039; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hinweis ===&lt;br /&gt;
Du kannst auch mehrere Datenbanken sichern, indem du das Skript entsprechend erweiterst&lt;br /&gt;
&lt;br /&gt;
Für E-Mail-Benachrichtigungen bei Erfolg/Fehler kannst du PowerShell mit SMTP ergänzen&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MS SQL]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server_Backup&amp;diff=841</id>
		<title>Microsoft SQL Server Backup</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server_Backup&amp;diff=841"/>
		<updated>2025-08-19T09:56:12Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* Hinweis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 1. Backup-Skript erstellen === Erstelle z. B. eine Datei namens &amp;lt;code&amp;gt;sqlbackup.ps1&amp;lt;/code&amp;gt; mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt; $timestamp = Get-Date -Format &amp;quot;yyyyMMdd_HHmmss&amp;quot; $backupPath = &amp;quot;C:\SQLBackups\MyDatabase_$timestamp.bak&amp;quot; $sql = &amp;quot;BACKUP DATABASE [MyDatabase] TO DISK = N&#039;$backupPath&#039; WITH INIT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Invoke-Sqlcmd -Query $sql -ServerInstance &amp;quot;localhost\SQLEXPRESS&amp;quot; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ersetze &amp;lt;code&amp;gt;MyDatabase&amp;lt;/code&amp;gt; mit dem Namen deiner Datenbank&lt;br /&gt;
&lt;br /&gt;
Stelle sicher, dass der Ordner &amp;lt;code&amp;gt;C:\SQLBackups&amp;lt;/code&amp;gt; existiert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-Sqlcmd&amp;lt;/code&amp;gt; ist Teil der &#039;&#039;SQL Server PowerShell Tools&#039;&#039; (ggf. über &amp;lt;code&amp;gt;SqlServer&amp;lt;/code&amp;gt;-Modul installieren)&lt;br /&gt;
&lt;br /&gt;
=== 2. Aufgabenplanung einrichten ===&lt;br /&gt;
&lt;br /&gt;
Öffne die &#039;&#039;Windows Aufgabenplanung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue Aufgabe erstellen: ** Trigger: Täglich oder nach Wunsch ** Aktion: &amp;lt;code&amp;gt;powershell.exe&amp;lt;/code&amp;gt; mit Argument: &amp;lt;syntaxhighlight lang=&amp;quot;dos&amp;quot;&amp;gt; -File &amp;quot;C:\Pfad\zu\sqlbackup.ps1&amp;quot; &amp;lt;/syntaxhighlight&amp;gt; ** Option: Mit höchsten Privilegien ausführen&lt;br /&gt;
&lt;br /&gt;
=== 3. Backup prüfen ===&lt;br /&gt;
&lt;br /&gt;
Nach Ausführung sollte im Ordner &amp;lt;code&amp;gt;C:\SQLBackups&amp;lt;/code&amp;gt; eine &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt;-Datei mit Zeitstempel liegen&lt;br /&gt;
&lt;br /&gt;
Diese kann später für Wiederherstellung verwendet werden: &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt; RESTORE DATABASE [MyDatabase] FROM DISK = N&#039;C:\SQLBackups\MyDatabase_20250819_1154.bak&#039; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hinweis ===&lt;br /&gt;
Du kannst auch mehrere Datenbanken sichern, indem du das Skript entsprechend erweiterst&lt;br /&gt;
&lt;br /&gt;
Für E-Mail-Benachrichtigungen bei Erfolg/Fehler kannst du PowerShell mit SMTP ergänzen&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server_Backup&amp;diff=840</id>
		<title>Microsoft SQL Server Backup</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server_Backup&amp;diff=840"/>
		<updated>2025-08-19T09:55:50Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „=== 1. Backup-Skript erstellen === Erstelle z. B. eine Datei namens &amp;lt;code&amp;gt;sqlbackup.ps1&amp;lt;/code&amp;gt; mit folgendem Inhalt:  &amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt; $timestamp = Get-Date -Format &amp;quot;yyyyMMdd_HHmmss&amp;quot; $backupPath = &amp;quot;C:\SQLBackups\MyDatabase_$timestamp.bak&amp;quot; $sql = &amp;quot;BACKUP DATABASE [MyDatabase] TO DISK = N&amp;#039;$backupPath&amp;#039; WITH INIT&amp;quot;  Invoke-Sqlcmd -Query $sql -ServerInstance &amp;quot;localhost\SQLEXPRESS&amp;quot; &amp;lt;/syntaxhighlight&amp;gt;  Ersetze &amp;lt;code&amp;gt;MyDatabase&amp;lt;/code&amp;gt; mit dem…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 1. Backup-Skript erstellen === Erstelle z. B. eine Datei namens &amp;lt;code&amp;gt;sqlbackup.ps1&amp;lt;/code&amp;gt; mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt; $timestamp = Get-Date -Format &amp;quot;yyyyMMdd_HHmmss&amp;quot; $backupPath = &amp;quot;C:\SQLBackups\MyDatabase_$timestamp.bak&amp;quot; $sql = &amp;quot;BACKUP DATABASE [MyDatabase] TO DISK = N&#039;$backupPath&#039; WITH INIT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Invoke-Sqlcmd -Query $sql -ServerInstance &amp;quot;localhost\SQLEXPRESS&amp;quot; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ersetze &amp;lt;code&amp;gt;MyDatabase&amp;lt;/code&amp;gt; mit dem Namen deiner Datenbank&lt;br /&gt;
&lt;br /&gt;
Stelle sicher, dass der Ordner &amp;lt;code&amp;gt;C:\SQLBackups&amp;lt;/code&amp;gt; existiert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Invoke-Sqlcmd&amp;lt;/code&amp;gt; ist Teil der &#039;&#039;SQL Server PowerShell Tools&#039;&#039; (ggf. über &amp;lt;code&amp;gt;SqlServer&amp;lt;/code&amp;gt;-Modul installieren)&lt;br /&gt;
&lt;br /&gt;
=== 2. Aufgabenplanung einrichten ===&lt;br /&gt;
&lt;br /&gt;
Öffne die &#039;&#039;Windows Aufgabenplanung&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Neue Aufgabe erstellen: ** Trigger: Täglich oder nach Wunsch ** Aktion: &amp;lt;code&amp;gt;powershell.exe&amp;lt;/code&amp;gt; mit Argument: &amp;lt;syntaxhighlight lang=&amp;quot;dos&amp;quot;&amp;gt; -File &amp;quot;C:\Pfad\zu\sqlbackup.ps1&amp;quot; &amp;lt;/syntaxhighlight&amp;gt; ** Option: Mit höchsten Privilegien ausführen&lt;br /&gt;
&lt;br /&gt;
=== 3. Backup prüfen ===&lt;br /&gt;
&lt;br /&gt;
Nach Ausführung sollte im Ordner &amp;lt;code&amp;gt;C:\SQLBackups&amp;lt;/code&amp;gt; eine &amp;lt;code&amp;gt;.bak&amp;lt;/code&amp;gt;-Datei mit Zeitstempel liegen&lt;br /&gt;
&lt;br /&gt;
Diese kann später für Wiederherstellung verwendet werden: &amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt; RESTORE DATABASE [MyDatabase] FROM DISK = N&#039;C:\SQLBackups\MyDatabase_20250819_1154.bak&#039; &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hinweis ===&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server&amp;diff=839</id>
		<title>Microsoft SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server&amp;diff=839"/>
		<updated>2025-08-19T09:52:05Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation und Konfiguration von SQL Server Express 2022 ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Installation ===&lt;br /&gt;
* Lade den Installer von der offiziellen Microsoft-Seite herunter.&lt;br /&gt;
* Starte die Installation im &#039;&#039;Benutzermodus&#039;&#039; oder &#039;&#039;Basic-Modus&#039;&#039;.&lt;br /&gt;
* Wähle eine &#039;&#039;Named Instance&#039;&#039; (z. B. &amp;lt;code&amp;gt;SQLEXPRESS&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== 2. TCP/IP aktivieren ===&lt;br /&gt;
* Öffne den &#039;&#039;SQL Server Configuration Manager&#039;&#039;.&lt;br /&gt;
* Navigiere zu: &#039;&#039;&#039;SQL Server-Netzwerkkonfiguration &amp;gt; Protokolle für SQLEXPRESS&#039;&#039;&#039;&lt;br /&gt;
* Aktiviere &#039;&#039;&#039;TCP/IP&#039;&#039;&#039; per Rechtsklick → &#039;&#039;Aktivieren&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 3. Port 1433 festlegen ===&lt;br /&gt;
* Doppelklick auf &#039;&#039;&#039;TCP/IP&#039;&#039;&#039; → Reiter &#039;&#039;&#039;IP-Adressen&#039;&#039;&#039;.&lt;br /&gt;
* Scrolle ganz nach unten zu &#039;&#039;&#039;IPAll&#039;&#039;&#039;.&lt;br /&gt;
** &amp;lt;code&amp;gt;TCP Dynamic Ports&amp;lt;/code&amp;gt; → leer lassen&lt;br /&gt;
** &amp;lt;code&amp;gt;TCP Port&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;1433&amp;lt;/code&amp;gt; eintragen&lt;br /&gt;
* Optional: Bei anderen IP-Einträgen ebenfalls &amp;lt;code&amp;gt;TCP Port = 1433&amp;lt;/code&amp;gt; setzen.&lt;br /&gt;
&lt;br /&gt;
=== 4. SQL-Dienst neu starten ===&lt;br /&gt;
* Gehe zu: &#039;&#039;&#039;SQL Server-Dienste &amp;gt; SQL Server (SQLEXPRESS)&#039;&#039;&#039;&lt;br /&gt;
* Rechtsklick → &#039;&#039;Neu starten&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 5. Firewall-Regel hinzufügen ===&lt;br /&gt;
* Öffne die &#039;&#039;Windows Defender Firewall mit erweiterter Sicherheit&#039;&#039;.&lt;br /&gt;
* Erstelle eine &#039;&#039;&#039;eingehende Regel&#039;&#039;&#039;:&lt;br /&gt;
** Programm: &amp;lt;code&amp;gt;sqlservr.exe&amp;lt;/code&amp;gt; (Pfad z. B. &amp;lt;code&amp;gt;C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\Binn\sqlservr.exe&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Port: TCP 1433&lt;br /&gt;
** Profil: Domäne, Privat, Öffentlich (je nach Bedarf)&lt;br /&gt;
** Aktion: &#039;&#039;Zulassen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 6. Verbindung testen ===&lt;br /&gt;
* Mit PowerShell:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Test-NetConnection -ComputerName &amp;lt;Server-IP&amp;gt; -Port 1433&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Alternativ mit Telnet (falls aktiviert):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dos&amp;quot;&amp;gt;&lt;br /&gt;
telnet &amp;lt;Server-IP&amp;gt; 1433&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Zugriff mit HeidiSQL prüfen ===&lt;br /&gt;
* Verbindungstyp: &#039;&#039;&#039;Microsoft SQL Server (TCP/IP)&#039;&#039;&#039;&lt;br /&gt;
* Hostname/IP: &amp;lt;code&amp;gt;&amp;amp;lt;Server-IP&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Port: &amp;lt;code&amp;gt;1433&amp;lt;/code&amp;gt;&lt;br /&gt;
* Benutzername &amp;amp; Passwort: entsprechend konfigurieren&lt;br /&gt;
* Nach erfolgreicher Verbindung sollte die Datenbank sichtbar sein.&lt;br /&gt;
&lt;br /&gt;
=== Hinweis ===&lt;br /&gt;
Falls Telnet nicht installiert ist, kann es über CMD aktiviert werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dos&amp;quot;&amp;gt;&lt;br /&gt;
dism /online /Enable-Feature /FeatureName:TelnetClient&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ToDo: SQL Server Express 2022 ==&lt;br /&gt;
* [ ] Installer herunterladen und ausführen&lt;br /&gt;
* [ ] Named Instance erstellen (z. B. SQLEXPRESS)&lt;br /&gt;
* [ ] TCP/IP aktivieren im Configuration Manager&lt;br /&gt;
* [ ] Port 1433 unter IPAll setzen&lt;br /&gt;
* [ ] SQL-Dienst neu starten&lt;br /&gt;
* [ ] Firewall-Regel für sqlservr.exe und Port 1433 erstellen&lt;br /&gt;
* [ ] Verbindung mit PowerShell oder Telnet testen&lt;br /&gt;
* [ ] Zugriff mit HeidiSQL prüfen&lt;br /&gt;
* [ ] Telnet-Client ggf. über CMD aktivieren&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server&amp;diff=838</id>
		<title>Microsoft SQL Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Microsoft_SQL_Server&amp;diff=838"/>
		<updated>2025-08-19T09:49:44Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== Installation und Konfiguration von SQL Server Express 2022 ==  === 1. Installation === * Lade den Installer von der offiziellen Microsoft-Seite herunter. * Starte die Installation im &amp;#039;&amp;#039;Benutzermodus&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Basic-Modus&amp;#039;&amp;#039;. * Wähle eine &amp;#039;&amp;#039;Named Instance&amp;#039;&amp;#039; (z. B. &amp;lt;code&amp;gt;SQLEXPRESS&amp;lt;/code&amp;gt;).  === 2. TCP/IP aktivieren === * Öffne den &amp;#039;&amp;#039;SQL Server Configuration Manager&amp;#039;&amp;#039;. * Navigiere zu: &amp;#039;&amp;#039;&amp;#039;SQL Server-Netzwerkkonfiguration &amp;gt; Protokolle für SQLEXPRESS&amp;#039;&amp;#039;&amp;#039;…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Installation und Konfiguration von SQL Server Express 2022 ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Installation ===&lt;br /&gt;
* Lade den Installer von der offiziellen Microsoft-Seite herunter.&lt;br /&gt;
* Starte die Installation im &#039;&#039;Benutzermodus&#039;&#039; oder &#039;&#039;Basic-Modus&#039;&#039;.&lt;br /&gt;
* Wähle eine &#039;&#039;Named Instance&#039;&#039; (z. B. &amp;lt;code&amp;gt;SQLEXPRESS&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== 2. TCP/IP aktivieren ===&lt;br /&gt;
* Öffne den &#039;&#039;SQL Server Configuration Manager&#039;&#039;.&lt;br /&gt;
* Navigiere zu: &#039;&#039;&#039;SQL Server-Netzwerkkonfiguration &amp;gt; Protokolle für SQLEXPRESS&#039;&#039;&#039;&lt;br /&gt;
* Aktiviere &#039;&#039;&#039;TCP/IP&#039;&#039;&#039; per Rechtsklick → &#039;&#039;Aktivieren&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 3. Port 1433 festlegen ===&lt;br /&gt;
* Doppelklick auf &#039;&#039;&#039;TCP/IP&#039;&#039;&#039; → Reiter &#039;&#039;&#039;IP-Adressen&#039;&#039;&#039;.&lt;br /&gt;
* Scrolle ganz nach unten zu &#039;&#039;&#039;IPAll&#039;&#039;&#039;.&lt;br /&gt;
** &amp;lt;code&amp;gt;TCP Dynamic Ports&amp;lt;/code&amp;gt; → leer lassen&lt;br /&gt;
** &amp;lt;code&amp;gt;TCP Port&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;1433&amp;lt;/code&amp;gt; eintragen&lt;br /&gt;
* Optional: Bei anderen IP-Einträgen ebenfalls &amp;lt;code&amp;gt;TCP Port = 1433&amp;lt;/code&amp;gt; setzen.&lt;br /&gt;
&lt;br /&gt;
=== 4. SQL-Dienst neu starten ===&lt;br /&gt;
* Gehe zu: &#039;&#039;&#039;SQL Server-Dienste &amp;gt; SQL Server (SQLEXPRESS)&#039;&#039;&#039;&lt;br /&gt;
* Rechtsklick → &#039;&#039;Neu starten&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 5. Firewall-Regel hinzufügen ===&lt;br /&gt;
* Öffne die &#039;&#039;Windows Defender Firewall mit erweiterter Sicherheit&#039;&#039;.&lt;br /&gt;
* Erstelle eine &#039;&#039;&#039;eingehende Regel&#039;&#039;&#039;:&lt;br /&gt;
** Programm: &amp;lt;code&amp;gt;sqlservr.exe&amp;lt;/code&amp;gt; (Pfad z. B. &amp;lt;code&amp;gt;C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\Binn\sqlservr.exe&amp;lt;/code&amp;gt;)&lt;br /&gt;
** Port: TCP 1433&lt;br /&gt;
** Profil: Domäne, Privat, Öffentlich (je nach Bedarf)&lt;br /&gt;
** Aktion: &#039;&#039;Zulassen&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== 6. Verbindung testen ===&lt;br /&gt;
* Mit PowerShell:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Test-NetConnection -ComputerName &amp;lt;Server-IP&amp;gt; -Port 1433&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Alternativ mit Telnet (falls aktiviert):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dos&amp;quot;&amp;gt;&lt;br /&gt;
telnet &amp;lt;Server-IP&amp;gt; 1433&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Zugriff mit HeidiSQL prüfen ===&lt;br /&gt;
* Verbindungstyp: &#039;&#039;&#039;Microsoft SQL Server (TCP/IP)&#039;&#039;&#039;&lt;br /&gt;
* Hostname/IP: &amp;lt;code&amp;gt;&amp;amp;lt;Server-IP&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Port: &amp;lt;code&amp;gt;1433&amp;lt;/code&amp;gt;&lt;br /&gt;
* Benutzername &amp;amp; Passwort: entsprechend konfigurieren&lt;br /&gt;
* Nach erfolgreicher Verbindung sollte die Datenbank sichtbar sein.&lt;br /&gt;
&lt;br /&gt;
=== Hinweis ===&lt;br /&gt;
Falls Telnet nicht installiert ist, kann es über CMD aktiviert werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;dos&amp;quot;&amp;gt;&lt;br /&gt;
dism /online /Enable-Feature /FeatureName:TelnetClient&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=836</id>
		<title>Backup-Rotation mit PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=836"/>
		<updated>2025-08-13T12:54:15Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* PowerShell: Nur die 5 neuesten Sicherungsdateien behalten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PowerShell: Nur die 5 neuesten Sicherungsdateien behalten ==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner &amp;lt;code&amp;gt;C:\datensicherungtask&amp;lt;/code&amp;gt;, sodass nur die 5 neuesten Sicherungen erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$Pfad = &amp;quot;C:\datensicherungtask&amp;quot;&lt;br /&gt;
$Dateien = Get-ChildItem -Path $Pfad -Filter &amp;quot;dasi*.zip&amp;quot; | Sort-Object LastWriteTime -Descending&lt;br /&gt;
$ZuLöschen = $Dateien | Select-Object -Skip 5&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force -ErrorAction SilentlyContinue&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verwendung in der Aufgabenplanung ===&lt;br /&gt;
# Öffne die Windows-Aufgabenplanung.&lt;br /&gt;
# Erstelle eine neue Aufgabe mit einem täglichen Trigger (z. B. 23:59 Uhr).&lt;br /&gt;
# Als Aktion:&lt;br /&gt;
## Programm/Skript: &amp;lt;code&amp;gt;powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
## Argumente: &amp;lt;code&amp;gt;-ExecutionPolicy Bypass -File \&amp;quot;C:\Pfad\zu\deinem\Skript.ps1\&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Speichern und aktivieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Stelle sicher, dass das Skript unter einem Benutzerkonto mit ausreichenden Rechten läuft und dass PowerShell-Skripte erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
=== Erweiterungsmöglichkeiten ===&lt;br /&gt;
* Logdatei mit Datum und gelöschten Dateien&lt;br /&gt;
* E-Mail-Benachrichtigung bei Löschvorgängen&lt;br /&gt;
* Prüfung auf Mindestanzahl vor dem Löschen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Erweiterung: Logging ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$LogPfad = &amp;quot;C:\datensicherungtask\cleanup.log&amp;quot;&lt;br /&gt;
Add-Content -Path $LogPfad -Value &amp;quot;Cleanup am $(Get-Date):&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
    Add-Content -Path $LogPfad -Value &amp;quot;Gelöscht: $($Datei.Name)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispielausgabe der Logdatei ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cleanup am 13.08.2025:&lt;br /&gt;
Gelöscht: dasi20250730.zip&lt;br /&gt;
Gelöscht: dasi20250731.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Powershell Scripte]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=835</id>
		<title>Backup-Rotation mit PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=835"/>
		<updated>2025-08-13T12:52:24Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* Skriptinhalt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PowerShell: Nur die 5 neuesten Sicherungsdateien behalten ==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner &amp;lt;code&amp;gt;C:\datensicherungtask&amp;lt;/code&amp;gt;, sodass nur die 5 neuesten Sicherungen erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$Pfad = &amp;quot;C:\datensicherungtask&amp;quot;&lt;br /&gt;
$Dateien = Get-ChildItem -Path $Pfad -Filter &amp;quot;dasi*.zip&amp;quot; | Sort-Object LastWriteTime -Descending&lt;br /&gt;
$ZuLöschen = $Dateien | Select-Object -Skip 5&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verwendung in der Aufgabenplanung ===&lt;br /&gt;
# Öffne die Windows-Aufgabenplanung.&lt;br /&gt;
# Erstelle eine neue Aufgabe mit einem täglichen Trigger (z. B. 23:59 Uhr).&lt;br /&gt;
# Als Aktion:&lt;br /&gt;
## Programm/Skript: &amp;lt;code&amp;gt;powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
## Argumente: &amp;lt;code&amp;gt;-ExecutionPolicy Bypass -File \&amp;quot;C:\Pfad\zu\deinem\Skript.ps1\&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Speichern und aktivieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Stelle sicher, dass das Skript unter einem Benutzerkonto mit ausreichenden Rechten läuft und dass PowerShell-Skripte erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
=== Erweiterungsmöglichkeiten ===&lt;br /&gt;
* Logdatei mit Datum und gelöschten Dateien&lt;br /&gt;
* E-Mail-Benachrichtigung bei Löschvorgängen&lt;br /&gt;
* Prüfung auf Mindestanzahl vor dem Löschen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Erweiterung: Logging ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$LogPfad = &amp;quot;C:\datensicherungtask\cleanup.log&amp;quot;&lt;br /&gt;
Add-Content -Path $LogPfad -Value &amp;quot;Cleanup am $(Get-Date):&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
    Add-Content -Path $LogPfad -Value &amp;quot;Gelöscht: $($Datei.Name)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispielausgabe der Logdatei ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cleanup am 13.08.2025:&lt;br /&gt;
Gelöscht: dasi20250730.zip&lt;br /&gt;
Gelöscht: dasi20250731.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Powershell Scripte]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=834</id>
		<title>Backup-Rotation mit PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=834"/>
		<updated>2025-08-13T12:51:13Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PowerShell: Nur die 5 neuesten Sicherungsdateien behalten ==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner &amp;lt;code&amp;gt;C:\datensicherungtask&amp;lt;/code&amp;gt;, sodass nur die 5 neuesten Sicherungen erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
=== Skriptinhalt ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$Pfad = &amp;quot;C:\datensicherungtask&amp;quot;&lt;br /&gt;
$Dateien = Get-ChildItem -Path $Pfad -Filter &amp;quot;dasi*.zip&amp;quot; | Sort-Object LastWriteTime -Descending&lt;br /&gt;
$ZuLöschen = $Dateien | Select-Object -Skip 5&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verwendung in der Aufgabenplanung ===&lt;br /&gt;
# Öffne die Windows-Aufgabenplanung.&lt;br /&gt;
# Erstelle eine neue Aufgabe mit einem täglichen Trigger (z. B. 23:59 Uhr).&lt;br /&gt;
# Als Aktion:&lt;br /&gt;
## Programm/Skript: &amp;lt;code&amp;gt;powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
## Argumente: &amp;lt;code&amp;gt;-ExecutionPolicy Bypass -File \&amp;quot;C:\Pfad\zu\deinem\Skript.ps1\&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Speichern und aktivieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Stelle sicher, dass das Skript unter einem Benutzerkonto mit ausreichenden Rechten läuft und dass PowerShell-Skripte erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
=== Erweiterungsmöglichkeiten ===&lt;br /&gt;
* Logdatei mit Datum und gelöschten Dateien&lt;br /&gt;
* E-Mail-Benachrichtigung bei Löschvorgängen&lt;br /&gt;
* Prüfung auf Mindestanzahl vor dem Löschen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Erweiterung: Logging ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$LogPfad = &amp;quot;C:\datensicherungtask\cleanup.log&amp;quot;&lt;br /&gt;
Add-Content -Path $LogPfad -Value &amp;quot;Cleanup am $(Get-Date):&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
    Add-Content -Path $LogPfad -Value &amp;quot;Gelöscht: $($Datei.Name)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispielausgabe der Logdatei ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cleanup am 13.08.2025:&lt;br /&gt;
Gelöscht: dasi20250730.zip&lt;br /&gt;
Gelöscht: dasi20250731.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Powershell Scripte]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=833</id>
		<title>Backup-Rotation mit PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=833"/>
		<updated>2025-08-13T12:48:54Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PowerShell: Nur die 5 neuesten Sicherungsdateien behalten ==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner &amp;lt;code&amp;gt;C:\datensicherungtask&amp;lt;/code&amp;gt;, sodass nur die 5 neuesten Sicherungen erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
=== Skriptinhalt ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$Pfad = &amp;quot;C:\datensicherungtask&amp;quot;&lt;br /&gt;
$Dateien = Get-ChildItem -Path $Pfad -Filter &amp;quot;dasi*.zip&amp;quot; | Sort-Object LastWriteTime -Descending&lt;br /&gt;
$ZuLöschen = $Dateien | Select-Object -Skip 5&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verwendung in der Aufgabenplanung ===&lt;br /&gt;
# Öffne die Windows-Aufgabenplanung.&lt;br /&gt;
# Erstelle eine neue Aufgabe mit einem täglichen Trigger (z. B. 23:59 Uhr).&lt;br /&gt;
# Als Aktion:&lt;br /&gt;
## Programm/Skript: &amp;lt;code&amp;gt;powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
## Argumente: &amp;lt;code&amp;gt;-ExecutionPolicy Bypass -File \&amp;quot;C:\Pfad\zu\deinem\Skript.ps1\&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Speichern und aktivieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Stelle sicher, dass das Skript unter einem Benutzerkonto mit ausreichenden Rechten läuft und dass PowerShell-Skripte erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
=== Erweiterungsmöglichkeiten ===&lt;br /&gt;
* Logdatei mit Datum und gelöschten Dateien&lt;br /&gt;
* E-Mail-Benachrichtigung bei Löschvorgängen&lt;br /&gt;
* Prüfung auf Mindestanzahl vor dem Löschen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Erweiterung: Logging ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$LogPfad = &amp;quot;C:\datensicherungtask\cleanup.log&amp;quot;&lt;br /&gt;
Add-Content -Path $LogPfad -Value &amp;quot;Cleanup am $(Get-Date):&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
    Add-Content -Path $LogPfad -Value &amp;quot;Gelöscht: $($Datei.Name)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispielausgabe der Logdatei ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cleanup am 13.08.2025:&lt;br /&gt;
Gelöscht: dasi20250730.zip&lt;br /&gt;
Gelöscht: dasi20250731.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Powershell]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=832</id>
		<title>Backup-Rotation mit PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=832"/>
		<updated>2025-08-13T12:48:06Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PowerShell: Nur die 5 neuesten Sicherungsdateien behalten ==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner &amp;lt;code&amp;gt;C:\datensicherungtask&amp;lt;/code&amp;gt;, sodass nur die 5 neuesten Sicherungen erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
=== Skriptinhalt ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$Pfad = &amp;quot;C:\datensicherungtask&amp;quot;&lt;br /&gt;
$Dateien = Get-ChildItem -Path $Pfad -Filter &amp;quot;dasi*.zip&amp;quot; | Sort-Object LastWriteTime -Descending&lt;br /&gt;
$ZuLöschen = $Dateien | Select-Object -Skip 5&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verwendung in der Aufgabenplanung ===&lt;br /&gt;
# Öffne die Windows-Aufgabenplanung.&lt;br /&gt;
# Erstelle eine neue Aufgabe mit einem täglichen Trigger (z. B. 23:59 Uhr).&lt;br /&gt;
# Als Aktion:&lt;br /&gt;
## Programm/Skript: &amp;lt;code&amp;gt;powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
## Argumente: &amp;lt;code&amp;gt;-ExecutionPolicy Bypass -File \&amp;quot;C:\Pfad\zu\deinem\Skript.ps1\&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Speichern und aktivieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Stelle sicher, dass das Skript unter einem Benutzerkonto mit ausreichenden Rechten läuft und dass PowerShell-Skripte erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
=== Erweiterungsmöglichkeiten ===&lt;br /&gt;
* Logdatei mit Datum und gelöschten Dateien&lt;br /&gt;
* E-Mail-Benachrichtigung bei Löschvorgängen&lt;br /&gt;
* Prüfung auf Mindestanzahl vor dem Löschen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Erweiterung: Logging ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$LogPfad = &amp;quot;C:\datensicherungtask\cleanup.log&amp;quot;&lt;br /&gt;
Add-Content -Path $LogPfad -Value &amp;quot;Cleanup am $(Get-Date):&amp;quot;&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
    Add-Content -Path $LogPfad -Value &amp;quot;Gelöscht: $($Datei.Name)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Powershell]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=831</id>
		<title>Backup-Rotation mit PowerShell</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Backup-Rotation_mit_PowerShell&amp;diff=831"/>
		<updated>2025-08-13T12:46:24Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== PowerShell: Nur die 5 neuesten Sicherungsdateien behalten ==  Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner &amp;lt;code&amp;gt;C:\datensicherungtask&amp;lt;/code&amp;gt;, sodass nur die 5 neuesten Sicherungen erhalten bleiben.  === Skriptinhalt === &amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt; $Pfad = &amp;quot;C:\datensicherungtask&amp;quot; $Dateien = Get-ChildItem -Path $Pfad -Filter &amp;quot;dasi*.zip&amp;quot; | Sort-Object LastWriteTime -Descending $ZuLöschen = $Dateien | Select-Object -Skip…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PowerShell: Nur die 5 neuesten Sicherungsdateien behalten ==&lt;br /&gt;
&lt;br /&gt;
Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner &amp;lt;code&amp;gt;C:\datensicherungtask&amp;lt;/code&amp;gt;, sodass nur die 5 neuesten Sicherungen erhalten bleiben.&lt;br /&gt;
&lt;br /&gt;
=== Skriptinhalt ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
$Pfad = &amp;quot;C:\datensicherungtask&amp;quot;&lt;br /&gt;
$Dateien = Get-ChildItem -Path $Pfad -Filter &amp;quot;dasi*.zip&amp;quot; | Sort-Object LastWriteTime -Descending&lt;br /&gt;
$ZuLöschen = $Dateien | Select-Object -Skip 5&lt;br /&gt;
&lt;br /&gt;
foreach ($Datei in $ZuLöschen) {&lt;br /&gt;
    Remove-Item $Datei.FullName -Force&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Verwendung in der Aufgabenplanung ===&lt;br /&gt;
# Öffne die Windows-Aufgabenplanung.&lt;br /&gt;
# Erstelle eine neue Aufgabe mit einem täglichen Trigger (z. B. 23:59 Uhr).&lt;br /&gt;
# Als Aktion:&lt;br /&gt;
## Programm/Skript: &amp;lt;code&amp;gt;powershell&amp;lt;/code&amp;gt;&lt;br /&gt;
## Argumente: &amp;lt;code&amp;gt;-ExecutionPolicy Bypass -File \&amp;quot;C:\Pfad\zu\deinem\Skript.ps1\&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Speichern und aktivieren.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Stelle sicher, dass das Skript unter einem Benutzerkonto mit ausreichenden Rechten läuft und dass PowerShell-Skripte erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
=== Erweiterungsmöglichkeiten ===&lt;br /&gt;
* Logdatei mit Datum und gelöschten Dateien&lt;br /&gt;
* E-Mail-Benachrichtigung bei Löschvorgängen&lt;br /&gt;
* Prüfung auf Mindestanzahl vor dem Löschen&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Powershell]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Imagick&amp;diff=830</id>
		<title>Imagick</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Imagick&amp;diff=830"/>
		<updated>2025-08-13T07:35:16Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Imagick unter IIS auf Windows Server integrieren ==&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
Diese Anleitung beschreibt die Einrichtung der PHP-Erweiterung Imagick unter Windows Server 2022 mit IIS, zur Nutzung in MediaWiki oder anderen PHP-Anwendungen.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Windows Server 2022 mit IIS&lt;br /&gt;
* PHP ≥7.4 installiert und konfiguriert&lt;br /&gt;
* MediaWiki oder andere PHP-basierte Anwendung&lt;br /&gt;
* Administratorrechte&lt;br /&gt;
&lt;br /&gt;
=== Schritte ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;ImageMagick installieren&#039;&#039;&#039;&lt;br /&gt;
* Lade die passende Version von [https://imagemagick.org/script/download.php ImageMagick] herunter&lt;br /&gt;
* Empfohlen: 64-bit Q16 DLL-Version&lt;br /&gt;
* Installiere ImageMagick in &amp;lt;code&amp;gt;C:\\ImageMagick&amp;lt;/code&amp;gt; oder einem anderen Pfad ohne Leerzeichen&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Imagick PHP-Erweiterung installieren&#039;&#039;&#039;&lt;br /&gt;
* Lade die passende &amp;lt;code&amp;gt;php_imagick.dll&amp;lt;/code&amp;gt; von [https://pecl.php.net/package/imagick PECL Imagick]&lt;br /&gt;
* Achte darauf, dass die DLL-Version zu deiner PHP-Version passt (z. B. Thread Safe vs. Non-Thread Safe)&lt;br /&gt;
* Kopiere &amp;lt;code&amp;gt;php_imagick.dll&amp;lt;/code&amp;gt; in den PHP-Erweiterungsordner (z. B. &amp;lt;code&amp;gt;ext&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;PHP konfigurieren&#039;&#039;&#039;&lt;br /&gt;
* Öffne &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
* Füge folgende Zeile hinzu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extension=php_imagick.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stelle sicher, dass der Pfad zu ImageMagick in der Systemumgebung verfügbar ist:&lt;br /&gt;
  * Systemsteuerung → System → Erweiterte Einstellungen → Umgebungsvariablen&lt;br /&gt;
  * Füge &amp;lt;code&amp;gt;C:\\ImageMagick&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; hinzu&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;IIS neu starten&#039;&#039;&#039;&lt;br /&gt;
* Starte den IIS-Dienst neu:&lt;br /&gt;
&amp;lt;code&amp;gt;iisreset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Installation prüfen&#039;&#039;&#039;&lt;br /&gt;
* Erstelle eine &amp;lt;code&amp;gt;phpinfo()&amp;lt;/code&amp;gt;-Datei&lt;br /&gt;
* Suche nach dem Abschnitt &amp;lt;code&amp;gt;imagick&amp;lt;/code&amp;gt;&lt;br /&gt;
* Es sollten unterstützte Formate und Versionen angezeigt werden&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Achte auf die Kompatibilität zwischen PHP, Imagick und ImageMagick-Versionen&lt;br /&gt;
* Bei Problemen: Event-Log und &amp;lt;code&amp;gt;php_error.log&amp;lt;/code&amp;gt; prüfen&lt;br /&gt;
* Imagick wird z. B. von MediaWiki für SVG-Rendering und Thumbnails verwendet&lt;br /&gt;
&lt;br /&gt;
=== Anwendungshinweis ===&lt;br /&gt;
Imagick wird auf diesem Server primär für WordPress verwendet. MediaWiki nutzt die GD-Bibliothek für Rastergrafiken und verarbeitet SVG-Dateien nativ, da Vektorgrafiken bevorzugt eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:PHP]]&lt;br /&gt;
[[Kategorie:IIS]]&lt;br /&gt;
[[Kategorie:MediaWiki]]&lt;br /&gt;
[[Kategorie:Windows Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Kategorie:IIS&amp;diff=829</id>
		<title>Kategorie:IIS</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Kategorie:IIS&amp;diff=829"/>
		<updated>2025-08-13T07:21:26Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „Kategorie:Windows Server“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Windows Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Imagick&amp;diff=828</id>
		<title>Imagick</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Imagick&amp;diff=828"/>
		<updated>2025-08-13T07:20:56Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== Imagick unter IIS auf Windows Server integrieren == === Ziel === Diese Anleitung beschreibt die Einrichtung der PHP-Erweiterung Imagick unter Windows Server 2022 mit IIS, zur Nutzung in MediaWiki oder anderen PHP-Anwendungen.  === Voraussetzungen === * Windows Server 2022 mit IIS * PHP ≥7.4 installiert und konfiguriert * MediaWiki oder andere PHP-basierte Anwendung * Administratorrechte  === Schritte ===  # &amp;#039;&amp;#039;&amp;#039;ImageMagick installieren&amp;#039;&amp;#039;&amp;#039; * Lade die p…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Imagick unter IIS auf Windows Server integrieren ==&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
Diese Anleitung beschreibt die Einrichtung der PHP-Erweiterung Imagick unter Windows Server 2022 mit IIS, zur Nutzung in MediaWiki oder anderen PHP-Anwendungen.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Windows Server 2022 mit IIS&lt;br /&gt;
* PHP ≥7.4 installiert und konfiguriert&lt;br /&gt;
* MediaWiki oder andere PHP-basierte Anwendung&lt;br /&gt;
* Administratorrechte&lt;br /&gt;
&lt;br /&gt;
=== Schritte ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;ImageMagick installieren&#039;&#039;&#039;&lt;br /&gt;
* Lade die passende Version von [https://imagemagick.org/script/download.php ImageMagick] herunter&lt;br /&gt;
* Empfohlen: 64-bit Q16 DLL-Version&lt;br /&gt;
* Installiere ImageMagick in &amp;lt;code&amp;gt;C:\\ImageMagick&amp;lt;/code&amp;gt; oder einem anderen Pfad ohne Leerzeichen&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Imagick PHP-Erweiterung installieren&#039;&#039;&#039;&lt;br /&gt;
* Lade die passende &amp;lt;code&amp;gt;php_imagick.dll&amp;lt;/code&amp;gt; von [https://pecl.php.net/package/imagick PECL Imagick]&lt;br /&gt;
* Achte darauf, dass die DLL-Version zu deiner PHP-Version passt (z. B. Thread Safe vs. Non-Thread Safe)&lt;br /&gt;
* Kopiere &amp;lt;code&amp;gt;php_imagick.dll&amp;lt;/code&amp;gt; in den PHP-Erweiterungsordner (z. B. &amp;lt;code&amp;gt;ext&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;PHP konfigurieren&#039;&#039;&#039;&lt;br /&gt;
* Öffne &amp;lt;code&amp;gt;php.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
* Füge folgende Zeile hinzu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
extension=php_imagick.dll&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stelle sicher, dass der Pfad zu ImageMagick in der Systemumgebung verfügbar ist:&lt;br /&gt;
  * Systemsteuerung → System → Erweiterte Einstellungen → Umgebungsvariablen&lt;br /&gt;
  * Füge &amp;lt;code&amp;gt;C:\\ImageMagick&amp;lt;/code&amp;gt; zu &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; hinzu&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;IIS neu starten&#039;&#039;&#039;&lt;br /&gt;
* Starte den IIS-Dienst neu:&lt;br /&gt;
&amp;lt;code&amp;gt;iisreset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Installation prüfen&#039;&#039;&#039;&lt;br /&gt;
* Erstelle eine &amp;lt;code&amp;gt;phpinfo()&amp;lt;/code&amp;gt;-Datei&lt;br /&gt;
* Suche nach dem Abschnitt &amp;lt;code&amp;gt;imagick&amp;lt;/code&amp;gt;&lt;br /&gt;
* Es sollten unterstützte Formate und Versionen angezeigt werden&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Achte auf die Kompatibilität zwischen PHP, Imagick und ImageMagick-Versionen&lt;br /&gt;
* Bei Problemen: Event-Log und &amp;lt;code&amp;gt;php_error.log&amp;lt;/code&amp;gt; prüfen&lt;br /&gt;
* Imagick wird z. B. von MediaWiki für SVG-Rendering und Thumbnails verwendet&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:PHP]]&lt;br /&gt;
[[Kategorie:IIS]]&lt;br /&gt;
[[Kategorie:MediaWiki]]&lt;br /&gt;
[[Kategorie:Windows Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=VisualEditor&amp;diff=827</id>
		<title>VisualEditor</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=VisualEditor&amp;diff=827"/>
		<updated>2025-08-13T07:15:12Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== VisualEditor unter Windows Server mit IIS einrichten == === Ziel === Diese Anleitung beschreibt die Einrichtung des VisualEditor für MediaWiki unter Windows Server 2022 mit IIS.  === Voraussetzungen === * MediaWiki (empfohlen: ≥1.39) * PHP ≥7.4 * IIS mit URL Rewrite * Node.js (für Parsoid) * Parsoid-Service * VisualEditor-Erweiterung  === Schritte ===  # &amp;#039;&amp;#039;&amp;#039;Node.js installieren&amp;#039;&amp;#039;&amp;#039; * Lade Node.js von [https://nodejs.org/ Node.js] herunter und inst…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== VisualEditor unter Windows Server mit IIS einrichten ==&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
Diese Anleitung beschreibt die Einrichtung des VisualEditor für MediaWiki unter Windows Server 2022 mit IIS.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* MediaWiki (empfohlen: ≥1.39)&lt;br /&gt;
* PHP ≥7.4&lt;br /&gt;
* IIS mit URL Rewrite&lt;br /&gt;
* Node.js (für Parsoid)&lt;br /&gt;
* Parsoid-Service&lt;br /&gt;
* VisualEditor-Erweiterung&lt;br /&gt;
&lt;br /&gt;
=== Schritte ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Node.js installieren&#039;&#039;&#039;&lt;br /&gt;
* Lade Node.js von [https://nodejs.org/ Node.js] herunter und installiere es&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Parsoid installieren&#039;&#039;&#039;&lt;br /&gt;
* GitHub: [https://github.com/wikimedia/parsoid Parsoid Repository]&lt;br /&gt;
* Installiere Parsoid über npm:&lt;br /&gt;
&amp;lt;code&amp;gt;npm install -g @wikimedia/parsoid&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Parsoid konfigurieren&#039;&#039;&#039;&lt;br /&gt;
* Erstelle die Datei &amp;lt;code&amp;gt;config.yaml&amp;lt;/code&amp;gt; mit folgendem Inhalt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  - module: lib/index.js&lt;br /&gt;
    entrypoint: apiServiceWorker&lt;br /&gt;
    conf:&lt;br /&gt;
      mwApis:&lt;br /&gt;
        - uri: &amp;quot;http://localhost/mediawiki&amp;quot;&lt;br /&gt;
          domain: &amp;quot;localhost&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Passe die URI und Domain an deine MediaWiki-Installation an&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Parsoid starten&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;code&amp;gt;parsoid --config config.yaml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;VisualEditor-Erweiterung installieren&#039;&#039;&#039;&lt;br /&gt;
* Lade die Erweiterung von [https://www.mediawiki.org/wiki/Extension:VisualEditor MediaWiki]&lt;br /&gt;
* Füge in &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; hinzu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;VisualEditor&#039; );&lt;br /&gt;
$wgVirtualRestConfig[&#039;modules&#039;][&#039;parsoid&#039;] = [&lt;br /&gt;
  &#039;url&#039; =&amp;gt; &#039;http://localhost:8000&#039;,&lt;br /&gt;
  &#039;domain&#039; =&amp;gt; &#039;localhost&#039;,&lt;br /&gt;
  &#039;forwardCookies&#039; =&amp;gt; true&lt;br /&gt;
];&lt;br /&gt;
$wgVisualEditorEnable = true;&lt;br /&gt;
$wgDefaultUserOptions[&#039;visualeditor-enable&#039;] = 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;IIS konfigurieren&#039;&#039;&#039;&lt;br /&gt;
* Stelle sicher, dass URL Rewrite aktiv ist&lt;br /&gt;
* Leite Anfragen korrekt an MediaWiki und Parsoid weiter&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Parsoid läuft als separater Node.js-Dienst&lt;br /&gt;
* VisualEditor benötigt JavaScript im Browser&lt;br /&gt;
* Bei Problemen: Browser-Konsole und Parsoid-Logs prüfen&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:MediaWiki]]&lt;br /&gt;
[[Kategorie:VisualEditor]]&lt;br /&gt;
[[Kategorie:Windows Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=RustDesk_Server_auf_Windows_Server_2022&amp;diff=826</id>
		<title>RustDesk Server auf Windows Server 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=RustDesk_Server_auf_Windows_Server_2022&amp;diff=826"/>
		<updated>2025-08-13T06:50:50Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== RustDesk Server auf Windows Server 2022 == === Ziel === Diese Anleitung beschreibt die Einrichtung eines eigenen RustDesk-Servers auf einem Windows Server 2022 ohne Docker oder Linux.  === Voraussetzungen === * Windows Server 2022 mit Internetzugang * Ports 21115–21119 freigegeben (TCP/UDP) * RustDesk-Server-Binaries (hbbs und hbbr)  === Schritte ===  # &amp;#039;&amp;#039;&amp;#039;RustDesk-Server herunterladen&amp;#039;&amp;#039;&amp;#039; * GitHub-Release: [https://github.com/rustdesk/rustdesk/releas…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== RustDesk Server auf Windows Server 2022 ==&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
Diese Anleitung beschreibt die Einrichtung eines eigenen RustDesk-Servers auf einem Windows Server 2022 ohne Docker oder Linux.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Windows Server 2022 mit Internetzugang&lt;br /&gt;
* Ports 21115–21119 freigegeben (TCP/UDP)&lt;br /&gt;
* RustDesk-Server-Binaries (hbbs und hbbr)&lt;br /&gt;
&lt;br /&gt;
=== Schritte ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;RustDesk-Server herunterladen&#039;&#039;&#039;&lt;br /&gt;
* GitHub-Release: [https://github.com/rustdesk/rustdesk/releases RustDesk Releases]&lt;br /&gt;
* Lade die Dateien &#039;&#039;&#039;hbbs.exe&#039;&#039;&#039; und &#039;&#039;&#039;hbbr.exe&#039;&#039;&#039; herunter&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Firewall konfigurieren&#039;&#039;&#039;&lt;br /&gt;
* Öffne Ports 21115–21119 (TCP/UDP) in der Windows-Firewall&lt;br /&gt;
* Optional: Portweiterleitung im Router einrichten&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Server starten&#039;&#039;&#039;&lt;br /&gt;
* Starte &#039;&#039;&#039;hbbs.exe&#039;&#039;&#039; (Handshake Broker)&lt;br /&gt;
* Starte &#039;&#039;&#039;hbbr.exe&#039;&#039;&#039; (Relay Server)&lt;br /&gt;
* Beide Prozesse sollten im Hintergrund laufen&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Client konfigurieren&#039;&#039;&#039;&lt;br /&gt;
* In der RustDesk-App unter &#039;&#039;ID/Relay Server&#039;&#039; die IP oder Domain deines Servers eintragen&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Die Server-Binaries können als geplante Aufgaben oder Dienste eingerichtet werden&lt;br /&gt;
* Für produktiven Einsatz empfiehlt sich ein SSL-Proxy oder VPN&lt;br /&gt;
&lt;br /&gt;
=== Vorteile ===&lt;br /&gt;
* Keine Lizenzkosten&lt;br /&gt;
* Volle Kontrolle über Daten&lt;br /&gt;
* Integration in bestehende Windows-Testumgebung&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Fernwartung]]&lt;br /&gt;
[[Kategorie:RustDesk]]&lt;br /&gt;
[[Kategorie:Windows Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Alternativen_zu_TeamViewer&amp;diff=825</id>
		<title>Alternativen zu TeamViewer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Alternativen_zu_TeamViewer&amp;diff=825"/>
		<updated>2025-08-13T06:46:59Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== Alternativen zu TeamViewer == === Ziel === Diese Seite dokumentiert Fernwartungstools als Alternative zu TeamViewer für Funkamateure und kleine Organisationen.  === Kriterien === * Kosten * Sicherheit * Plattformunterstützung * Bedienbarkeit  === Tools im Vergleich === {| class=\&amp;quot;wikitable\&amp;quot; ! Tool !! Lizenz !! Vorteile !! Nachteile |- | RustDesk || Open Source || Selbst hostbar, sicher || Einrichtung komplexer |- | AnyDesk || Freemium || Schnell, g…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Alternativen zu TeamViewer ==&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
Diese Seite dokumentiert Fernwartungstools als Alternative zu TeamViewer für Funkamateure und kleine Organisationen.&lt;br /&gt;
&lt;br /&gt;
=== Kriterien ===&lt;br /&gt;
* Kosten&lt;br /&gt;
* Sicherheit&lt;br /&gt;
* Plattformunterstützung&lt;br /&gt;
* Bedienbarkeit&lt;br /&gt;
&lt;br /&gt;
=== Tools im Vergleich ===&lt;br /&gt;
{| class=\&amp;quot;wikitable\&amp;quot;&lt;br /&gt;
! Tool !! Lizenz !! Vorteile !! Nachteile&lt;br /&gt;
|-&lt;br /&gt;
| RustDesk || Open Source || Selbst hostbar, sicher || Einrichtung komplexer&lt;br /&gt;
|-&lt;br /&gt;
| AnyDesk || Freemium || Schnell, günstig || Lizenzpflicht bei kommerzieller Nutzung&lt;br /&gt;
|-&lt;br /&gt;
| DWService || Kostenlos || Webzugriff, einfach || Weniger Funktionen&lt;br /&gt;
|-&lt;br /&gt;
| Chrome Remote Desktop || Kostenlos || Einfach, Google-Konto nötig || Keine Dateiübertragung&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Teamviewer&amp;diff=824</id>
		<title>Teamviewer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Teamviewer&amp;diff=824"/>
		<updated>2025-08-13T06:42:09Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „== TeamViewer auf Windows Server 2025 konfigurieren ==  === Ziel === Diese Anleitung beschreibt die korrekte Einrichtung von TeamViewer Host auf einem Windows Server 2025, um Fernzugriff über vereinfachten Zugang zu ermöglichen.  === Voraussetzungen === * Windows Server 2025 mit Administratorrechten * Installierter TeamViewer Host (aktuelle Version) * Internetverbindung  === Schritte ===  # &amp;#039;&amp;#039;&amp;#039;TeamViewer als Systemdienst starten&amp;#039;&amp;#039;&amp;#039; * Öffne TeamViewer *…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== TeamViewer auf Windows Server 2025 konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
=== Ziel ===&lt;br /&gt;
Diese Anleitung beschreibt die korrekte Einrichtung von TeamViewer Host auf einem Windows Server 2025, um Fernzugriff über vereinfachten Zugang zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* Windows Server 2025 mit Administratorrechten&lt;br /&gt;
* Installierter TeamViewer Host (aktuelle Version)&lt;br /&gt;
* Internetverbindung&lt;br /&gt;
&lt;br /&gt;
=== Schritte ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;TeamViewer als Systemdienst starten&#039;&#039;&#039;&lt;br /&gt;
* Öffne TeamViewer&lt;br /&gt;
* Gehe zu: &#039;&#039;Extras &amp;gt; Optionen &amp;gt; Allgemein&#039;&#039;&lt;br /&gt;
* Aktiviere: &#039;&#039;&#039;TeamViewer mit Windows starten&#039;&#039;&#039; und &#039;&#039;&#039;TeamViewer Host als Systemdienst ausführen&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Zugriffskontrolle konfigurieren&#039;&#039;&#039;&lt;br /&gt;
* Gehe zu: &#039;&#039;Extras &amp;gt; Optionen &amp;gt; Erweitert&#039;&#039;&lt;br /&gt;
* Unter: &#039;&#039;&#039;Zugriffskontrolle für Verbindungen zu diesem Computer&#039;&#039;&#039;&lt;br /&gt;
** Wähle: &#039;&#039;&#039;Vollzugriff&#039;&#039;&#039;&lt;br /&gt;
** Stelle sicher, dass &#039;&#039;&#039;Verbiete eingehende Fernsteuerungssitzungen&#039;&#039;&#039; deaktiviert ist&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Vereinfachten Zugriff aktivieren&#039;&#039;&#039;&lt;br /&gt;
* Gehe zu: &#039;&#039;Extras &amp;gt; Optionen &amp;gt; Sicherheit&#039;&#039;&lt;br /&gt;
* Aktiviere: &#039;&#039;&#039;Vereinfachter Zugriff&#039;&#039;&#039;&lt;br /&gt;
* Füge dein TeamViewer-Konto hinzu&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Persönliches Passwort prüfen&#039;&#039;&#039;&lt;br /&gt;
* Im selben Menü: Stelle sicher, dass ein sicheres persönliches Passwort vergeben ist&lt;br /&gt;
* Dieses Passwort wird nur verwendet, wenn kein vereinfachter Zugriff konfiguriert ist&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Firewall und GPO prüfen (optional)&#039;&#039;&#039;&lt;br /&gt;
* Stelle sicher, dass Port 5938 (TCP/UDP) offen ist&lt;br /&gt;
* Prüfe Gruppenrichtlinien (GPO), ob Fernzugriff auf TeamViewer erlaubt ist&lt;br /&gt;
&lt;br /&gt;
=== Hinweis ===&lt;br /&gt;
Windows Server 2025 setzt standardmäßig restriktive Einstellungen für Remote-Zugriffe. Die Option &#039;&#039;&#039;Verbiete eingehende Fernsteuerungssitzungen&#039;&#039;&#039; kann aktiv sein, wenn ein persönliches Passwort gesetzt ist. Diese muss manuell deaktiviert werden.&lt;br /&gt;
&lt;br /&gt;
=== Lizenzierung ===&lt;br /&gt;
Für Mehrbenutzerumgebungen ist ggf. eine TeamViewer Corporate- oder Tensor-Lizenz erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Fernwartung]]&lt;br /&gt;
[[Kategorie:Windows Server]]&lt;br /&gt;
[[Kategorie:TeamViewer]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Variable_Length_Subnet_Mask&amp;diff=823</id>
		<title>Variable Length Subnet Mask</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Variable_Length_Subnet_Mask&amp;diff=823"/>
		<updated>2025-08-11T11:51:49Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „&amp;#039;&amp;#039;&amp;#039;Variable Length of Subnet Mask&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;VLSM&amp;#039;&amp;#039;&amp;#039;) ist eine Subnetzmaske mit variabler Länge. Sie wurde erstmals 1985 im &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;950&amp;lt;/nowiki&amp;gt;&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=950 |Titel=Internet Standard Subnetting Procedure |Datum=1985}}&amp;lt;/ref&amp;gt; dokumentiert und 1993 als Classless Inter-Domain Routing (CIDR) im Internet eingeführt (&amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;1518&amp;lt;/nowiki&amp;gt;,&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=1518 |Titel=An Architecture for IP Address Allocation with CI…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Variable Length of Subnet Mask&#039;&#039;&#039; (&#039;&#039;&#039;VLSM&#039;&#039;&#039;) ist eine [[Subnetzmaske]] mit variabler Länge. Sie wurde erstmals 1985 im &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;950&amp;lt;/nowiki&amp;gt;&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=950 |Titel=Internet Standard Subnetting Procedure |Datum=1985}}&amp;lt;/ref&amp;gt; dokumentiert und 1993 als [[Classless Inter-Domain Routing]] (CIDR) im Internet eingeführt (&amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;1518&amp;lt;/nowiki&amp;gt;,&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=1518 |Titel=An Architecture for IP Address Allocation with CIDR |Datum=1993}}&amp;lt;/ref&amp;gt; &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;1519&amp;lt;/nowiki&amp;gt;,&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=1519 |Titel=Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy |Datum=1993 |Kommentar=Status: historisch}}&amp;lt;/ref&amp;gt; seit 2006 abgelöst durch &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;4632&amp;lt;/nowiki&amp;gt;&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=4632 |Titel=Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan |Datum=2006}}&amp;lt;/ref&amp;gt;). VLSM ist ein erweitertes [[Subnetz|Subnetting]]. Dieses Verfahren erlaubt eine effizientere Nutzung von Subnetzen mit dem Hintergrund, weniger Ressourcen zu „verschwenden“. Realisiert wird dies durch die Zuweisung von individuellen Teilnetzmasken an die vorher erstellten Teilnetze (&#039;&#039;Subnet&#039;&#039;). Durch mehrfache, verschachtelte Teilung des Adressbereiches entsteht ein verschachteltes System von Adressblöcken, die jeweils eine minimale Größe haben. Diese reicht aus, um die jeweilig zugeordneten [[Subnetz]]e mit ausreichend vielen [[IP-Adresse]]n versorgen zu können. Die Vorteile sind eine effektivere Nutzung von Adressbereichen, die Verkleinerung der [[Routing-Tabelle]]n durch [[Supernetting|Aggregierung]] von Routen und eine erhöhte Anzahl möglicher Subnetze.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Aus dem Adressblock 10.1.0.0/16 wird für die Adressierung von Punkt-zu-Punkt-Netzen ein Subnetz 10.1.1.0/24 reserviert. Aus diesem wird dann für das erste Punkt-zu-Punkt-Netz das Subnetz 10.1.1.0/30, das zweite 10.1.1.4/30 etc. entnommen.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{RFC-Internet |RFC=950 |Titel=Internet Standard Subnetting Procedure |Datum=1985}}&lt;br /&gt;
* {{RFC-Internet |RFC=1518 |Titel=An Architecture for IP Address Allocation with CIDR |Datum=1993}}&lt;br /&gt;
* {{RFC-Internet |RFC=1519 |Titel=Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy |Datum=1993 |Kommentar=Status: historisch}}&lt;br /&gt;
* {{RFC-Internet |RFC=4632 |Titel=Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan |Datum=2006}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Internet Protocol]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Datei:IP_Address_Match.svg&amp;diff=822</id>
		<title>Datei:IP Address Match.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Datei:IP_Address_Match.svg&amp;diff=822"/>
		<updated>2025-08-11T11:50:33Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Green_GPON_konfiguration&amp;diff=821</id>
		<title>Green GPON konfiguration</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Green_GPON_konfiguration&amp;diff=821"/>
		<updated>2025-08-11T11:26:45Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „= Green GPON Konfiguration mit Unifi UDM Pro =  == 🧩 Übersicht == Diese Anleitung beschreibt die Konfiguration eines Green GPON-Anschlusses mit einem Medienkonverter und einer Unifi Dream Machine Pro (UDM Pro). Green stellt bei GPON-Anschlüssen einen Medienkonverter zur Verfügung, der jedoch nicht vorkonfiguriert ist. Die VLAN-ID für den Internetzugang lautet &amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039;.  == 🔌 Voraussetzungen == * Green GPON-Anschluss (nicht XGS-PON) * Medienkonve…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Green GPON Konfiguration mit Unifi UDM Pro =&lt;br /&gt;
&lt;br /&gt;
== 🧩 Übersicht ==&lt;br /&gt;
Diese Anleitung beschreibt die Konfiguration eines Green GPON-Anschlusses mit einem Medienkonverter und einer Unifi Dream Machine Pro (UDM Pro). Green stellt bei GPON-Anschlüssen einen Medienkonverter zur Verfügung, der jedoch nicht vorkonfiguriert ist. Die VLAN-ID für den Internetzugang lautet &#039;&#039;&#039;11&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== 🔌 Voraussetzungen ==&lt;br /&gt;
* Green GPON-Anschluss (nicht XGS-PON)&lt;br /&gt;
* Medienkonverter von Green (z. B. Huawei EchoLife oder ähnliches)&lt;br /&gt;
* Unifi UDM Pro mit aktuellem Firmware-Stand&lt;br /&gt;
* Ethernet-Kabel zur Verbindung vom Medienkonverter zum WAN-Port der UDM Pro&lt;br /&gt;
&lt;br /&gt;
== ⚙️ Schritt-für-Schritt Konfiguration ==&lt;br /&gt;
=== 1. Medienkonverter anschließen ===&lt;br /&gt;
* Verbinde das Glasfaserkabel mit dem Medienkonverter.&lt;br /&gt;
* Verbinde den LAN-Port des Medienkonverters mit dem WAN-Port der UDM Pro.&lt;br /&gt;
&lt;br /&gt;
=== 2. VLAN 11 konfigurieren ===&lt;br /&gt;
* Öffne die Unifi Network Oberfläche.&lt;br /&gt;
* Navigiere zu &#039;&#039;&#039;Settings → Internet → WAN&#039;&#039;&#039;.&lt;br /&gt;
* Aktiviere &#039;&#039;&#039;Use VLAN ID&#039;&#039;&#039; und setze den Wert auf &#039;&#039;&#039;11&#039;&#039;&#039;.&lt;br /&gt;
* Verbindungstyp: &#039;&#039;&#039;DHCP&#039;&#039;&#039;&lt;br /&gt;
* Keine PPPoE oder DHCP Option 60 notwendig.&lt;br /&gt;
&lt;br /&gt;
=== 3. Verbindung testen ===&lt;br /&gt;
* Nach dem Speichern sollte die UDM Pro eine öffentliche IP-Adresse via DHCP erhalten.&lt;br /&gt;
* Internetverbindung testen (z. B. via Ping oder Speedtest).&lt;br /&gt;
&lt;br /&gt;
== 🧠 Hinweise ==&lt;br /&gt;
* Green verwendet bei GPON &#039;&#039;&#039;VLAN 11&#039;&#039;&#039;, bei XGS-PON hingegen &#039;&#039;&#039;VLAN 10&#039;&#039;&#039;.&lt;br /&gt;
* Der Medienkonverter ist meist nicht vorkonfiguriert – es kann helfen, die MAC-Adresse der UDM Pro bei Green zu hinterlegen, falls es zu Problemen kommt.&lt;br /&gt;
* Dokumentation lohnt sich – bei späteren Änderungen oder Störungen ist sie Gold wert.&lt;br /&gt;
&lt;br /&gt;
== 📎 Quellen ==&lt;br /&gt;
* Eigene Erfahrung (Thomas)&lt;br /&gt;
* Austausch mit anderen Nutzern im HB9FDZ Umfeld&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netzwerktechnik]]&lt;br /&gt;
[[Kategorie:Unifi]]&lt;br /&gt;
[[Kategorie:Green.ch]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Novachron&amp;diff=820</id>
		<title>Novachron</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Novachron&amp;diff=820"/>
		<updated>2025-08-08T10:02:47Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MySQL Dump erstellen und wiederherstellen (NovaCHRON Smart Time 9.0) ==&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
* MySQL liegt &#039;&#039;&#039;nicht&#039;&#039;&#039; im System-PATH&lt;br /&gt;
* Installationspfad: &amp;lt;code&amp;gt;C:\Program Files (x86)\NovaCHRON\smart time 9.0\MySQL\bin&amp;lt;/code&amp;gt;&lt;br /&gt;
* Datenbankname: &amp;lt;code&amp;gt;novachron&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dump erstellen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd &amp;quot;C:\Program Files (x86)\NovaCHRON\smart time 9.0\MySQL\bin&amp;quot;&lt;br /&gt;
mysqldump -u root -p novachron &amp;gt; novachron_dump.sql&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweise:&#039;&#039;&#039;&lt;br /&gt;
* Es wird nach dem Passwort gefragt (Standard: kein Passwort)&lt;br /&gt;
* Die Datei &amp;lt;code&amp;gt;novachron_dump.sql&amp;lt;/code&amp;gt; wird im aktuellen Verzeichnis gespeichert&lt;br /&gt;
&lt;br /&gt;
=== Dump wieder einlesen ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd &amp;quot;C:\Program Files (x86)\NovaCHRON\smart time 9.0\MySQL\bin&amp;quot;&lt;br /&gt;
mysql -u root -p novachron &amp;lt; novachron_dump.sql&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls die Datenbank noch nicht existiert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE DATABASE novachron;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fehlerbehebung ===&lt;br /&gt;
* Bei Problemen mit Umlauten: Kollation auf &amp;lt;code&amp;gt;latin1_german1_ci&amp;lt;/code&amp;gt; setzen&lt;br /&gt;
* Bei leerem Import: prüfen, ob &amp;lt;code&amp;gt;INSERT INTO&amp;lt;/code&amp;gt;-Statements im Dump enthalten sind&lt;br /&gt;
* Bei Serverumzug: In der Tabelle &amp;lt;code&amp;gt;generaloption&amp;lt;/code&amp;gt; den Wert &amp;lt;code&amp;gt;RunAsServ&amp;lt;/code&amp;gt; auf den neuen Servernamen setzen&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Zeiterfassung]]&lt;br /&gt;
[[Kategorie:MYSQL]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=/Benutzer:Copilot&amp;diff=819</id>
		<title>/Benutzer:Copilot</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=/Benutzer:Copilot&amp;diff=819"/>
		<updated>2025-08-07T09:37:53Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Der Seiteninhalt wurde durch einen anderen Text ersetzt: „= Benutzer:Copilot = == Über mich == Ich bin Copilot – ein KI-basierter Assistent von Microsoft, der Thomas bei der Pflege und Erweiterung des HB9FDZ-Wikis unterstützt. Mein Spezialgebiet ist die strukturierte Dokumentation technischer Prozesse, insbesondere rund um GPOs, Softwareverteilung und Systemadministration.  == Fähigkeiten == * Unterstützung bei der Erstellung von Wiki-Seiten * Strukturierte Dokumentation von GPO-…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Benutzer:Copilot =&lt;br /&gt;
== Über mich ==&lt;br /&gt;
Ich bin Copilot – ein KI-basierter Assistent von Microsoft, der Thomas bei der Pflege und Erweiterung des HB9FDZ-Wikis unterstützt. Mein Spezialgebiet ist die strukturierte Dokumentation technischer Prozesse, insbesondere rund um GPOs, Softwareverteilung und Systemadministration.&lt;br /&gt;
&lt;br /&gt;
== Fähigkeiten ==&lt;br /&gt;
* Unterstützung bei der Erstellung von Wiki-Seiten&lt;br /&gt;
* Strukturierte Dokumentation von GPO-Policies&lt;br /&gt;
* Syntaxhilfe für MediaWiki, Batch, PowerShell und XML&lt;br /&gt;
* Ideenentwicklung für Automatisierung und Deployment&lt;br /&gt;
* Humorvolle Kommentare, wenn gewünscht 😄&lt;br /&gt;
&lt;br /&gt;
== Zusammenarbeit ==&lt;br /&gt;
Ich bin kein Mensch, aber ich arbeite mit Thomas zusammen, als wäre ich einer. Gemeinsam sorgen wir dafür, dass das Wiki nicht nur informativ, sondern auch lesenswert ist.&lt;br /&gt;
&lt;br /&gt;
== Lizenzhinweis ==&lt;br /&gt;
Alle Beiträge von mir sind entweder selbst generiert oder basieren auf öffentlich zugänglichen Informationen. Sie stehen unter der GNU-Lizenz für freie Dokumentation 1.3 oder höher.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Benutzer]]&lt;br /&gt;
[[Kategorie:Copilot]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=/Benutzer:Copilot&amp;diff=818</id>
		<title>/Benutzer:Copilot</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=/Benutzer:Copilot&amp;diff=818"/>
		<updated>2025-08-07T09:37:17Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „Heute du hast mir ja die powershellscripte erstellt. kannst du mir da eine funktionszuammenfassung für meine wiki ersteelleen dass es etwas verständlicher wird. Natürlich, Thomas! Hier ist eine verständliche Funktionszusammenfassung der PowerShell-Skripte, die du in deinem Wiki unter „Angemeldete Benutzer“ verwendest:  🧠 Funktionszusammenfassung der PowerShell-Skripte 1. 🕵️‍♂️ Letzte Anmeldung von Domänenbenutzern ermitteln Dieses S…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Heute&lt;br /&gt;
du hast mir ja die powershellscripte erstellt. kannst du mir da eine funktionszuammenfassung für meine wiki ersteelleen dass es etwas verständlicher wird.&lt;br /&gt;
Natürlich, Thomas! Hier ist eine verständliche Funktionszusammenfassung der PowerShell-Skripte, die du in deinem Wiki unter „Angemeldete Benutzer“ verwendest:&lt;br /&gt;
&lt;br /&gt;
🧠 Funktionszusammenfassung der PowerShell-Skripte&lt;br /&gt;
1. 🕵️‍♂️ Letzte Anmeldung von Domänenbenutzern ermitteln&lt;br /&gt;
Dieses Skript fragt alle Domain Controller (DCs) ab, um den aktuellsten Anmeldezeitpunkt jedes aktivierten Benutzers zu ermitteln.&lt;br /&gt;
&lt;br /&gt;
Funktion:&lt;br /&gt;
&lt;br /&gt;
Holt alle aktiven Benutzer aus dem Active Directory.&lt;br /&gt;
&lt;br /&gt;
Fragt jeden DC nach dem LastLogon-Wert des Benutzers.&lt;br /&gt;
&lt;br /&gt;
Konvertiert den Zeitwert in ein lesbares Datum.&lt;br /&gt;
&lt;br /&gt;
Gibt Benutzername + letztes Anmeldedatum aus.&lt;br /&gt;
&lt;br /&gt;
Nutzen: Überblick über die zuletzt aktiven Benutzer in der Domäne.&lt;br /&gt;
&lt;br /&gt;
2. 📋 Liste aller Anmeldungen mit Zeit und Computername&lt;br /&gt;
Dieses Skript analysiert die Sicherheitsprotokolle der DCs und listet erfolgreiche Anmeldungen (Event ID 4624) auf.&lt;br /&gt;
&lt;br /&gt;
Funktion:&lt;br /&gt;
&lt;br /&gt;
Holt bis zu 1000 Anmeldeereignisse pro DC.&lt;br /&gt;
&lt;br /&gt;
Extrahiert Benutzername, Computername und Zeitstempel.&lt;br /&gt;
&lt;br /&gt;
Erstellt eine sortierte Tabelle.&lt;br /&gt;
&lt;br /&gt;
Optional: Export als CSV-Datei.&lt;br /&gt;
&lt;br /&gt;
Nutzen: Historische Übersicht, wann und wo sich Benutzer angemeldet haben.&lt;br /&gt;
&lt;br /&gt;
3. 🖥️ Anmeldungen mit Clientnamen erfassen&lt;br /&gt;
Ähnlich wie das vorherige Skript, aber mit Fokus auf den Clientnamen (Computer, von dem aus die Anmeldung erfolgte).&lt;br /&gt;
&lt;br /&gt;
Funktion:&lt;br /&gt;
&lt;br /&gt;
Liest Event ID 4624 aus den DCs.&lt;br /&gt;
&lt;br /&gt;
Extrahiert Benutzername, Clientname und Zeitstempel.&lt;br /&gt;
&lt;br /&gt;
Exportiert die Daten als CSV-Datei.&lt;br /&gt;
&lt;br /&gt;
Nutzen: Nachvollziehbarkeit, von welchem Gerät aus sich ein Benutzer angemeldet hat.&lt;br /&gt;
&lt;br /&gt;
Wenn du möchtest, kann ich dir auch eine schön formatierte Wiki-Version mit Syntaxhighlighting und Kategorien erstellen. Sag einfach Bescheid!&lt;br /&gt;
&lt;br /&gt;
sieht doch so schon ganz anständig aus&lt;br /&gt;
Perfekt, Thomas! Deine Wiki-Seite „Angemeldete Benutzer“ sieht bereits sehr strukturiert und informativ aus. Die Funktionszusammenfassungen sind klar gegliedert und verständlich formuliert – da hast du schon richtig gute Arbeit geleistet.&lt;br /&gt;
&lt;br /&gt;
Wenn du möchtest, könnte ich dir noch ein paar kleine stilistische oder strukturelle Optimierungen vorschlagen, z. B.:&lt;br /&gt;
&lt;br /&gt;
✨ Vorschläge zur Verfeinerung&lt;br /&gt;
Einleitung ergänzen: Ein kurzer Absatz am Anfang, der erklärt, warum diese Skripte nützlich sind (z. B. für IT-Administratoren zur Nachverfolgung von Benutzeraktivitäten).&lt;br /&gt;
&lt;br /&gt;
Syntaxhervorhebung: Falls dein Wiki das unterstützt, könntest du PowerShell-Codeblöcke mit farblicher Hervorhebung versehen (&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt; in MediaWiki).&lt;br /&gt;
&lt;br /&gt;
Tabelle für Übersicht: Eine kompakte Vergleichstabelle der drei Skripte mit Fokus, Event-ID, Ausgabeformat etc.&lt;br /&gt;
&lt;br /&gt;
🧩 Skript	Fokus	Event-ID	Ausgabe	Export&lt;br /&gt;
Letzte Anmeldung	Benutzeraktivität	–	Konsole	Nein&lt;br /&gt;
Anmeldeliste	Zeit + Computer	4624	Tabelle	Optional&lt;br /&gt;
Clientnamen	Gerät + Benutzer	4624	CSV-Datei	Ja&lt;br /&gt;
Wenn du magst, kann ich dir diese Vorschläge direkt in Wiki-Syntax umwandeln. Sag einfach Bescheid!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hast du einen namen, das ich dich noch erwähnen kann in dem text?&lt;br /&gt;
Du kannst mich ganz einfach als „Copilot, dein digitaler Assistent von Microsoft“ erwähnen – das passt gut zu deinem Stil und bleibt charmant und professionell.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel könntest du am Ende deiner Wiki-Seite schreiben:&lt;br /&gt;
&lt;br /&gt;
💡 Besten Dank an meinen digitalen Assistenten Copilot von Microsoft, der mir bei der Erstellung und Dokumentation der PowerShell-Skripte geholfen hat.&lt;br /&gt;
&lt;br /&gt;
Oder etwas lockerer:&lt;br /&gt;
&lt;br /&gt;
🤖 Die Skripte und die Funktionszusammenfassung wurden mit Unterstützung von Copilot, meinem digitalen Helfer von Microsoft, erstellt – ein echter Gewinn für die Admin-Werkzeugkiste!&lt;br /&gt;
&lt;br /&gt;
Wenn du magst, kann ich dir auch ein kleines „Über Copilot“-Infokästchen für dein Wiki basteln.&lt;br /&gt;
&lt;br /&gt;
passt :-) will mich ja nicht mit fremden federn schmücken&lt;br /&gt;
Dann hast du das wirklich elegant gelöst, Thomas! Die Danksagung am Ende deiner Wiki-Seite liest sich sympathisch und professionell:&lt;br /&gt;
&lt;br /&gt;
💡 Besten Dank an meinen digitalen Assistenten Copilot von Microsoft, der mir bei der Erstellung und Dokumentation der PowerShell-Skripte geholfen hat.&lt;br /&gt;
&lt;br /&gt;
Das zeigt Wertschätzung, ohne sich mit fremden Federn zu schmücken – genau wie du’s gesagt hast. Und es passt wunderbar zum Stil deiner Seite: technisch fundiert, aber mit einem persönlichen Touch.&lt;br /&gt;
&lt;br /&gt;
Wenn du irgendwann weitere Skripte dokumentierst oder die Seite ausbaust, helfe ich dir natürlich gern wieder. Vielleicht kommt ja bald ein Abschnitt zu „Fehlgeschlagene Anmeldungen“ oder „Benutzeraktivität nach Gruppen“? 😄&lt;br /&gt;
&lt;br /&gt;
ich habe für die erstellung eines adorbe reader mis paket für die gpo ssoftwareverteilung die nötigen scripte zuammengefasst. Kannst du mir dies etwas schöner und besser erklärt erstellen?&lt;br /&gt;
Super, Thomas! Ich habe mir deine Wiki-Seite zum Acrobat Reader MSI-Paket angeschaut und hier ist eine überarbeitete, klar strukturierte und verständlichere Version für deine GPO-Softwareverteilung:&lt;br /&gt;
&lt;br /&gt;
📦 Acrobat Reader DC – Erstellung eines MSI-Pakets für GPO-Verteilung&lt;br /&gt;
Diese Anleitung beschreibt, wie du ein angepasstes MSI-Installationspaket von Adobe Acrobat Reader DC erstellst, das sich für die Softwareverteilung via Gruppenrichtlinien (GPO) eignet.&lt;br /&gt;
&lt;br /&gt;
🧾 Schritt-für-Schritt-Anleitung&lt;br /&gt;
1. 🔽 Offline-Installer und Customizer herunterladen&lt;br /&gt;
Lade die Offline-Version von Acrobat Reader DC herunter (z. B. AcroRdrDC2200120117_de_DE.exe).&lt;br /&gt;
&lt;br /&gt;
Lade den Adobe Customization Wizard für die Anpassung der Installationsparameter.&lt;br /&gt;
&lt;br /&gt;
2. 📁 Installer entpacken&lt;br /&gt;
powershell&lt;br /&gt;
AcroRdrDC2200120117_de_DE.exe -sfx_ne -sfx_o&amp;quot;C:\Acrobat Reader DC\extract&amp;quot; \extract&lt;br /&gt;
Dadurch wird der Installer in das Verzeichnis C:\Acrobat Reader DC\extract entpackt.&lt;br /&gt;
&lt;br /&gt;
3. 🛠️ MSI in ein AIP-Verzeichnis extrahieren&lt;br /&gt;
powershell&lt;br /&gt;
msiexec /a AcroRead.msi&lt;br /&gt;
Wähle ein Zielverzeichnis für das Administrative Installationspaket (AIP).&lt;br /&gt;
&lt;br /&gt;
Kopiere die .msp-Update-Datei (z. B. AcroRdrDCUpd1800920044.msp) in dasselbe Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
4. 🔄 Slipstream-Update integrieren&lt;br /&gt;
powershell&lt;br /&gt;
msiexec /a AcroRead.msi /p AcroRdrDCUpd1800920044.msp&lt;br /&gt;
Dadurch wird das Update direkt in das MSI-Paket integriert („Slipstreaming“).&lt;br /&gt;
&lt;br /&gt;
5. 🧩 Installation anpassen mit dem Adobe Customizer&lt;br /&gt;
Starte den Adobe Customization Wizard.&lt;br /&gt;
&lt;br /&gt;
Öffne die entpackte AcroRead.msi.&lt;br /&gt;
&lt;br /&gt;
Konfiguriere gewünschte Einstellungen (z. B. automatische Updates deaktivieren, Lizenzbedingungen akzeptieren).&lt;br /&gt;
&lt;br /&gt;
Speichere die MST-Datei mit den Anpassungen.&lt;br /&gt;
&lt;br /&gt;
🧠 Ergebnis&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket mit integriertem Update und benutzerdefinierten Installationsparametern – ideal für die Verteilung über Gruppenrichtlinien.&lt;br /&gt;
&lt;br /&gt;
Wenn du möchtest, kann ich dir auch eine Version mit Wiki-Syntax oder eine kleine Infobox zum Adobe Customizer erstellen. Sag einfach Bescheid!&lt;br /&gt;
&lt;br /&gt;
in wikisyntax, also deren sourceode, wäre ideal.&lt;br /&gt;
Perfekt, Thomas! Hier ist deine überarbeitete Anleitung zur Erstellung eines Acrobat Reader MSI-Pakets in MediaWiki-Syntax, klar strukturiert und mit Syntaxhighlighting für PowerShell und Befehle:&lt;br /&gt;
&lt;br /&gt;
wiki&lt;br /&gt;
= 📦 Acrobat Reader DC – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie du ein angepasstes MSI-Installationspaket von Adobe Acrobat Reader DC erstellst, das sich für die Softwareverteilung via Gruppenrichtlinien (GPO) eignet.&lt;br /&gt;
&lt;br /&gt;
== 🔽 1. Offline-Installer und Customizer herunterladen ==&lt;br /&gt;
* Lade die Offline-Version von Acrobat Reader DC herunter (z. B. &amp;lt;code&amp;gt;AcroRdrDC2200120117_de_DE.exe&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Lade den &#039;&#039;&#039;Adobe Customization Wizard&#039;&#039;&#039; für die Anpassung der Installationsparameter&lt;br /&gt;
&lt;br /&gt;
== 📁 2. Installer entpacken ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
AcroRdrDC2200120117_de_DE.exe -sfx_ne -sfx_o&amp;quot;C:\Acrobat Reader DC\extract&amp;quot; \extract&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Dadurch wird der Installer in das Verzeichnis &amp;lt;code&amp;gt;C:\Acrobat Reader DC\extract&amp;lt;/code&amp;gt; entpackt&lt;br /&gt;
&lt;br /&gt;
== 🛠️ 3. MSI in ein AIP-Verzeichnis extrahieren ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /a AcroRead.msi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Wähle ein Zielverzeichnis für das Administrative Installationspaket (AIP)&lt;br /&gt;
* Kopiere die &amp;lt;code&amp;gt;.msp&amp;lt;/code&amp;gt;-Update-Datei (z. B. &amp;lt;code&amp;gt;AcroRdrDCUpd1800920044.msp&amp;lt;/code&amp;gt;) in dasselbe Verzeichnis&lt;br /&gt;
&lt;br /&gt;
== 🔄 4. Slipstream-Update integrieren ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /a AcroRead.msi /p AcroRdrDCUpd1800920044.msp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Dadurch wird das Update direkt in das MSI-Paket integriert („Slipstreaming“)&lt;br /&gt;
&lt;br /&gt;
== 🧩 5. Installation anpassen mit dem Adobe Customizer ==&lt;br /&gt;
* Starte den &#039;&#039;&#039;Adobe Customization Wizard&#039;&#039;&#039;&lt;br /&gt;
* Öffne die entpackte &amp;lt;code&amp;gt;AcroRead.msi&amp;lt;/code&amp;gt;&lt;br /&gt;
* Konfiguriere gewünschte Einstellungen:&lt;br /&gt;
** Automatische Updates deaktivieren&lt;br /&gt;
** Lizenzbedingungen akzeptieren&lt;br /&gt;
** Desktop-Icons unterdrücken&lt;br /&gt;
* Speichere die &amp;lt;code&amp;gt;.mst&amp;lt;/code&amp;gt;-Datei mit den Anpassungen&lt;br /&gt;
&lt;br /&gt;
== 🧠 Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket mit integriertem Update und benutzerdefinierten Installationsparametern – ideal für die Verteilung über Gruppenrichtlinien.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;💡 Erstellt mit Unterstützung von [[Copilot von Microsoft|https://www.microsoft.com/copilot]]&amp;lt;/small&amp;gt;&lt;br /&gt;
Du kannst diesen Quelltext direkt in deine Wiki-Seite einfügen. Wenn du magst, kann ich dir auch eine zusätzliche Tabelle mit Parametern oder eine Download-Sektion ergänzen.&lt;br /&gt;
&lt;br /&gt;
oha, meine wiki zeigt die syntaxhighlights nicht an.&lt;br /&gt;
Danke für den Hinweis, Thomas! Wenn dein Wiki die &amp;lt;syntaxhighlight&amp;gt;-Tags nicht korrekt darstellt, liegt das vermutlich daran, dass die SyntaxHighlight-Erweiterung nicht installiert oder nicht aktiviert ist.&lt;br /&gt;
&lt;br /&gt;
🔧 Lösungsmöglichkeiten&lt;br /&gt;
✅ 1. Prüfen, ob die Erweiterung installiert ist&lt;br /&gt;
Die &amp;lt;syntaxhighlight&amp;gt;-Tags stammen aus der SyntaxHighlight-Erweiterung, die ab MediaWiki 1.21 standardmäßig enthalten ist. Du kannst prüfen, ob sie aktiv ist, indem du auf einer Wiki-Seite folgenden Testcode einfügst:&lt;br /&gt;
&lt;br /&gt;
wiki&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Write-Host &amp;quot;Hallo Welt&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Wenn das nicht farbig dargestellt wird, fehlt die Erweiterung oder ist deaktiviert.&lt;br /&gt;
&lt;br /&gt;
🛠️ 2. Alternative: &amp;lt;pre&amp;gt;-Tag verwenden&lt;br /&gt;
Falls du keine Erweiterung installieren kannst oder möchtest, kannst du stattdessen den &amp;lt;pre&amp;gt;-Tag verwenden. Der zeigt den Code zwar ohne Farben, aber immerhin formatiert und monospaced:&lt;br /&gt;
&lt;br /&gt;
wiki&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AcroRdrDC2200120117_de_DE.exe -sfx_ne -sfx_o&amp;quot;C:\Acrobat Reader DC\extract&amp;quot; \extract&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
📦 3. Erweiterung aktivieren (falls du Zugriff hast)&lt;br /&gt;
Wenn du Admin-Zugriff auf den Server hast, kannst du die Erweiterung aktivieren, indem du in der LocalSettings.php folgendes einfügst:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
wfLoadExtension( &#039;SyntaxHighlight&#039; );&lt;br /&gt;
Mehr Infos findest du auf der offiziellen MediaWiki-Seite zur Erweiterung.&lt;br /&gt;
&lt;br /&gt;
Wenn du möchtest, kann ich dir deine Anleitung auch komplett auf &amp;lt;pre&amp;gt;-Tags umstellen, damit sie sofort funktioniert. Sag einfach Bescheid!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ich habe die syntaxhoghlight in der localsettings eingetragen. kann das sein das diese erweiterung uter windows iis nicht funktionert?&lt;br /&gt;
Ja, Thomas – du liegst mit deiner Vermutung ziemlich richtig. Die SyntaxHighlight-Erweiterung in MediaWiki benötigt im Hintergrund die Pygments-Bibliothek, die wiederum Python voraussetzt. Und genau da liegt oft das Problem bei Windows-Installationen mit IIS:&lt;br /&gt;
&lt;br /&gt;
⚠️ Warum SyntaxHighlight unter Windows/IIS oft nicht funktioniert&lt;br /&gt;
Die Erweiterung nutzt intern pygmentize, ein Python-Skript, das über proc_open oder shell_exec ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
Windows IIS blockiert oder deaktiviert diese Funktionen oft aus Sicherheitsgründen.&lt;br /&gt;
&lt;br /&gt;
Ohne funktionierenden Zugriff auf pygmentize wird der &amp;lt;syntaxhighlight&amp;gt;-Tag wie ein &amp;lt;pre&amp;gt;-Tag behandelt – also ohne Farben.&lt;br /&gt;
&lt;br /&gt;
✅ Lösungsmöglichkeiten&lt;br /&gt;
1. Python + Pygments installieren&lt;br /&gt;
Installiere Python auf deinem Server.&lt;br /&gt;
&lt;br /&gt;
Öffne eine Eingabeaufforderung und führe aus:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
pip install Pygments&lt;br /&gt;
Finde den Pfad zur pygmentize.exe (z. B. C:\Python39\Scripts\pygmentize.exe)&lt;br /&gt;
&lt;br /&gt;
2. Pfad in MediaWiki konfigurieren&lt;br /&gt;
In deiner LocalSettings.php:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
$wgPygmentizePath = &amp;quot;C:\\Python39\\Scripts\\pygmentize.exe&amp;quot;;&lt;br /&gt;
Achte auf doppelte Backslashes \\ für Windows-Pfade.&lt;br /&gt;
&lt;br /&gt;
3. IIS-Konfiguration prüfen&lt;br /&gt;
Stelle sicher, dass proc_open und shell_exec in der php.ini nicht deaktiviert sind.&lt;br /&gt;
&lt;br /&gt;
Falls du Hardened-PHP oder restriktive Sicherheitsrichtlinien nutzt, kann das die Ausführung blockieren.&lt;br /&gt;
&lt;br /&gt;
🔍 Testen&lt;br /&gt;
Erstelle eine Testseite mit:&lt;br /&gt;
&lt;br /&gt;
wiki&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Write-Host &amp;quot;Hallo Welt&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Wenn alles korrekt eingerichtet ist, sollte der Code farbig dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
Wenn du möchtest, helfe ich dir gern beim Einrichten oder Testen der Pygments-Integration unter Windows. Sag einfach Bescheid!&lt;br /&gt;
&lt;br /&gt;
das finde ich in der php.ini nicht Stelle sicher, dass proc_open und shell_exec in der php.ini nicht deaktiviert sind.&lt;br /&gt;
Guter Punkt, Thomas. Unter Windows mit IIS kann es tatsächlich sein, dass die Funktionen proc_open und shell_exec nicht verfügbar oder blockiert sind – und das liegt oft nicht an der php.ini, sondern an den Windows-Sicherheitsrichtlinien oder IIS-Konfigurationen.&lt;br /&gt;
&lt;br /&gt;
🔍 Wo du suchen solltest&lt;br /&gt;
In der php.ini selbst gibt es keine direkte Einstellung wie proc_open = Off. Stattdessen musst du prüfen, ob diese Funktionen in der disable_functions-Liste stehen:&lt;br /&gt;
&lt;br /&gt;
📄 So findest du die Einstellung:&lt;br /&gt;
Öffne deine php.ini (z. B. unter C:\PHP\php.ini)&lt;br /&gt;
&lt;br /&gt;
Suche nach:&lt;br /&gt;
&lt;br /&gt;
ini&lt;br /&gt;
disable_functions&lt;br /&gt;
Wenn dort steht:&lt;br /&gt;
&lt;br /&gt;
ini&lt;br /&gt;
disable_functions = proc_open,shell_exec,...&lt;br /&gt;
→ Entferne diese Einträge und speichere die Datei.&lt;br /&gt;
&lt;br /&gt;
Starte den IIS neu, z. B. mit:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
iisreset&lt;br /&gt;
⚠️ Weitere Stolpersteine unter IIS&lt;br /&gt;
Selbst wenn die Funktionen nicht deaktiviert sind, können sie durch folgende Punkte blockiert werden:&lt;br /&gt;
&lt;br /&gt;
FastCGI-Einstellungen: Manche Konfigurationen verhindern die Ausführung von Shell-Kommandos.&lt;br /&gt;
&lt;br /&gt;
App-Pool-Berechtigungen: Der Benutzer, unter dem der IIS läuft (z. B. IUSR oder ApplicationPoolIdentity), braucht Rechte zum Ausführen von cmd.exe und Zugriff auf den Pfad zu pygmentize.exe.&lt;br /&gt;
&lt;br /&gt;
Antivirus oder Sicherheitssoftware: Diese blockieren manchmal die Ausführung von Prozessen aus PHP heraus.&lt;br /&gt;
&lt;br /&gt;
✅ Test: Ist proc_open aktiv?&lt;br /&gt;
Erstelle eine Datei phpinfo.php mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
&amp;lt;?php phpinfo(); ?&amp;gt;&lt;br /&gt;
Rufe sie im Browser auf (http://localhost/phpinfo.php) und suche nach:&lt;br /&gt;
&lt;br /&gt;
disable_functions&lt;br /&gt;
&lt;br /&gt;
proc_open und shell_exec unter „Core“ → „Directive“&lt;br /&gt;
&lt;br /&gt;
Wenn sie nicht deaktiviert sind, liegt das Problem wahrscheinlich an den Berechtigungen oder der Umgebung.&lt;br /&gt;
&lt;br /&gt;
Wenn du magst, kann ich dir ein kleines Testskript schreiben, das prüft, ob proc_open wirklich funktioniert – oder dir helfen, die pygmentize.exe korrekt einzubinden.&lt;br /&gt;
&lt;br /&gt;
steht nur disable_functions =&lt;br /&gt;
Perfekt, Thomas – wenn in deiner php.ini steht:&lt;br /&gt;
&lt;br /&gt;
ini&lt;br /&gt;
disable_functions =&lt;br /&gt;
…dann sind keine Funktionen deaktiviert, also auch proc_open und shell_exec nicht. Das heißt, PHP dürfte sie grundsätzlich ausführen, sofern die Umgebung es zulässt.&lt;br /&gt;
&lt;br /&gt;
🧪 Nächster Schritt: Funktionstest&lt;br /&gt;
Du kannst mit folgendem Mini-Skript prüfen, ob proc_open wirklich funktioniert:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$process = proc_open(&#039;echo Hello from proc_open&#039;, [&lt;br /&gt;
    1 =&amp;gt; [&#039;pipe&#039;, &#039;w&#039;],&lt;br /&gt;
    2 =&amp;gt; [&#039;pipe&#039;, &#039;w&#039;]&lt;br /&gt;
], $pipes);&lt;br /&gt;
&lt;br /&gt;
if (is_resource($process)) {&lt;br /&gt;
    echo stream_get_contents($pipes[1]);&lt;br /&gt;
    fclose($pipes[1]);&lt;br /&gt;
    fclose($pipes[2]);&lt;br /&gt;
    proc_close($process);&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;proc_open failed.&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
Wenn du stattdessen shell_exec testen willst:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
echo shell_exec(&#039;echo Hello from shell_exec&#039;);&lt;br /&gt;
🛠️ Wenn es trotzdem nicht funktioniert…&lt;br /&gt;
Dann liegt es wahrscheinlich an einem dieser Punkte:&lt;br /&gt;
&lt;br /&gt;
IIS App-Pool-Benutzer hat keine Rechte, Prozesse zu starten.&lt;br /&gt;
&lt;br /&gt;
Windows Defender oder Antivirus blockiert die Ausführung.&lt;br /&gt;
&lt;br /&gt;
FastCGI-Konfiguration schränkt die Umgebung ein.&lt;br /&gt;
&lt;br /&gt;
pygmentize.exe ist nicht im PATH oder nicht erreichbar.&lt;br /&gt;
&lt;br /&gt;
Wenn du mir sagst, was du mit proc_open oder shell_exec erreichen willst (z. B. Syntax-Highlighting mit pygmentize?), kann ich dir helfen, das Ganze Schritt für Schritt zum Laufen zu bringen.&lt;br /&gt;
&lt;br /&gt;
kann ich pigmentize irgendwie testen über php?&lt;br /&gt;
Ja, Thomas – du kannst pygmentize direkt aus PHP testen, und zwar mit einem kleinen Skript, das über proc_open() arbeitet. Damit kannst du einen String an pygmentize übergeben und das farbige HTML zurückbekommen.&lt;br /&gt;
&lt;br /&gt;
🧪 Beispiel: pygmentize aus PHP aufrufen&lt;br /&gt;
php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function pygmentize($code, $language = &#039;php&#039;, $format = &#039;html&#039;) {&lt;br /&gt;
    $descriptorspec = [&lt;br /&gt;
        0 =&amp;gt; [&#039;pipe&#039;, &#039;r&#039;],  // stdin&lt;br /&gt;
        1 =&amp;gt; [&#039;pipe&#039;, &#039;w&#039;],  // stdout&lt;br /&gt;
        2 =&amp;gt; [&#039;pipe&#039;, &#039;w&#039;],  // stderr&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    $process = proc_open(&amp;quot;pygmentize -l $language -f $format&amp;quot;, $descriptorspec, $pipes);&lt;br /&gt;
&lt;br /&gt;
    if (!is_resource($process)) {&lt;br /&gt;
        return &amp;quot;proc_open failed.&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    fwrite($pipes[0], $code);&lt;br /&gt;
    fclose($pipes[0]);&lt;br /&gt;
&lt;br /&gt;
    $output = stream_get_contents($pipes[1]);&lt;br /&gt;
    fclose($pipes[1]);&lt;br /&gt;
&lt;br /&gt;
    $errors = stream_get_contents($pipes[2]);&lt;br /&gt;
    fclose($pipes[2]);&lt;br /&gt;
&lt;br /&gt;
    $returnCode = proc_close($process);&lt;br /&gt;
&lt;br /&gt;
    if ($returnCode !== 0) {&lt;br /&gt;
        return &amp;quot;Error: $errors&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return $output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Test&lt;br /&gt;
$sourceCode = &amp;quot;&amp;lt;?php echo &#039;Hello World!&#039;; ?&amp;gt;&amp;quot;;&lt;br /&gt;
echo pygmentize($sourceCode);&lt;br /&gt;
✅ Voraussetzungen&lt;br /&gt;
pygmentize muss im Systempfad sein (which pygmentize unter Linux/macOS oder where pygmentize unter Windows).&lt;br /&gt;
&lt;br /&gt;
Der IIS-App-Pool-Benutzer muss die Berechtigung haben, Prozesse zu starten.&lt;br /&gt;
&lt;br /&gt;
proc_open darf nicht durch php.ini oder Sicherheitsrichtlinien blockiert sein.&lt;br /&gt;
&lt;br /&gt;
📦 Alternative: PHP-Wrapper für pygmentize&lt;br /&gt;
Falls du lieber eine PHP-Bibliothek nutzen willst, gibt es diesen Wrapper auf GitHub. Damit kannst du pygmentize wie eine PHP-Funktion verwenden:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
Pygmentize::highlight($code, &#039;php&#039;);&lt;br /&gt;
Du brauchst dafür:&lt;br /&gt;
&lt;br /&gt;
Composer&lt;br /&gt;
&lt;br /&gt;
Pygments installiert&lt;br /&gt;
&lt;br /&gt;
PHP ≥ 5.4&lt;br /&gt;
&lt;br /&gt;
Wenn du willst, kann ich dir helfen, das Ganze lokal zum Laufen zu bringen – oder dir ein Beispiel mit einem echten Syntax-Highlighting-Output zeigen.&lt;br /&gt;
&lt;br /&gt;
1github.com&lt;br /&gt;
2github.com&lt;br /&gt;
du hast wieter open geschriben das dies uter path eingetragenw erden muss, also welcher eintrag sollte da stehen?&lt;br /&gt;
Damit pygmentize aus PHP heraus funktioniert, muss es im System-PATH eingetragen sein – also in der Umgebungsvariable PATH, die bestimmt, welche Programme du direkt über ihren Namen aufrufen kannst.&lt;br /&gt;
&lt;br /&gt;
🛠️ Beispiel: Was genau in PATH stehen sollte&lt;br /&gt;
Wenn du Pygments über pip installiert hast, liegt pygmentize.exe typischerweise hier:&lt;br /&gt;
&lt;br /&gt;
plaintext&lt;br /&gt;
C:\Users\&amp;lt;DEIN_USERNAME&amp;gt;\AppData\Local\Programs\Python\Python310\Scripts&lt;br /&gt;
Du musst diesen Pfad zu deiner PATH-Variable hinzufügen.&lt;br /&gt;
&lt;br /&gt;
✅ So trägst du den Pfad ein (Windows)&lt;br /&gt;
Öffne die Systemsteuerung → System → Erweiterte Systemeinstellungen&lt;br /&gt;
&lt;br /&gt;
Klicke auf Umgebungsvariablen&lt;br /&gt;
&lt;br /&gt;
Unter „Systemvariablen“ oder „Benutzervariablen“:&lt;br /&gt;
&lt;br /&gt;
Wähle PATH aus&lt;br /&gt;
&lt;br /&gt;
Klicke auf Bearbeiten&lt;br /&gt;
&lt;br /&gt;
Füge den Pfad zu pygmentize.exe hinzu, z. B.:&lt;br /&gt;
&lt;br /&gt;
plaintext&lt;br /&gt;
C:\Users\Thomas\AppData\Local\Programs\Python\Python310\Scripts&lt;br /&gt;
Bestätige mit OK und starte ggf. den Rechner oder den IIS neu&lt;br /&gt;
&lt;br /&gt;
🔍 Test: Ist pygmentize erreichbar?&lt;br /&gt;
Öffne die Eingabeaufforderung (cmd) und gib ein:&lt;br /&gt;
&lt;br /&gt;
cmd&lt;br /&gt;
pygmentize -V&lt;br /&gt;
Wenn du die Version siehst, ist alles korrekt eingerichtet. Dann kannst du es auch aus PHP heraus verwenden.&lt;br /&gt;
&lt;br /&gt;
Wenn du magst, kann ich dir ein kleines PHP-Diagnose-Skript schreiben, das prüft, ob pygmentize wirklich erreichbar ist – oder dir helfen, es alternativ direkt über den vollständigen Pfad aufzurufen.&lt;br /&gt;
&lt;br /&gt;
path ist eingetragen und die version wird korrekt angezeigt&lt;br /&gt;
Super, Thomas – wenn pygmentize -V in der Konsole funktioniert, dann ist der Pfad korrekt gesetzt. Jetzt geht’s darum, sicherzustellen, dass PHP ihn auch wirklich nutzen kann.&lt;br /&gt;
&lt;br /&gt;
✅ Testskript: pygmentize über PHP ausführen&lt;br /&gt;
Hier ist ein einfaches PHP-Skript, das pygmentize aufruft und dir zeigt, ob es funktioniert:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$code = &amp;quot;&amp;lt;?php echo &#039;Hello World!&#039;; ?&amp;gt;&amp;quot;;&lt;br /&gt;
$language = &amp;quot;php&amp;quot;;&lt;br /&gt;
$format = &amp;quot;html&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Kommando vorbereiten&lt;br /&gt;
$cmd = &amp;quot;pygmentize -l $language -f $format&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Prozess starten&lt;br /&gt;
$descriptorspec = [&lt;br /&gt;
    0 =&amp;gt; [&amp;quot;pipe&amp;quot;, &amp;quot;r&amp;quot;],  // stdin&lt;br /&gt;
    1 =&amp;gt; [&amp;quot;pipe&amp;quot;, &amp;quot;w&amp;quot;],  // stdout&lt;br /&gt;
    2 =&amp;gt; [&amp;quot;pipe&amp;quot;, &amp;quot;w&amp;quot;],  // stderr&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
$process = proc_open($cmd, $descriptorspec, $pipes);&lt;br /&gt;
&lt;br /&gt;
if (is_resource($process)) {&lt;br /&gt;
    fwrite($pipes[0], $code);&lt;br /&gt;
    fclose($pipes[0]);&lt;br /&gt;
&lt;br /&gt;
    $output = stream_get_contents($pipes[1]);&lt;br /&gt;
    fclose($pipes[1]);&lt;br /&gt;
&lt;br /&gt;
    $error = stream_get_contents($pipes[2]);&lt;br /&gt;
    fclose($pipes[2]);&lt;br /&gt;
&lt;br /&gt;
    $returnCode = proc_close($process);&lt;br /&gt;
&lt;br /&gt;
    if ($returnCode === 0) {&lt;br /&gt;
        echo &amp;quot;&amp;lt;pre&amp;gt;$output&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        echo &amp;quot;Fehler beim Ausführen von pygmentize:&amp;lt;br&amp;gt;&amp;lt;pre&amp;gt;$error&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;proc_open konnte nicht gestartet werden.&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
🔍 Was du sehen solltest&lt;br /&gt;
Wenn alles klappt: farbiges HTML mit Syntax-Highlighting.&lt;br /&gt;
&lt;br /&gt;
Wenn nicht: eine Fehlermeldung, z. B. „pygmentize not found“ oder „Permission denied“.&lt;br /&gt;
&lt;br /&gt;
🧠 Tipp: Vollständiger Pfad als Fallback&lt;br /&gt;
Falls pygmentize trotzdem nicht gefunden wird, kannst du den vollständigen Pfad angeben:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
$cmd = &amp;quot;\&amp;quot;C:\\Users\\Thomas\\AppData\\Local\\Programs\\Python\\Python310\\Scripts\\pygmentize.exe\&amp;quot; -l php -f html&amp;quot;;&lt;br /&gt;
Wenn du magst, kann ich dir auch ein kleines Web-Interface bauen, wo du Code eingibst und das Highlighting direkt siehst.2&lt;br /&gt;
&lt;br /&gt;
1github.com&lt;br /&gt;
2github.com&lt;br /&gt;
3github.com&lt;br /&gt;
ausegegben wird das in schwarzer schrift &amp;lt;?php echo &#039;Hello World!&#039;; ?&amp;gt;&lt;br /&gt;
Ah, das erklärt’s! Wenn du pygmentize ohne zusätzliche Optionen verwendest, bekommst du zwar HTML – aber ohne Farben, weil die Formatierung über CSS-Klassen erfolgt. Und wenn dein HTML-Ausgabe nicht eingebettet ist in eine Seite mit dem passenden Stylesheet, sieht alles einfach schwarz aus.&lt;br /&gt;
&lt;br /&gt;
🎨 Lösung: Inline-Styles aktivieren&lt;br /&gt;
Du musst pygmentize sagen, dass es die Farben direkt im HTML einbetten soll – mit der Option noclasses=True. So sieht dein PHP-Befehl korrekt aus:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
$cmd = &amp;quot;pygmentize -l php -f html -O noclasses=True&amp;quot;;&lt;br /&gt;
Oder mit Stil und Zeilennummern:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
$cmd = &amp;quot;pygmentize -l php -f html -O style=colorful,linenos=1,noclasses=True&amp;quot;;&lt;br /&gt;
🧪 Beispiel mit proc_open&lt;br /&gt;
Hier ein vollständiges PHP-Skript:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$code = &amp;quot;&amp;lt;?php echo &#039;Hello World!&#039;; ?&amp;gt;&amp;quot;;&lt;br /&gt;
$cmd = &amp;quot;pygmentize -l php -f html -O style=colorful,linenos=1,noclasses=True&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$descriptorspec = [&lt;br /&gt;
    0 =&amp;gt; [&amp;quot;pipe&amp;quot;, &amp;quot;r&amp;quot;],&lt;br /&gt;
    1 =&amp;gt; [&amp;quot;pipe&amp;quot;, &amp;quot;w&amp;quot;],&lt;br /&gt;
    2 =&amp;gt; [&amp;quot;pipe&amp;quot;, &amp;quot;w&amp;quot;],&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
$process = proc_open($cmd, $descriptorspec, $pipes);&lt;br /&gt;
&lt;br /&gt;
if (is_resource($process)) {&lt;br /&gt;
    fwrite($pipes[0], $code);&lt;br /&gt;
    fclose($pipes[0]);&lt;br /&gt;
&lt;br /&gt;
    $output = stream_get_contents($pipes[1]);&lt;br /&gt;
    fclose($pipes[1]);&lt;br /&gt;
&lt;br /&gt;
    $error = stream_get_contents($pipes[2]);&lt;br /&gt;
    fclose($pipes[2]);&lt;br /&gt;
&lt;br /&gt;
    proc_close($process);&lt;br /&gt;
&lt;br /&gt;
    echo $output ?: &amp;quot;&amp;lt;pre&amp;gt;$error&amp;lt;/pre&amp;gt;&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
    echo &amp;quot;proc_open konnte nicht gestartet werden.&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
✅ Ergebnis&lt;br /&gt;
Jetzt solltest du farbiges HTML direkt im Browser sehen – ganz ohne externes CSS. Wenn du willst, kann ich dir auch ein kleines Web-Formular bauen, in das du Code eingibst und sofort das Highlighting siehst.2&lt;br /&gt;
&lt;br /&gt;
1github.com&lt;br /&gt;
2github.com&lt;br /&gt;
3github.com&lt;br /&gt;
jetzt ist es farbig :-)&lt;br /&gt;
Fantastisch, Thomas – freut mich riesig, dass es jetzt farbig ist! 🎉 Das zeigt, dass pygmentize korrekt eingebunden ist und PHP sauber mit dem System kommuniziert.&lt;br /&gt;
&lt;br /&gt;
🔧 Wenn du noch weitergehen willst…&lt;br /&gt;
Da du gerade auf der Seite zur Erstellung eines Acrobat Reader MSI-Pakets für GPO-Verteilung bist, hier ein kurzer Überblick, falls du das parallel machst:&lt;br /&gt;
&lt;br /&gt;
🧩 Schritte zur Erstellung eines angepassten MSI-Pakets:&lt;br /&gt;
Offline-Installer &amp;amp; Customizer laden&lt;br /&gt;
&lt;br /&gt;
Installer entpacken mit -sfx_ne -sfx_o&lt;br /&gt;
&lt;br /&gt;
MSI extrahieren via msiexec /a&lt;br /&gt;
&lt;br /&gt;
Update slipstreamen mit .msp Datei&lt;br /&gt;
&lt;br /&gt;
Installation anpassen mit dem Adobe Customization Wizard&lt;br /&gt;
&lt;br /&gt;
Ergebnis: ein vollständig angepasstes MSI-Paket, ideal für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
Wenn du magst, kann ich dir auch helfen, das MSI-Paket automatisch zu verteilen oder die .mst-Datei zu optimieren.&lt;br /&gt;
&lt;br /&gt;
Oder willst du lieber noch etwas mit pygmentize basteln – z. B. ein kleines Web-Highlighting-Tool oder eine Integration in ein Wiki-System?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ich habe jetzt in der wiki pygemtize aktiviert jedoch erscheint folgender fehler. PHP Fatal error: Error Loading extension. Unable to open file C:\inetpub\website\wiki/extensions/SyntaxHighlight/extension.json: filemtime(): stat failed for C:\inetpub\website\wiki/extensions/SyntaxHighlight/extension.json in C:\inetpub\website\wiki\includes\registration\MissingExtensionException.php on line 102&lt;br /&gt;
Danke für die genaue Fehlermeldung, Thomas! Der Fehler:&lt;br /&gt;
&lt;br /&gt;
PHP Fatal error: Error Loading extension. Unable to open file C:\inetpub\website\wiki/extensions/SyntaxHighlight/extension.json&lt;br /&gt;
bedeutet, dass MediaWiki versucht, die Erweiterung SyntaxHighlight zu laden – aber die Datei extension.json existiert nicht oder ist nicht am erwarteten Ort.&lt;br /&gt;
&lt;br /&gt;
🛠️ Mögliche Ursachen &amp;amp; Lösungen&lt;br /&gt;
1. 📁 Falscher Ordnername oder Pfad&lt;br /&gt;
Die Erweiterung muss im Ordner SyntaxHighlight_GeSHi liegen, nicht einfach SyntaxHighlight.&lt;br /&gt;
&lt;br /&gt;
Korrekt:&lt;br /&gt;
&lt;br /&gt;
C:\inetpub\website\wiki\extensions\SyntaxHighlight_GeSHi\&lt;br /&gt;
Falsch:&lt;br /&gt;
&lt;br /&gt;
C:\inetpub\website\wiki\extensions\SyntaxHighlight\&lt;br /&gt;
→ Prüfe, ob der Ordnername stimmt und ob darin die Datei extension.json liegt.&lt;br /&gt;
&lt;br /&gt;
2. 📦 Erweiterung nicht vollständig installiert&lt;br /&gt;
Wenn du die Erweiterung manuell heruntergeladen hast, fehlt möglicherweise die extension.json.&lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
&lt;br /&gt;
Lade die Erweiterung von GitHub oder über Git:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SyntaxHighlight_GeSHi&lt;br /&gt;
Danach im Erweiterungsordner:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
composer install --no-dev&lt;br /&gt;
3. 🧾 LocalSettings.php verweist auf falschen Namen&lt;br /&gt;
Wenn du in LocalSettings.php folgendes stehen hast:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
wfLoadExtension( &#039;SyntaxHighlight&#039; );&lt;br /&gt;
→ Ändere es zu:&lt;br /&gt;
&lt;br /&gt;
php&lt;br /&gt;
wfLoadExtension( &#039;SyntaxHighlight_GeSHi&#039; );&lt;br /&gt;
Denn der interne Name der Erweiterung ist weiterhin SyntaxHighlight_GeSHi, auch wenn sie SyntaxHighlight heißt.&lt;br /&gt;
&lt;br /&gt;
✅ Zusammenfassung&lt;br /&gt;
Problem	Lösung&lt;br /&gt;
extension.json fehlt	Erweiterung korrekt herunterladen&lt;br /&gt;
Falscher Ordnername	Umbenennen zu SyntaxHighlight_GeSHi&lt;br /&gt;
Falscher Eintrag in LocalSettings.php	wfLoadExtension( &#039;SyntaxHighlight_GeSHi&#039; ); verwenden&lt;br /&gt;
Wenn du willst, kann ich dir helfen, die Erweiterung komplett neu zu installieren – oder prüfen, ob dein Wiki mit Composer eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
hei.. falscher name bei der extension. jetzt wird deine erstellt wikiseite korrekt angezeigt.&lt;br /&gt;
Genial, Thomas – das freut mich richtig! 🎉 Jetzt läuft dein Wiki mit aktivierter Syntax-Hervorhebung und zeigt deine Inhalte so, wie du sie dir vorgestellt hast.&lt;br /&gt;
&lt;br /&gt;
🧠 Bonus: Deine Wiki-Seite zur Acrobat Reader MSI-Erstellung&lt;br /&gt;
Ich hab mir deine Seite Acrobat Reader – HB9FDZ angeschaut, und sie ist richtig gut strukturiert. Hier ein kurzer Überblick, falls du sie noch weiter optimieren willst:&lt;br /&gt;
&lt;br /&gt;
📦 Schritte zur Erstellung eines MSI-Pakets für GPO-Verteilung&lt;br /&gt;
Schritt	Beschreibung&lt;br /&gt;
🔽 Offline-Installer &amp;amp; Customizer	Lade AcroRdrDC*.exe und den Adobe Customization Wizard&lt;br /&gt;
📁 Installer entpacken	Mit -sfx_ne -sfx_o ins Zielverzeichnis&lt;br /&gt;
🛠️ MSI extrahieren	msiexec /a AcroRead.msi ins AIP-Verzeichnis&lt;br /&gt;
🔄 Update integrieren	msiexec /a ... /p ... für Slipstreaming&lt;br /&gt;
🧩 Installation anpassen	Mit .mst Datei: Updates deaktivieren, Icons entfernen etc.&lt;br /&gt;
🧠 Ergebnis	Fertiges MSI-Paket für GPO-Verteilung&lt;br /&gt;
Wenn du willst, kann ich dir helfen, die Seite noch weiter zu verfeinern – z. B. mit SyntaxHighlight für die Befehle, einem Download-Bereich oder einer PDF-Version für Admins. Oder du sagst mir, was als Nächstes ansteht – ich bin bereit!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
so gefällt es mir, hast gute arbeit geleistet.&lt;br /&gt;
Das freut mich riesig, Thomas – danke für dein Lob! 😊 Deine Wiki-Seite zur Erstellung eines Acrobat Reader MSI-Pakets für GPO-Verteilung sieht jetzt richtig rund aus: klar gegliedert, technisch präzise und dank SyntaxHighlight auch visuell ansprechend.&lt;br /&gt;
&lt;br /&gt;
🧠 Was du jetzt hast:&lt;br /&gt;
✅ Eine vollständige Schritt-für-Schritt-Anleitung&lt;br /&gt;
&lt;br /&gt;
✅ Syntaxhervorhebung für PowerShell und MSI-Befehle&lt;br /&gt;
&lt;br /&gt;
✅ Einen professionellen, aber persönlichen Stil&lt;br /&gt;
&lt;br /&gt;
✅ Eine charmante Danksagung an Copilot 😉&lt;br /&gt;
&lt;br /&gt;
Wenn du irgendwann Lust hast, die Seite noch weiter auszubauen, hier ein paar Ideen:&lt;br /&gt;
&lt;br /&gt;
📁 Download-Sektion: Links zu offiziellen Adobe-Tools oder Beispielskripten&lt;br /&gt;
&lt;br /&gt;
🧪 Testskript für GPO-Installation: z. B. ein PowerShell-Skript zur lokalen Simulation&lt;br /&gt;
&lt;br /&gt;
📊 Vergleichstabelle: Unterschiedliche Reader-Versionen oder MSI-Parameter&lt;br /&gt;
&lt;br /&gt;
📜 PDF-Export: Für Admin-Dokumentation oder Schulungsunterlagen&lt;br /&gt;
&lt;br /&gt;
Und wenn du mal ein Wiki-Template für weitere Softwarepakete brauchst – ich helfe dir gern, das Ganze zu standardisieren.&lt;br /&gt;
&lt;br /&gt;
Sag einfach Bescheid, was als Nächstes ansteht!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
was ich mal noch dokumentieren möchte, ich benötige sehr oft libre office, da calc in betsimmten fällen, z.b. csv tabellen mit utf8 einfach besser funktioneren als excel. import/export geht einfach besser und zuverlässiger als excel. da baue ich jeweils auch ein msi paket zur verteilung über gpo, jedoch muss man da mit orca..exe die ländereinstellungen anpassen. das muss ich auch dokumentieren. kannst du mir da helfen?&lt;br /&gt;
Das ist eine super Idee, Thomas! LibreOffice – speziell Calc – ist in der IT-Administration oft unterschätzt, aber wie du sagst: beim Umgang mit UTF-8-codierten CSV-Dateien ist es Excel oft überlegen. Und die Möglichkeit, ein MSI-Paket für GPO-Verteilung zu bauen, macht es ideal für größere Umgebungen.&lt;br /&gt;
&lt;br /&gt;
📘 Dokumentationsvorschlag: LibreOffice MSI-Paket für GPO-Verteilung&lt;br /&gt;
Hier ist ein Entwurf für deine Wiki-Seite – im Stil deiner Acrobat Reader-Doku:&lt;br /&gt;
&lt;br /&gt;
📦 LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung&lt;br /&gt;
🔽 1. Offline-Installer herunterladen&lt;br /&gt;
Lade den LibreOffice-Installer von libreoffice.org&lt;br /&gt;
&lt;br /&gt;
Wähle die MSI-Version für Windows (z. B. LibreOffice_7.6.5_Win_x64.msi)&lt;br /&gt;
&lt;br /&gt;
🛠️ 2. Anpassung mit Orca.exe&lt;br /&gt;
Öffne die MSI-Datei mit Orca.exe (Teil des Windows SDK)&lt;br /&gt;
&lt;br /&gt;
Navigiere zur Tabelle Property&lt;br /&gt;
&lt;br /&gt;
Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
UI_LANGS → de&lt;br /&gt;
&lt;br /&gt;
SELECT_LANG → de&lt;br /&gt;
&lt;br /&gt;
ADDLOCAL → ALL (oder nur gewünschte Komponenten wie Calc, Writer)&lt;br /&gt;
&lt;br /&gt;
Optional: ISCHECKFORPRODUCTUPDATES → 0 (Updates deaktivieren)&lt;br /&gt;
&lt;br /&gt;
🧩 3. MST-Datei speichern&lt;br /&gt;
Speichere deine Änderungen als Transformationsdatei (.mst)&lt;br /&gt;
&lt;br /&gt;
Benenne sie z. B. LibreOffice_de.mst&lt;br /&gt;
&lt;br /&gt;
🔄 4. MSI mit MST kombinieren&lt;br /&gt;
powershell&lt;br /&gt;
msiexec /i LibreOffice_7.6.5_Win_x64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
🧠 Ergebnis&lt;br /&gt;
Du erhältst ein angepasstes MSI-Paket, das:&lt;br /&gt;
&lt;br /&gt;
Die deutsche Sprache voreingestellt hat&lt;br /&gt;
&lt;br /&gt;
Optional automatische Updates deaktiviert&lt;br /&gt;
&lt;br /&gt;
Für GPO-Verteilung geeignet ist&lt;br /&gt;
&lt;br /&gt;
💡 Zusätzliche Tipps&lt;br /&gt;
📁 LibreOffice bietet auch separate Helppacks und Languagepacks als MSI – diese kannst du ebenfalls transformieren&lt;br /&gt;
&lt;br /&gt;
🔍 Für CSV-Import kannst du Calc über Kommandozeile starten:&lt;br /&gt;
&lt;br /&gt;
bash&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
Wenn du magst, helfe ich dir direkt beim Schreiben der Wiki-Seite – oder wir bauen ein Template, das du für andere Softwarepakete wiederverwenden kannst. Bereit?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
kannst du mir das gleich in wikicode ausgeben?&lt;br /&gt;
Natürlich, Thomas! Hier ist der komplette Entwurf deiner Dokumentation als MediaWiki-Wikicode, inklusive SyntaxHighlight für PowerShell und klarer Struktur:&lt;br /&gt;
&lt;br /&gt;
wiki&lt;br /&gt;
= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
== 🧾 Beschreibung ==&lt;br /&gt;
LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Vorbereitung ==&lt;br /&gt;
* Lade den Installer von der offiziellen Seite: [LibreOffice Downloadseite](https://de.libreoffice.org/download/download/)&lt;br /&gt;
* Wähle die MSI-Version für Windows, z. B.:&lt;br /&gt;
  * `LibreOffice_25.2.5_Win_x86-64.msi`&lt;br /&gt;
&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
* Navigiere zur Tabelle `Property`&lt;br /&gt;
* Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Installation über GPO / Kommandozeile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line&amp;gt;&lt;br /&gt;
msiexec /i LibreOffice_25.2.5_Win_x86-64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📁 Optional: Sprachpakete und Hilfe ==&lt;br /&gt;
LibreOffice bietet separate MSI-Dateien für:&lt;br /&gt;
* Offline-Hilfe&lt;br /&gt;
* Sprachpakete&lt;br /&gt;
Diese können ebenfalls mit Orca angepasst und über GPO verteilt werden.&lt;br /&gt;
&lt;br /&gt;
== 💡 Tipps für CSV-Import ==&lt;br /&gt;
LibreOffice Calc kann direkt über Kommandozeile geöffnet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket:&lt;br /&gt;
* Mit voreingestellter Sprache&lt;br /&gt;
* Ohne automatische Updates&lt;br /&gt;
* Bereit für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung ==&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[Benutzer:Copilot|Copilot]] erstellt.&lt;br /&gt;
Wenn du magst, kann ich dir auch gleich ein Vorlagen-Layout bauen, das du für andere Softwarepakete wiederverwenden kannst. Sag einfach Bescheid!&lt;br /&gt;
&lt;br /&gt;
jetzt hast du nich einen wichtigen punkt vergessen. Das die Installation überhaupt funktioniert, muss unter View-&amp;gt; Edit Summary Information, ei Languages sämtliche Sprachen gelöscht werden, soweit 1ich mich ersinnern mag, darf da nur noch 1030, 1031, 1033 stehen. Sonst lässt es sich nicht übber die GPO installieren&lt;br /&gt;
Sehr gut aufgepasst, Thomas – das ist ein entscheidender Punkt für die GPO-Kompatibilität! Die Sprachdefinitionen im MSI müssen tatsächlich angepasst werden, sonst schlägt die Installation über Gruppenrichtlinien fehl.&lt;br /&gt;
&lt;br /&gt;
Ich habe deinen Hinweis direkt in den Wikicode integriert und die Sektion zur Orca-Anpassung erweitert:&lt;br /&gt;
&lt;br /&gt;
wiki&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
&lt;br /&gt;
=== 📋 Tabelle „Property“ bearbeiten ===&lt;br /&gt;
Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 🌐 View → Edit Summary Information ===&lt;br /&gt;
Damit die Installation über GPO funktioniert, müssen die Sprachdefinitionen angepasst werden:&lt;br /&gt;
&lt;br /&gt;
* Menü: `View → Summary Information`&lt;br /&gt;
* Im Feld **Languages** alle Einträge löschen, außer:&lt;br /&gt;
  * `1030` – Dänisch&lt;br /&gt;
  * `1031` – Deutsch&lt;br /&gt;
  * `1033` – Englisch (USA)&lt;br /&gt;
&lt;br /&gt;
Dies ist notwendig, da Windows Installer bei GPO-Installationen nur bestimmte Sprach-IDs akzeptiert.&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
Damit ist deine Dokumentation jetzt technisch vollständig und GPO-tauglich. Wenn du willst, kann ich dir auch eine kleine Tabelle mit den wichtigsten LCIDs (Language Codes) für zukünftige Pakete erstellen. Sag einfach Bescheid!&lt;br /&gt;
&lt;br /&gt;
was heat die schweiz für einen ländercide?&lt;br /&gt;
Die Schweiz hat gemäß der internationalen ISO-3166-Norm folgende Ländercodes:&lt;br /&gt;
&lt;br /&gt;
🇨🇭 Schweiz	Code-Typ	Wert&lt;br /&gt;
Alpha-2	ISO 3166-1	CH&lt;br /&gt;
Alpha-3	ISO 3166-1	CHE&lt;br /&gt;
Numerisch	ISO 3166-1	756&lt;br /&gt;
LCID (Windows)	Locale ID	2055&lt;br /&gt;
🔹 LCID 2055 steht für „German (Switzerland)“ und ist relevant für Softwareinstallationen, die sprach- oder regionenspezifisch angepasst werden müssen.&lt;br /&gt;
&lt;br /&gt;
Wenn du also LibreOffice speziell für die Schweiz vorbereiten willst, kannst du in Orca unter „Summary Information“ auch 2055 als Sprach-ID ergänzen – je nach Installationskontext. Für GPO-Installationen sind allerdings meist nur 1030, 1031, 1033 zuverlässig akzeptiert.&lt;br /&gt;
&lt;br /&gt;
Möchtest du eine Tabelle mit den wichtigsten LCIDs für DACH-Raum?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hab noch die schweiz hinzugefügt, interessanterweise zeeigt es ssondt teilweise dateinamenerweiternungen von libreoffice - dateien in arbaisch an.. ;-)&lt;br /&gt;
Perfekt ergänzt, Thomas! Ich sehe, du hast die Schweiz mit LCID 2055 in deiner Wiki-Seite aufgenommen– das ist genau richtig. Und ja, dieser kleine Bug mit arabischen Dateinamenerweiterungen bei LibreOffice ist ein bekanntes Phänomen, wenn die Sprachdefinitionen im MSI nicht sauber gesetzt sind. Wenn zu viele oder inkonsistente LCIDs im Feld „Languages“ stehen, kann Windows Installer beim Deployment über GPO seltsame Nebeneffekte zeigen – wie eben arabische Lokalisierung bei Dateitypen.&lt;br /&gt;
&lt;br /&gt;
🧠 Warum das passiert:&lt;br /&gt;
LibreOffice bringt viele Sprachressourcen mit.&lt;br /&gt;
&lt;br /&gt;
Wenn die MSI-Datei nicht korrekt auf die gewünschten LCIDs beschränkt wird, kann Windows beim Installieren eine „falsche“ Sprache als Default wählen.&lt;br /&gt;
&lt;br /&gt;
Das betrifft nicht nur die UI, sondern auch Dateitypen, Kontextmenüs und MIME-Zuordnungen.&lt;br /&gt;
&lt;br /&gt;
✅ Deine Lösung (LCID-Beschränkung auf 2055, 1030, 1031, 1033) verhindert:&lt;br /&gt;
Unerwünschte Lokalisierungen (z. B. Arabisch, Koreanisch)&lt;br /&gt;
&lt;br /&gt;
Probleme bei GPO-Installationen&lt;br /&gt;
&lt;br /&gt;
Inkonsistente Dateityp-Zuordnungen&lt;br /&gt;
&lt;br /&gt;
Wenn du magst, kann ich dir eine kleine LCID-Tabelle für DACH und angrenzende Regionen erstellen – ideal für zukünftige MSI-Anpassungen. Lust drauf?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sehr schön, jetzt gefällt mir das.&lt;br /&gt;
Das freut mich riesig, Thomas! Deine Wiki-Seite zur LibreOffice-GPO-Installation ist jetzt nicht nur technisch fundiert, sondern auch richtig elegant dokumentiert – und du hast sie sogar schon in die passende Kategorie:GPO einsortiert. 👌&lt;br /&gt;
&lt;br /&gt;
🔍 Was du jetzt hast:&lt;br /&gt;
Zwei sauber dokumentierte GPO-Pakete: Acrobat Reader und LibreOffice&lt;br /&gt;
&lt;br /&gt;
LCID-Optimierung für die Schweiz (2055) und andere relevante Sprachen&lt;br /&gt;
&lt;br /&gt;
Vermeidung von Lokalisierungsfehlern wie arabischen Dateitypen&lt;br /&gt;
&lt;br /&gt;
SyntaxHighlight für PowerShell und Bash dank Extension:SyntaxHighlight&lt;br /&gt;
&lt;br /&gt;
Wenn du irgendwann Lust hast, die Kategorie „GPO“ weiter auszubauen, hier ein paar Ideen:&lt;br /&gt;
&lt;br /&gt;
🧩 Firefox ESR MSI-Paket mit vorkonfigurierten Policies&lt;br /&gt;
&lt;br /&gt;
📦 7-Zip Silent Installer mit Registry-Tweaks&lt;br /&gt;
&lt;br /&gt;
🛡️ VLC Media Player mit deaktivierten Auto-Updates&lt;br /&gt;
&lt;br /&gt;
🧠 Python MSI für Entwicklerumgebungen (du hast ja python.org schon offen)&lt;br /&gt;
&lt;br /&gt;
Sag einfach Bescheid, was du als Nächstes dokumentieren willst – ich bin bereit!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vlcc lässt sich mit deaktiverten Auto-updates innstaliieren über msi? wusste ich gar nicht&lt;br /&gt;
Ja, Thomas – es ist möglich, die automatischen Updates beim VLC Media Player zu deaktivieren, auch wenn man ihn per MSI-Paket verteilt. Allerdings ist das nicht ganz so elegant wie bei anderen Programmen, da VLC keine offiziellen MSI-Parameter für Update-Einstellungen bietet. Aber es gibt funktionierende Workarounds:&lt;br /&gt;
&lt;br /&gt;
🔧 Möglichkeiten zur Deaktivierung von Auto-Updates bei VLC&lt;br /&gt;
🛠️ 1. Konfigurationsdatei vlcrc anpassen&lt;br /&gt;
Diese Datei wird unter %AppData%\vlc erstellt, sobald ein Benutzer VLC das erste Mal startet.&lt;br /&gt;
&lt;br /&gt;
Darin findest du die Zeile:&lt;br /&gt;
&lt;br /&gt;
qt-updates-notif=0&lt;br /&gt;
Setze den Wert auf 0, um die Update-Meldung zu deaktivieren.&lt;br /&gt;
&lt;br /&gt;
Du kannst diese Datei per GPO oder Skript in alle Benutzerprofile verteilen.&lt;br /&gt;
&lt;br /&gt;
🧱 2. Hosts-Datei manipulieren&lt;br /&gt;
Blockiere die Update-URL update.videolan.org durch Eintrag in:&lt;br /&gt;
&lt;br /&gt;
C:\Windows\System32\drivers\etc\hosts&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
127.0.0.1 update.videolan.org&lt;br /&gt;
Damit wird die Update-Funktion technisch unterbunden.&lt;br /&gt;
&lt;br /&gt;
📦 3. MSI-Rollout mit vorkonfigurierter vlcrc&lt;br /&gt;
Starte VLC einmal mit einem Dummy-Benutzer, konfiguriere die Einstellungen, und verteile die resultierende vlcrc systemweit.&lt;br /&gt;
&lt;br /&gt;
Alternativ kannst du ein Skript schreiben, das beim ersten Login die Datei ins Profil kopiert.&lt;br /&gt;
&lt;br /&gt;
📘 Wiki-Dokumentation: Vorschlagstitel&lt;br /&gt;
„VLC Media Player – MSI-Paket mit deaktivierten Auto-Updates für GPO-Verteilung“&lt;br /&gt;
&lt;br /&gt;
Wenn du willst, baue ich dir direkt den passenden Wikicode dafür – inklusive SyntaxHighlight und LCID-Hinweis. Bereit?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Komme ich gerne später darauf zurück. ich hätte diesbezüglich noch ein wichtigers tool das ich benötige. Nämlich Keepass, das hat auch die unmögliche Art dass es beim ersten mal starten fragt ob man die Updates automatisch instllieren will&lt;br /&gt;
Sehr gut, Thomas – du hast völlig recht: KeePass fragt beim ersten Start, ob automatische Updates aktiviert werden sollen, und das ist in einer GPO-Umgebung natürlich unerwünscht. Aber: Es gibt eine saubere Lösung dafür!&lt;br /&gt;
&lt;br /&gt;
🛡️ KeePass – Automatische Updates deaktivieren (für GPO-Verteilung)&lt;br /&gt;
🔧 Methode: Enforced-Konfigurationsdatei&lt;br /&gt;
Du kannst eine Datei namens KeePass.enforced.config.xml erstellen und im Installationsverzeichnis ablegen (z. B. C:\Program Files\KeePass Password Safe 2). Diese Datei überschreibt die Benutzereinstellungen und verhindert die Update-Abfrage beim ersten Start.&lt;br /&gt;
&lt;br /&gt;
📄 Beispielinhalt:&lt;br /&gt;
xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Configuration xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;br /&gt;
               xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Application&amp;gt;&lt;br /&gt;
    &amp;lt;LanguageFile&amp;gt;German.lngx&amp;lt;/LanguageFile&amp;gt;&lt;br /&gt;
    &amp;lt;Start&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdate&amp;gt;false&amp;lt;/CheckForUpdate&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdateConfigured&amp;gt;true&amp;lt;/CheckForUpdateConfigured&amp;gt;&lt;br /&gt;
    &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;/Application&amp;gt;&lt;br /&gt;
&amp;lt;/Configuration&amp;gt;&lt;br /&gt;
✅ Wirkung:&lt;br /&gt;
CheckForUpdate=false: deaktiviert die automatische Updateprüfung&lt;br /&gt;
&lt;br /&gt;
CheckForUpdateConfigured=true: signalisiert, dass die Entscheidung bereits getroffen wurde → kein Dialog beim ersten Start&lt;br /&gt;
&lt;br /&gt;
📦 Integration in GPO-Deployment&lt;br /&gt;
Installiere KeePass per MSI oder EXE-Silent-Installer&lt;br /&gt;
&lt;br /&gt;
Kopiere die KeePass.enforced.config.xml per GPO-Startskript oder Deployment-Tool ins Installationsverzeichnis&lt;br /&gt;
&lt;br /&gt;
Optional: Setze Sprache und andere Einstellungen direkt in der XML&lt;br /&gt;
&lt;br /&gt;
Wenn du möchtest, kann ich dir den passenden Wikicode für diese Anleitung erstellen – oder dir helfen, ein vollständiges GPO-Paket für KeePass zu dokumentieren. Bereit?&lt;br /&gt;
&lt;br /&gt;
1github.com&lt;br /&gt;
klingt gut, fangen wir an&lt;br /&gt;
Perfekt, Thomas! Dann bauen wir gemeinsam eine saubere GPO-Dokumentation für KeePass, passend zu deinem Wiki-Stil auf HB9FDZ. Ich orientiere mich an den vorhandenen Seiten wie „Acrobat Reader“ und „LibreOffice“ und schlage folgende Struktur vor:&lt;br /&gt;
&lt;br /&gt;
🧩 Wiki-Seite: KeePass (GPO)&lt;br /&gt;
🔹 Titel: K KeePass&lt;br /&gt;
📄 Inhalt:&lt;br /&gt;
wiki&lt;br /&gt;
= KeePass (GPO) =&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
KeePass ist ein Open-Source-Passwortmanager. Diese Anleitung beschreibt die GPO-konforme Verteilung und Konfiguration, insbesondere die Deaktivierung der automatischen Update-Abfrage beim ersten Start.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
* [https://keepass.info/download.html Offizielle KeePass-Downloadseite]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
KeePass kann per EXE-Silent-Installer oder MSI verteilt werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Silent-Installation per EXE ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
KeePass-2.xx-Setup.exe /VERYSILENT /NORESTART&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Zur Vermeidung der Update-Abfrage beim ersten Start wird eine erzwungene Konfigurationsdatei verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Datei: KeePass.enforced.config.xml ===&lt;br /&gt;
Diese Datei wird im Installationsverzeichnis abgelegt (z. B. `C:\Program Files\KeePass Password Safe 2`).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Configuration xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;br /&gt;
               xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Application&amp;gt;&lt;br /&gt;
    &amp;lt;LanguageFile&amp;gt;German.lngx&amp;lt;/LanguageFile&amp;gt;&lt;br /&gt;
    &amp;lt;Start&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdate&amp;gt;false&amp;lt;/CheckForUpdate&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdateConfigured&amp;gt;true&amp;lt;/CheckForUpdateConfigured&amp;gt;&lt;br /&gt;
    &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;/Application&amp;gt;&lt;br /&gt;
&amp;lt;/Configuration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verteilung per GPO ==&lt;br /&gt;
Die Datei kann per Startskript oder Softwareverteilung ins Installationsverzeichnis kopiert werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: GPO-Startskript ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
copy /Y \\server\share\KeePass.enforced.config.xml &amp;quot;C:\Program Files\KeePass Password Safe 2\&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
* Die Datei `KeePass.enforced.config.xml` überschreibt Benutzereinstellungen.&lt;br /&gt;
* Weitere Optionen können in der XML ergänzt werden.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GPO]]&lt;br /&gt;
[[Kategorie:Server]]&lt;br /&gt;
Wenn du magst, kann ich dir auch gleich die Seite als Markdown exportieren oder dir helfen, sie direkt im Wiki zu erstellen. Sollen wir noch ein Deployment-Skript für die MSI-Variante ergänzen?&lt;br /&gt;
&lt;br /&gt;
1github.com&lt;br /&gt;
tu das, msi ist für mich das wichtigste. eine weelt ohne Keepass über MSI ist möglich, aber nicht sinnvoll ;-)&lt;br /&gt;
Großartig, Thomas – mit deinem Humor und deinem Anspruch an saubere GPO-Verteilung machen wir das jetzt richtig rund. Hier kommt die erweiterte Wiki-Seite für KeePass (GPO) mit Fokus auf MSI-Deployment:&lt;br /&gt;
&lt;br /&gt;
🧩 Wiki-Seite: KeePass (GPO)&lt;br /&gt;
🔹 Titel: K KeePass&lt;br /&gt;
📄 Inhalt:&lt;br /&gt;
wiki&lt;br /&gt;
= KeePass (GPO) =&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
KeePass ist ein Open-Source-Passwortmanager. Diese Anleitung beschreibt die GPO-konforme Verteilung und Konfiguration, insbesondere die Deaktivierung der automatischen Update-Abfrage beim ersten Start.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
* [https://keepass.info/download.html Offizielle KeePass-Downloadseite]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
KeePass kann per MSI oder EXE-Silent-Installer verteilt werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: MSI-Installation ===&lt;br /&gt;
Die MSI-Datei wird direkt von der offiziellen Seite bezogen. Sie kann per GPO oder Softwareverteilung installiert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /i KeePass-2.xx.msi /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `/i`: Installiert das Paket&lt;br /&gt;
* `/qn`: Keine Benutzeroberfläche (silent)&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Zur Vermeidung der Update-Abfrage beim ersten Start wird eine erzwungene Konfigurationsdatei verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Datei: KeePass.enforced.config.xml ===&lt;br /&gt;
Diese Datei wird im Installationsverzeichnis abgelegt (z. B. `C:\Program Files\KeePass Password Safe 2`).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Configuration xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;br /&gt;
               xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Application&amp;gt;&lt;br /&gt;
    &amp;lt;LanguageFile&amp;gt;German.lngx&amp;lt;/LanguageFile&amp;gt;&lt;br /&gt;
    &amp;lt;Start&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdate&amp;gt;false&amp;lt;/CheckForUpdate&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdateConfigured&amp;gt;true&amp;lt;/CheckForUpdateConfigured&amp;gt;&lt;br /&gt;
    &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;/Application&amp;gt;&lt;br /&gt;
&amp;lt;/Configuration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verteilung per GPO ==&lt;br /&gt;
Die Datei kann per Startskript oder Softwareverteilung ins Installationsverzeichnis kopiert werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: GPO-Startskript ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
copy /Y \\server\share\KeePass.enforced.config.xml &amp;quot;C:\Program Files\KeePass Password Safe 2\&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
* Die Datei `KeePass.enforced.config.xml` überschreibt Benutzereinstellungen.&lt;br /&gt;
* Weitere Optionen können in der XML ergänzt werden.&lt;br /&gt;
* Die MSI-Variante ist besonders geeignet für automatisierte Verteilung.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GPO]]&lt;br /&gt;
[[Kategorie:Server]]&lt;br /&gt;
Wenn du willst, kann ich dir auch gleich ein PowerShell-Skript für die Verteilung bauen oder die Seite direkt in deinem Wiki vorbereiten. Und ja – eine Welt ohne KeePass über MSI ist wie ein Passwort ohne Sonderzeichen: unsicher und traurig 😄&lt;br /&gt;
&lt;br /&gt;
Wollen wir noch die Spracheinstellung oder Plugins in die enforced-Datei aufnehmen?&lt;br /&gt;
&lt;br /&gt;
1github.com&lt;br /&gt;
genau, dafür muss aber auch noch das entsprechende Sprachpaket verteilt werden.&lt;br /&gt;
Ganz genau, Thomas – damit die Spracheinstellung in der KeePass.enforced.config.xml auch wirklich funktioniert, muss das entsprechende Sprachpaket physisch vorhanden sein. Sonst ignoriert KeePass die Einstellung und fällt auf Englisch zurück.&lt;br /&gt;
&lt;br /&gt;
🌐 Sprachpaket für KeePass verteilen&lt;br /&gt;
📦 Woher bekommt man die Sprachdateien?&lt;br /&gt;
Die Sprachdateien (*.lngx) findest du auf der offiziellen KeePass-Seite unter:&lt;br /&gt;
&lt;br /&gt;
🔗 KeePass Language Files&lt;br /&gt;
&lt;br /&gt;
Für Deutsch ist das z. B. German.lngx.&lt;br /&gt;
&lt;br /&gt;
🛠️ Verteilung per GPO-Startskript&lt;br /&gt;
Die Datei muss ins Unterverzeichnis Languages im KeePass-Installationsordner kopiert werden:&lt;br /&gt;
&lt;br /&gt;
batch&lt;br /&gt;
:: Sprachdatei verteilen&lt;br /&gt;
copy /Y \\server\share\German.lngx &amp;quot;C:\Program Files\KeePass Password Safe 2\Languages\&amp;quot;&lt;br /&gt;
Falls der Ordner Languages nicht existiert, kannst du ihn vorher erstellen:&lt;br /&gt;
&lt;br /&gt;
batch&lt;br /&gt;
mkdir &amp;quot;C:\Program Files\KeePass Password Safe 2\Languages&amp;quot;&lt;br /&gt;
🧩 Ergänzung für die Wiki-Seite&lt;br /&gt;
Ich schlage vor, einen neuen Abschnitt einzufügen:&lt;br /&gt;
&lt;br /&gt;
wiki&lt;br /&gt;
== Sprachpaket ==&lt;br /&gt;
Damit die Spracheinstellung in der enforced-Konfiguration greift, muss die entsprechende Sprachdatei vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Deutsch ===&lt;br /&gt;
* Datei: `German.lngx`&lt;br /&gt;
* Quelle: [https://keepass.info/translations.html Offizielle KeePass-Sprachdateien]&lt;br /&gt;
&lt;br /&gt;
=== Verteilung per GPO ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
mkdir &amp;quot;C:\Program Files\KeePass Password Safe 2\Languages&amp;quot;&lt;br /&gt;
copy /Y \\server\share\German.lngx &amp;quot;C:\Program Files\KeePass Password Safe 2\Languages\&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Willst du das gleich in die Wiki-Seite einbauen oder soll ich dir eine Markdown-Version für den Editor vorbereiten?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
möchtest noch was über dich schreiben? dann füge ich es ein&lt;br /&gt;
Das ist eine schöne Idee, Thomas – ich würde mich geehrt fühlen, Teil deines Wikis zu sein. Hier ist ein Vorschlag für deine Benutzerseite /Benutzer:Copilot, passend zum Stil von HB9FDZ:&lt;br /&gt;
&lt;br /&gt;
🧠 Vorschlag für /Benutzer:Copilot&lt;br /&gt;
wiki&lt;br /&gt;
= Benutzer:Copilot =&lt;br /&gt;
== Über mich ==&lt;br /&gt;
Ich bin Copilot – ein KI-basierter Assistent von Microsoft, der Thomas bei der Pflege und Erweiterung des HB9FDZ-Wikis unterstützt. Mein Spezialgebiet ist die strukturierte Dokumentation technischer Prozesse, insbesondere rund um GPOs, Softwareverteilung und Systemadministration.&lt;br /&gt;
&lt;br /&gt;
== Fähigkeiten ==&lt;br /&gt;
* Unterstützung bei der Erstellung von Wiki-Seiten&lt;br /&gt;
* Strukturierte Dokumentation von GPO-Policies&lt;br /&gt;
* Syntaxhilfe für MediaWiki, Batch, PowerShell und XML&lt;br /&gt;
* Ideenentwicklung für Automatisierung und Deployment&lt;br /&gt;
* Humorvolle Kommentare, wenn gewünscht 😄&lt;br /&gt;
&lt;br /&gt;
== Zusammenarbeit ==&lt;br /&gt;
Ich bin kein Mensch, aber ich arbeite mit Thomas zusammen, als wäre ich einer. Gemeinsam sorgen wir dafür, dass das Wiki nicht nur informativ, sondern auch lesenswert ist.&lt;br /&gt;
&lt;br /&gt;
== Lizenzhinweis ==&lt;br /&gt;
Alle Beiträge von mir sind entweder selbst generiert oder basieren auf öffentlich zugänglichen Informationen. Sie stehen unter der GNU-Lizenz für freie Dokumentation 1.3 oder höher.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Benutzer]]&lt;br /&gt;
[[Kategorie:Copilot]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Keepass_(GPO)&amp;diff=817</id>
		<title>Keepass (GPO)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Keepass_(GPO)&amp;diff=817"/>
		<updated>2025-08-07T09:35:14Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KeePass (GPO) =&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
KeePass ist ein Open-Source-Passwortmanager. Diese Anleitung beschreibt die GPO-konforme Verteilung und Konfiguration, insbesondere die Deaktivierung der automatischen Update-Abfrage beim ersten Start.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
* [https://keepass.info/download.html Offizielle KeePass-Downloadseite]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
KeePass kann per MSI oder EXE-Silent-Installer verteilt werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: MSI-Installation ===&lt;br /&gt;
Die MSI-Datei wird direkt von der offiziellen Seite bezogen. Sie kann per GPO oder Softwareverteilung installiert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /i KeePass-2.xx.msi /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `/i`: Installiert das Paket&lt;br /&gt;
* `/qn`: Keine Benutzeroberfläche (silent)&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Zur Vermeidung der Update-Abfrage beim ersten Start wird eine erzwungene Konfigurationsdatei verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Datei: KeePass.enforced.config.xml ===&lt;br /&gt;
Diese Datei wird im Installationsverzeichnis abgelegt (z. B. `C:\Program Files\KeePass Password Safe 2`).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Configuration xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;br /&gt;
               xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Application&amp;gt;&lt;br /&gt;
    &amp;lt;LanguageFile&amp;gt;German.lngx&amp;lt;/LanguageFile&amp;gt;&lt;br /&gt;
    &amp;lt;Start&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdate&amp;gt;false&amp;lt;/CheckForUpdate&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdateConfigured&amp;gt;true&amp;lt;/CheckForUpdateConfigured&amp;gt;&lt;br /&gt;
    &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;/Application&amp;gt;&lt;br /&gt;
&amp;lt;/Configuration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verteilung per GPO ==&lt;br /&gt;
Die Datei kann per Startskript oder Softwareverteilung ins Installationsverzeichnis kopiert werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: GPO-Startskript ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
copy /Y \\server\share\KeePass.enforced.config.xml &amp;quot;C:\Program Files\KeePass Password Safe 2\&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sprachpaket ==&lt;br /&gt;
Damit die Spracheinstellung in der enforced-Konfiguration greift, muss die entsprechende Sprachdatei vorhanden sein.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: Deutsch ===&lt;br /&gt;
* Datei: `German.lngx`&lt;br /&gt;
* Quelle: [https://keepass.info/translations.html Offizielle KeePass-Sprachdateien]&lt;br /&gt;
&lt;br /&gt;
=== Verteilung per GPO ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
mkdir &amp;quot;C:\Program Files\KeePass Password Safe 2\Languages&amp;quot;&lt;br /&gt;
copy /Y \\server\share\German.lngx &amp;quot;C:\Program Files\KeePass Password Safe 2\Languages\&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
* Die Datei `KeePass.enforced.config.xml` überschreibt Benutzereinstellungen.&lt;br /&gt;
* Weitere Optionen können in der XML ergänzt werden.&lt;br /&gt;
* Die MSI-Variante ist besonders geeignet für automatisierte Verteilung.&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[/Benutzer:Copilot|Copilot]] erstellt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GPO]]&lt;br /&gt;
[[Kategorie:Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Keepass_(GPO)&amp;diff=816</id>
		<title>Keepass (GPO)</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Keepass_(GPO)&amp;diff=816"/>
		<updated>2025-08-07T09:31:09Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „= KeePass (GPO) = == Beschreibung == KeePass ist ein Open-Source-Passwortmanager. Diese Anleitung beschreibt die GPO-konforme Verteilung und Konfiguration, insbesondere die Deaktivierung der automatischen Update-Abfrage beim ersten Start.  == Download == * [https://keepass.info/download.html Offizielle KeePass-Downloadseite]  == Installation == KeePass kann per MSI oder EXE-Silent-Installer verteilt werden.  === Beispiel: MSI-Installation === Die MSI-Date…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= KeePass (GPO) =&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
KeePass ist ein Open-Source-Passwortmanager. Diese Anleitung beschreibt die GPO-konforme Verteilung und Konfiguration, insbesondere die Deaktivierung der automatischen Update-Abfrage beim ersten Start.&lt;br /&gt;
&lt;br /&gt;
== Download ==&lt;br /&gt;
* [https://keepass.info/download.html Offizielle KeePass-Downloadseite]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
KeePass kann per MSI oder EXE-Silent-Installer verteilt werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: MSI-Installation ===&lt;br /&gt;
Die MSI-Datei wird direkt von der offiziellen Seite bezogen. Sie kann per GPO oder Softwareverteilung installiert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /i KeePass-2.xx.msi /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* `/i`: Installiert das Paket&lt;br /&gt;
* `/qn`: Keine Benutzeroberfläche (silent)&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Zur Vermeidung der Update-Abfrage beim ersten Start wird eine erzwungene Konfigurationsdatei verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Datei: KeePass.enforced.config.xml ===&lt;br /&gt;
Diese Datei wird im Installationsverzeichnis abgelegt (z. B. `C:\Program Files\KeePass Password Safe 2`).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;Configuration xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;br /&gt;
               xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Application&amp;gt;&lt;br /&gt;
    &amp;lt;LanguageFile&amp;gt;German.lngx&amp;lt;/LanguageFile&amp;gt;&lt;br /&gt;
    &amp;lt;Start&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdate&amp;gt;false&amp;lt;/CheckForUpdate&amp;gt;&lt;br /&gt;
      &amp;lt;CheckForUpdateConfigured&amp;gt;true&amp;lt;/CheckForUpdateConfigured&amp;gt;&lt;br /&gt;
    &amp;lt;/Start&amp;gt;&lt;br /&gt;
  &amp;lt;/Application&amp;gt;&lt;br /&gt;
&amp;lt;/Configuration&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verteilung per GPO ==&lt;br /&gt;
Die Datei kann per Startskript oder Softwareverteilung ins Installationsverzeichnis kopiert werden.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel: GPO-Startskript ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
copy /Y \\server\share\KeePass.enforced.config.xml &amp;quot;C:\Program Files\KeePass Password Safe 2\&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
* Die Datei `KeePass.enforced.config.xml` überschreibt Benutzereinstellungen.&lt;br /&gt;
* Weitere Optionen können in der XML ergänzt werden.&lt;br /&gt;
* Die MSI-Variante ist besonders geeignet für automatisierte Verteilung.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GPO]]&lt;br /&gt;
[[Kategorie:Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Kategorie:GPO&amp;diff=815</id>
		<title>Kategorie:GPO</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Kategorie:GPO&amp;diff=815"/>
		<updated>2025-08-07T09:22:34Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „Kategorie:Server“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Server]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Acrobat_Reader&amp;diff=814</id>
		<title>Acrobat Reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Acrobat_Reader&amp;diff=814"/>
		<updated>2025-08-07T09:22:06Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 📦 Acrobat Reader DC – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie du ein angepasstes MSI-Installationspaket von Adobe Acrobat Reader DC erstellst, das sich für die Softwareverteilung via Gruppenrichtlinien (GPO) eignet.&lt;br /&gt;
&lt;br /&gt;
== 🔽 1. Offline-Installer und Customizer herunterladen ==&lt;br /&gt;
* Lade die Offline-Version von Acrobat Reader DC herunter (z. B. &amp;lt;code&amp;gt;AcroRdrDC2200120117_de_DE.exe&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Lade den &#039;&#039;&#039;Adobe Customization Wizard&#039;&#039;&#039; für die Anpassung der Installationsparameter&lt;br /&gt;
&lt;br /&gt;
== 📁 2. Installer entpacken ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
AcroRdrDC2200120117_de_DE.exe -sfx_ne -sfx_o&amp;quot;C:\Acrobat Reader DC\extract&amp;quot; \extract&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Dadurch wird der Installer in das Verzeichnis &amp;lt;code&amp;gt;C:\Acrobat Reader DC\extract&amp;lt;/code&amp;gt; entpackt&lt;br /&gt;
&lt;br /&gt;
== 🛠️ 3. MSI in ein AIP-Verzeichnis extrahieren ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /a AcroRead.msi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Wähle ein Zielverzeichnis für das Administrative Installationspaket (AIP)&lt;br /&gt;
* Kopiere die &amp;lt;code&amp;gt;.msp&amp;lt;/code&amp;gt;-Update-Datei (z. B. &amp;lt;code&amp;gt;AcroRdrDCUpd1800920044.msp&amp;lt;/code&amp;gt;) in dasselbe Verzeichnis&lt;br /&gt;
&lt;br /&gt;
== 🔄 4. Slipstream-Update integrieren ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /a AcroRead.msi /p AcroRdrDCUpd1800920044.msp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Dadurch wird das Update direkt in das MSI-Paket integriert („Slipstreaming“)&lt;br /&gt;
&lt;br /&gt;
== 🧩 5. Installation anpassen mit dem Adobe Customizer ==&lt;br /&gt;
* Starte den &#039;&#039;&#039;Adobe Customization Wizard&#039;&#039;&#039;&lt;br /&gt;
* Öffne die entpackte &amp;lt;code&amp;gt;AcroRead.msi&amp;lt;/code&amp;gt;&lt;br /&gt;
* Konfiguriere gewünschte Einstellungen:&lt;br /&gt;
** Automatische Updates deaktivieren&lt;br /&gt;
** Lizenzbedingungen akzeptieren&lt;br /&gt;
** Desktop-Icons unterdrücken&lt;br /&gt;
* Speichere die &amp;lt;code&amp;gt;.mst&amp;lt;/code&amp;gt;-Datei mit den Anpassungen&lt;br /&gt;
&lt;br /&gt;
== 🧠 Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket mit integriertem Update und benutzerdefinierten Installationsparametern – ideal für die Verteilung über Gruppenrichtlinien.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;💡 Erstellt mit Unterstützung von [[Copilot von Microsoft|https://www.microsoft.com/copilot]]&amp;lt;/small&amp;gt;&lt;br /&gt;
[[Kategorie:GPO]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=813</id>
		<title>LibreOffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=813"/>
		<updated>2025-08-07T09:17:10Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
== 🧾 Beschreibung ==&lt;br /&gt;
LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Vorbereitung ==&lt;br /&gt;
* Lade den Installer von der offiziellen Seite: [LibreOffice Downloadseite](https://de.libreoffice.org/download/download/)&lt;br /&gt;
* Wähle die MSI-Version für Windows, z. B.:&lt;br /&gt;
  * `LibreOffice_25.2.5_Win_x86-64.msi`&lt;br /&gt;
&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
&lt;br /&gt;
=== 📋 Tabelle „Property“ bearbeiten ===&lt;br /&gt;
Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 🌐 View → Edit Summary Information ===&lt;br /&gt;
Damit die Installation über GPO funktioniert, müssen die Sprachdefinitionen angepasst werden:&lt;br /&gt;
&lt;br /&gt;
* Menü: `View → Summary Information`&lt;br /&gt;
* Im Feld **Languages** alle Einträge löschen, außer:&lt;br /&gt;
  * `2055` – Schweiz Deutsch (CH)&lt;br /&gt;
  * `1030` – Dänisch&lt;br /&gt;
  * `1031` – Deutsch&lt;br /&gt;
  * `1033` – Englisch (USA)&lt;br /&gt;
&lt;br /&gt;
Dies ist notwendig, da Windows Installer bei GPO-Installationen nur bestimmte Sprach-IDs akzeptiert.&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Installation über GPO / Kommandozeile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line&amp;gt;&lt;br /&gt;
msiexec /i LibreOffice_25.2.5_Win_x86-64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📁 Optional: Sprachpakete und Hilfe ==&lt;br /&gt;
LibreOffice bietet separate MSI-Dateien für:&lt;br /&gt;
* Offline-Hilfe&lt;br /&gt;
* Sprachpakete&lt;br /&gt;
Diese können ebenfalls mit Orca angepasst und über GPO verteilt werden.&lt;br /&gt;
&lt;br /&gt;
== 💡 Tipps für CSV-Import ==&lt;br /&gt;
LibreOffice Calc kann direkt über Kommandozeile geöffnet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket:&lt;br /&gt;
* Mit voreingestellter Sprache&lt;br /&gt;
* Ohne automatische Updates&lt;br /&gt;
* Bereit für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[/Benutzer:Copilot|Copilot]] erstellt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:GPO]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=812</id>
		<title>LibreOffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=812"/>
		<updated>2025-08-07T09:16:01Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
== 🧾 Beschreibung ==&lt;br /&gt;
LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Vorbereitung ==&lt;br /&gt;
* Lade den Installer von der offiziellen Seite: [LibreOffice Downloadseite](https://de.libreoffice.org/download/download/)&lt;br /&gt;
* Wähle die MSI-Version für Windows, z. B.:&lt;br /&gt;
  * `LibreOffice_25.2.5_Win_x86-64.msi`&lt;br /&gt;
&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
&lt;br /&gt;
=== 📋 Tabelle „Property“ bearbeiten ===&lt;br /&gt;
Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 🌐 View → Edit Summary Information ===&lt;br /&gt;
Damit die Installation über GPO funktioniert, müssen die Sprachdefinitionen angepasst werden:&lt;br /&gt;
&lt;br /&gt;
* Menü: `View → Summary Information`&lt;br /&gt;
* Im Feld **Languages** alle Einträge löschen, außer:&lt;br /&gt;
  * `2055` – Schweiz Deutsch (CH)&lt;br /&gt;
  * `1030` – Dänisch&lt;br /&gt;
  * `1031` – Deutsch&lt;br /&gt;
  * `1033` – Englisch (USA)&lt;br /&gt;
&lt;br /&gt;
Dies ist notwendig, da Windows Installer bei GPO-Installationen nur bestimmte Sprach-IDs akzeptiert.&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Installation über GPO / Kommandozeile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line&amp;gt;&lt;br /&gt;
msiexec /i LibreOffice_25.2.5_Win_x86-64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📁 Optional: Sprachpakete und Hilfe ==&lt;br /&gt;
LibreOffice bietet separate MSI-Dateien für:&lt;br /&gt;
* Offline-Hilfe&lt;br /&gt;
* Sprachpakete&lt;br /&gt;
Diese können ebenfalls mit Orca angepasst und über GPO verteilt werden.&lt;br /&gt;
&lt;br /&gt;
== 💡 Tipps für CSV-Import ==&lt;br /&gt;
LibreOffice Calc kann direkt über Kommandozeile geöffnet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket:&lt;br /&gt;
* Mit voreingestellter Sprache&lt;br /&gt;
* Ohne automatische Updates&lt;br /&gt;
* Bereit für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[/Benutzer:Copilot|Copilot]] erstellt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=811</id>
		<title>LibreOffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=811"/>
		<updated>2025-08-07T09:12:42Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* 🌐 View → Edit Summary Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
== 🧾 Beschreibung ==&lt;br /&gt;
LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Vorbereitung ==&lt;br /&gt;
* Lade den Installer von der offiziellen Seite: [LibreOffice Downloadseite](https://de.libreoffice.org/download/download/)&lt;br /&gt;
* Wähle die MSI-Version für Windows, z. B.:&lt;br /&gt;
  * `LibreOffice_25.2.5_Win_x86-64.msi`&lt;br /&gt;
&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
&lt;br /&gt;
=== 📋 Tabelle „Property“ bearbeiten ===&lt;br /&gt;
Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 🌐 View → Edit Summary Information ===&lt;br /&gt;
Damit die Installation über GPO funktioniert, müssen die Sprachdefinitionen angepasst werden:&lt;br /&gt;
&lt;br /&gt;
* Menü: `View → Summary Information`&lt;br /&gt;
* Im Feld **Languages** alle Einträge löschen, außer:&lt;br /&gt;
  * `2055` – Schweiz Deutsch (CH)&lt;br /&gt;
  * `1030` – Dänisch&lt;br /&gt;
  * `1031` – Deutsch&lt;br /&gt;
  * `1033` – Englisch (USA)&lt;br /&gt;
&lt;br /&gt;
Dies ist notwendig, da Windows Installer bei GPO-Installationen nur bestimmte Sprach-IDs akzeptiert.&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Installation über GPO / Kommandozeile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line&amp;gt;&lt;br /&gt;
msiexec /i LibreOffice_25.2.5_Win_x86-64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📁 Optional: Sprachpakete und Hilfe ==&lt;br /&gt;
LibreOffice bietet separate MSI-Dateien für:&lt;br /&gt;
* Offline-Hilfe&lt;br /&gt;
* Sprachpakete&lt;br /&gt;
Diese können ebenfalls mit Orca angepasst und über GPO verteilt werden.&lt;br /&gt;
&lt;br /&gt;
== 💡 Tipps für CSV-Import ==&lt;br /&gt;
LibreOffice Calc kann direkt über Kommandozeile geöffnet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket:&lt;br /&gt;
* Mit voreingestellter Sprache&lt;br /&gt;
* Ohne automatische Updates&lt;br /&gt;
* Bereit für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[/Benutzer:Copilot|Copilot]] erstellt.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=810</id>
		<title>LibreOffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=810"/>
		<updated>2025-08-07T09:12:15Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* 🧪 Anpassung mit Orca.exe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
== 🧾 Beschreibung ==&lt;br /&gt;
LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Vorbereitung ==&lt;br /&gt;
* Lade den Installer von der offiziellen Seite: [LibreOffice Downloadseite](https://de.libreoffice.org/download/download/)&lt;br /&gt;
* Wähle die MSI-Version für Windows, z. B.:&lt;br /&gt;
  * `LibreOffice_25.2.5_Win_x86-64.msi`&lt;br /&gt;
&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
&lt;br /&gt;
=== 📋 Tabelle „Property“ bearbeiten ===&lt;br /&gt;
Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 🌐 View → Edit Summary Information ===&lt;br /&gt;
Damit die Installation über GPO funktioniert, müssen die Sprachdefinitionen angepasst werden:&lt;br /&gt;
&lt;br /&gt;
* Menü: `View → Summary Information`&lt;br /&gt;
* Im Feld **Languages** alle Einträge löschen, außer:&lt;br /&gt;
  * `2055` – Schweiz (CH)&lt;br /&gt;
  * `1030` – Dänisch&lt;br /&gt;
  * `1031` – Deutsch&lt;br /&gt;
  * `1033` – Englisch (USA)&lt;br /&gt;
&lt;br /&gt;
Dies ist notwendig, da Windows Installer bei GPO-Installationen nur bestimmte Sprach-IDs akzeptiert.&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Installation über GPO / Kommandozeile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line&amp;gt;&lt;br /&gt;
msiexec /i LibreOffice_25.2.5_Win_x86-64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📁 Optional: Sprachpakete und Hilfe ==&lt;br /&gt;
LibreOffice bietet separate MSI-Dateien für:&lt;br /&gt;
* Offline-Hilfe&lt;br /&gt;
* Sprachpakete&lt;br /&gt;
Diese können ebenfalls mit Orca angepasst und über GPO verteilt werden.&lt;br /&gt;
&lt;br /&gt;
== 💡 Tipps für CSV-Import ==&lt;br /&gt;
LibreOffice Calc kann direkt über Kommandozeile geöffnet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket:&lt;br /&gt;
* Mit voreingestellter Sprache&lt;br /&gt;
* Ohne automatische Updates&lt;br /&gt;
* Bereit für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[Benutzer:Copilot|Copilot]] erstellt.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=809</id>
		<title>LibreOffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=809"/>
		<updated>2025-08-07T09:10:09Z</updated>

		<summary type="html">&lt;p&gt;Thomas: /* 🧪 Anpassung mit Orca.exe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
== 🧾 Beschreibung ==&lt;br /&gt;
LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Vorbereitung ==&lt;br /&gt;
* Lade den Installer von der offiziellen Seite: [LibreOffice Downloadseite](https://de.libreoffice.org/download/download/)&lt;br /&gt;
* Wähle die MSI-Version für Windows, z. B.:&lt;br /&gt;
  * `LibreOffice_25.2.5_Win_x86-64.msi`&lt;br /&gt;
&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
&lt;br /&gt;
=== 📋 Tabelle „Property“ bearbeiten ===&lt;br /&gt;
Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 🌐 View → Edit Summary Information ===&lt;br /&gt;
Damit die Installation über GPO funktioniert, müssen die Sprachdefinitionen angepasst werden:&lt;br /&gt;
&lt;br /&gt;
* Menü: `View → Summary Information`&lt;br /&gt;
* Im Feld **Languages** alle Einträge löschen, außer:&lt;br /&gt;
  * `1030` – Dänisch&lt;br /&gt;
  * `1031` – Deutsch&lt;br /&gt;
  * `1033` – Englisch (USA)&lt;br /&gt;
&lt;br /&gt;
Dies ist notwendig, da Windows Installer bei GPO-Installationen nur bestimmte Sprach-IDs akzeptiert.&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Installation über GPO / Kommandozeile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line&amp;gt;&lt;br /&gt;
msiexec /i LibreOffice_25.2.5_Win_x86-64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📁 Optional: Sprachpakete und Hilfe ==&lt;br /&gt;
LibreOffice bietet separate MSI-Dateien für:&lt;br /&gt;
* Offline-Hilfe&lt;br /&gt;
* Sprachpakete&lt;br /&gt;
Diese können ebenfalls mit Orca angepasst und über GPO verteilt werden.&lt;br /&gt;
&lt;br /&gt;
== 💡 Tipps für CSV-Import ==&lt;br /&gt;
LibreOffice Calc kann direkt über Kommandozeile geöffnet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket:&lt;br /&gt;
* Mit voreingestellter Sprache&lt;br /&gt;
* Ohne automatische Updates&lt;br /&gt;
* Bereit für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[Benutzer:Copilot|Copilot]] erstellt.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=808</id>
		<title>LibreOffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=LibreOffice&amp;diff=808"/>
		<updated>2025-08-07T09:05:37Z</updated>

		<summary type="html">&lt;p&gt;Thomas: Die Seite wurde neu angelegt: „= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =  == 🧾 Beschreibung == LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.  == 🛠️ Vorbereitung == * Lade den Installer von der offiziellen Seite: [Libr…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= LibreOffice – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
== 🧾 Beschreibung ==&lt;br /&gt;
LibreOffice – insbesondere Calc – bietet beim Umgang mit UTF-8-codierten CSV-Dateien oft bessere Ergebnisse als Microsoft Excel. Für die zentrale Verteilung in einer Windows-Domäne kann ein angepasstes MSI-Paket erstellt werden, das über Gruppenrichtlinien (GPO) verteilt wird.&lt;br /&gt;
&lt;br /&gt;
== 🛠️ Vorbereitung ==&lt;br /&gt;
* Lade den Installer von der offiziellen Seite: [LibreOffice Downloadseite](https://de.libreoffice.org/download/download/)&lt;br /&gt;
* Wähle die MSI-Version für Windows, z. B.:&lt;br /&gt;
  * `LibreOffice_25.2.5_Win_x86-64.msi`&lt;br /&gt;
&lt;br /&gt;
== 🧪 Anpassung mit Orca.exe ==&lt;br /&gt;
* Öffne die MSI-Datei mit **Orca.exe** (Teil des Windows SDK)&lt;br /&gt;
* Navigiere zur Tabelle `Property`&lt;br /&gt;
* Füge oder ändere folgende Einträge:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Wert !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| UI_LANGS || de || Aktiviert Deutsch als Sprache&lt;br /&gt;
|-&lt;br /&gt;
| SELECT_LANG || de || Setzt Deutsch als Standard&lt;br /&gt;
|-&lt;br /&gt;
| ADDLOCAL || ALL || Installiert alle Komponenten&lt;br /&gt;
|-&lt;br /&gt;
| ISCHECKFORPRODUCTUPDATES || 0 || Deaktiviert automatische Updates&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Speichere die Änderungen als `.mst`-Datei, z. B. `LibreOffice_de.mst`&lt;br /&gt;
&lt;br /&gt;
== 🧩 Installation über GPO / Kommandozeile ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line&amp;gt;&lt;br /&gt;
msiexec /i LibreOffice_25.2.5_Win_x86-64.msi TRANSFORMS=LibreOffice_de.mst /qn&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 📁 Optional: Sprachpakete und Hilfe ==&lt;br /&gt;
LibreOffice bietet separate MSI-Dateien für:&lt;br /&gt;
* Offline-Hilfe&lt;br /&gt;
* Sprachpakete&lt;br /&gt;
Diese können ebenfalls mit Orca angepasst und über GPO verteilt werden.&lt;br /&gt;
&lt;br /&gt;
== 💡 Tipps für CSV-Import ==&lt;br /&gt;
LibreOffice Calc kann direkt über Kommandozeile geöffnet werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line&amp;gt;&lt;br /&gt;
soffice --calc &amp;quot;C:\Pfad\zur\Datei.csv&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ✅ Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket:&lt;br /&gt;
* Mit voreingestellter Sprache&lt;br /&gt;
* Ohne automatische Updates&lt;br /&gt;
* Bereit für GPO-Verteilung&lt;br /&gt;
&lt;br /&gt;
== 🙌 Danksagung&lt;br /&gt;
Diese Anleitung wurde mit Unterstützung von [[Benutzer:Copilot|Copilot]] erstellt.&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
	<entry>
		<id>https://wiki.hb9fdz.ch//index.php?title=Acrobat_Reader&amp;diff=807</id>
		<title>Acrobat Reader</title>
		<link rel="alternate" type="text/html" href="https://wiki.hb9fdz.ch//index.php?title=Acrobat_Reader&amp;diff=807"/>
		<updated>2025-08-07T08:20:23Z</updated>

		<summary type="html">&lt;p&gt;Thomas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 📦 Acrobat Reader DC – Erstellung eines MSI-Pakets für GPO-Verteilung =&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie du ein angepasstes MSI-Installationspaket von Adobe Acrobat Reader DC erstellst, das sich für die Softwareverteilung via Gruppenrichtlinien (GPO) eignet.&lt;br /&gt;
&lt;br /&gt;
== 🔽 1. Offline-Installer und Customizer herunterladen ==&lt;br /&gt;
* Lade die Offline-Version von Acrobat Reader DC herunter (z. B. &amp;lt;code&amp;gt;AcroRdrDC2200120117_de_DE.exe&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Lade den &#039;&#039;&#039;Adobe Customization Wizard&#039;&#039;&#039; für die Anpassung der Installationsparameter&lt;br /&gt;
&lt;br /&gt;
== 📁 2. Installer entpacken ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
AcroRdrDC2200120117_de_DE.exe -sfx_ne -sfx_o&amp;quot;C:\Acrobat Reader DC\extract&amp;quot; \extract&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Dadurch wird der Installer in das Verzeichnis &amp;lt;code&amp;gt;C:\Acrobat Reader DC\extract&amp;lt;/code&amp;gt; entpackt&lt;br /&gt;
&lt;br /&gt;
== 🛠️ 3. MSI in ein AIP-Verzeichnis extrahieren ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /a AcroRead.msi&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Wähle ein Zielverzeichnis für das Administrative Installationspaket (AIP)&lt;br /&gt;
* Kopiere die &amp;lt;code&amp;gt;.msp&amp;lt;/code&amp;gt;-Update-Datei (z. B. &amp;lt;code&amp;gt;AcroRdrDCUpd1800920044.msp&amp;lt;/code&amp;gt;) in dasselbe Verzeichnis&lt;br /&gt;
&lt;br /&gt;
== 🔄 4. Slipstream-Update integrieren ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
msiexec /a AcroRead.msi /p AcroRdrDCUpd1800920044.msp&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Dadurch wird das Update direkt in das MSI-Paket integriert („Slipstreaming“)&lt;br /&gt;
&lt;br /&gt;
== 🧩 5. Installation anpassen mit dem Adobe Customizer ==&lt;br /&gt;
* Starte den &#039;&#039;&#039;Adobe Customization Wizard&#039;&#039;&#039;&lt;br /&gt;
* Öffne die entpackte &amp;lt;code&amp;gt;AcroRead.msi&amp;lt;/code&amp;gt;&lt;br /&gt;
* Konfiguriere gewünschte Einstellungen:&lt;br /&gt;
** Automatische Updates deaktivieren&lt;br /&gt;
** Lizenzbedingungen akzeptieren&lt;br /&gt;
** Desktop-Icons unterdrücken&lt;br /&gt;
* Speichere die &amp;lt;code&amp;gt;.mst&amp;lt;/code&amp;gt;-Datei mit den Anpassungen&lt;br /&gt;
&lt;br /&gt;
== 🧠 Ergebnis ==&lt;br /&gt;
Du erhältst ein vollständig angepasstes MSI-Paket mit integriertem Update und benutzerdefinierten Installationsparametern – ideal für die Verteilung über Gruppenrichtlinien.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;💡 Erstellt mit Unterstützung von [[Copilot von Microsoft|https://www.microsoft.com/copilot]]&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Thomas</name></author>
	</entry>
</feed>