<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>abow &#8211; how do you do IT</title>
	<atom:link href="https://abow.info/feed/" rel="self" type="application/rss+xml" />
	<link>https://abow.info</link>
	<description>Alle möglichen Handkniffe, die ich mir so zusammentrage im Berufsalltag</description>
	<lastBuildDate>Mon, 13 Jul 2026 10:33:31 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://abow.info/wp-content/uploads/2026/06/cropped-favicon-512-32x32.png</url>
	<title>abow &#8211; how do you do IT</title>
	<link>https://abow.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress // Umzug von Strato auf einen Hostinger-VPS (Docker + Traefik)</title>
		<link>https://abow.info/persoenlich/wordpress-umzug-von-strato-auf-einen-hostinger-vps-docker-traefik/</link>
					<comments>https://abow.info/persoenlich/wordpress-umzug-von-strato-auf-einen-hostinger-vps-docker-traefik/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Fri, 10 Jul 2026 17:14:29 +0000</pubDate>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Persönlich]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[DB_HOST]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[docker-compose]]></category>
		<category><![CDATA[Hostinger]]></category>
		<category><![CDATA[Lets Encrypt]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Named Volume]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Reverse Proxy]]></category>
		<category><![CDATA[search-replace]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Strato]]></category>
		<category><![CDATA[Traefik]]></category>
		<category><![CDATA[Umzug]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WORDPRESS_TABLE_PREFIX]]></category>
		<category><![CDATA[wp-config]]></category>
		<guid isPermaLink="false">https://abow.info/?p=499</guid>

					<description><![CDATA[Dieser Beitrag ist ein erprobtes Runbook: ein WordPress von Strato auf einen Hostinger-VPS ziehen, auf dem ein Docker-Compose-Stack (wordpress:latest + mysql:8) läuft und Traefik als Reverse Proxy im…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Dieser Beitrag ist ein <strong>erprobtes Runbook</strong>: ein WordPress von <strong>Strato</strong> auf einen <strong>Hostinger-VPS</strong> ziehen, auf dem ein <strong>Docker-Compose-Stack</strong> (<code>wordpress:latest</code> + <code>mysql:8</code>) läuft und <strong>Traefik</strong> als Reverse Proxy im <strong>Host-Mode</strong> das TLS macht. Files (Verzeichnis) und DB-Dump liegen bereits auf dem VPS. Es sind genau die Schritte – inklusive der vier, fünf Stolperfallen, an denen man garantiert hängenbleibt.<br>WordPress wurde zuvor via Hostinger VPS Catalog in einem Docker Container installiert.<br>Die Datenbank und das Verzeichnis bei Strato wurden zuvor via FileZilla heruntergeladen und via phpMyAdmin als .sql gesichert.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Die Beispielwerte (<code>wordpress-ibr4-*</code>, <code>jryy_</code>, <code>abow.info</code>, IP <code>72.61.92.170</code>) stammen aus dem realen Umzug. Passe sie an deinen Stack an.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Ziel</h2>



<p class="wp-block-paragraph">WordPress läuft im vorhandenen Docker-Stack, ist über <code>https://abow.info</code> öffentlich erreichbar, Zertifikat von Let&#8217;s Encrypt – ohne Datenverlust.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Mentales Modell (vorab verstehen, spart 2 Stunden)</h2>



<ul class="wp-block-list">
<li><strong>Named Volume:</strong> Der WP-Container mountet <code>…/&lt;volume>/_data</code> → <code>/var/www/html</code>. Deine Files müssen in <strong><code>_data</code></strong> liegen, nicht daneben. Und: <code>_data</code> <strong>niemals löschen</strong> – ein Named Volume braucht diesen Ordner, sonst startet der Container nicht.</li>



<li><strong>Die <code>wp-config.php</code> erzeugt das offizielle Image selbst</strong> – aber <strong>nur</strong>, wenn keine existiert, und zwar aus den <code>WORDPRESS_*</code>-ENV-Variablen. Eine mitgebrachte Strato-<code>wp-config.php</code> wird <strong>nicht</strong> überschrieben.</li>



<li><strong>DB-Verbindung geht über den Service-Namen</strong> (<code>db</code>), nie <code>localhost</code>/<code>rdbms.strato.de</code>.</li>



<li><strong>Traefik im Host-Mode</strong> routet <strong>nicht</strong> über das Docker-Netz, sondern über einen <strong>festen veröffentlichten Port</strong> des Containers.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 0: Stack inspizieren</h2>



<pre class="wp-block-code"><code>ssh root@DEINE_VPS_IP

docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Ports}}"
</code></pre>



<p class="wp-block-paragraph">Du suchst den WP- und den DB-Container (hier <code>wordpress-ibr4-wordpress-1</code> / <code>wordpress-ibr4-db-1</code>, DB-Image <code>mysql:8</code>) und den Reverse Proxy (<code>traefik-traefik-1</code>). Projektpfad und Volume finden:</p>



<pre class="wp-block-code"><code>docker inspect wordpress-ibr4-wordpress-1 \
  --format '{{ index .Config.Labels "com.docker.compose.project.working_dir" }}'
# -&gt; z.B. /docker/wordpress-ibr4

docker inspect wordpress-ibr4-wordpress-1 \
  --format '{{ range .Mounts }}{{ .Name }} | {{ .Source }} -&gt; {{ .Destination }}{{ println }}{{ end }}'
# -&gt; wordpress-ibr4_wordpress | …/_data -&gt; /var/www/html
</code></pre>



<p class="wp-block-paragraph">DB-Zugangsdaten + Prefix aus den Containern (nur ansehen):</p>



<pre class="wp-block-code"><code>docker exec wordpress-ibr4-wordpress-1 env | grep -i WORDPRESS_DB
docker exec wordpress-ibr4-db-1          env | grep -iE 'MYSQL_DATABASE|MYSQL_USER'
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 1: Files an die richtige Stelle (<code>_data</code>)</h2>



<p class="wp-block-paragraph">Liegen deine Strato-Files in einem Ordner <strong>neben</strong> <code>_data</code> (z. B. <code>_app</code>), sieht WordPress sie nicht. Ist <code>_data</code> nur die nackte Standard-Installation, deine echte Seite aber in <code>_app</code>, machst du <code>_app</code> zum Live-Verzeichnis:</p>



<pre class="wp-block-code"><code>cd /var/lib/docker/volumes/wordpress-ibr4_wordpress
# Falls _data noch die Default-Files enthaelt: sichern statt loeschen
mv _app  _data

# Core vollstaendig? (muessen existieren)
ls _data/wp-admin _data/wp-includes _data/wp-load.php
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Falle:</strong> <code>_data</code> zu <strong>löschen</strong> killt den Mountpunkt → <code>Error response from daemon: open …/_data: no such file or directory</code>. Immer <strong>umbenennen</strong>, nie löschen.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 2: Alte Strato-wp-config raus, ENV-Prefix korrekt setzen</h2>



<p class="wp-block-paragraph">Die mitgebrachte <code>wp-config.php</code> zeigt noch auf Strato:</p>



<pre class="wp-block-code"><code>grep -E "table_prefix|DB_HOST|DB_NAME|DB_USER" _data/wp-config.php
# define('DB_HOST','rdbms.strato.de');  &lt;- muss weg
# $table_prefix = 'jryy_';              &lt;- Prefix merken!
</code></pre>



<p class="wp-block-paragraph"><strong>Prefix merken</strong> (hier <code>jryy_</code>) und die alte Config wegsichern, damit das Image neu generiert:</p>



<pre class="wp-block-code"><code>mv _data/wp-config.php _data/wp-config.php.strato-bak
</code></pre>



<p class="wp-block-paragraph">Jetzt den <strong>Table-Prefix in die Compose</strong> – und zwar im <code>environment:</code>-Block des <strong><code>wordpress</code></strong>-Service (nicht beim <code>db</code>-Service!). Häufigster Fehler: Zeile landet bei den <code>MYSQL_*</code>-Variablen und greift nie.</p>



<pre class="wp-block-code"><code>services:
  wordpress:
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_NAME=wordpress
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD}
      - WORDPRESS_TABLE_PREFIX=jryy_          # &lt;- HIER, beim wordpress-Service
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 3: Container neu erzeugen und Prefix <strong>effektiv</strong> prüfen</h2>



<p class="wp-block-paragraph"><code>docker compose up -d</code> allein startet einen laufenden Container <strong>nicht</strong> neu – dann läuft der Entrypoint nicht und die <code>wp-config.php</code> wird nicht geschrieben. Daher <code>--force-recreate</code>:</p>



<pre class="wp-block-code"><code>cd /docker/wordpress-ibr4
docker compose up -d --force-recreate wordpress
</code></pre>



<p class="wp-block-paragraph">Jetzt <strong>nicht</strong> nur <code>grep</code> (das offizielle Image schreibt <code>getenv_docker('…','wp_')</code> mit Fallback). Den <strong>aufgelösten</strong> Wert prüfen:</p>



<pre class="wp-block-code"><code>docker exec wordpress-ibr4-wordpress-1 \
  php -r 'require "/var/www/html/wp-config.php"; echo DB_HOST.PHP_EOL.DB_NAME.PHP_EOL.$table_prefix.PHP_EOL;'
</code></pre>



<p class="wp-block-paragraph">Zielausgabe:</p>



<pre class="wp-block-code"><code>db
wordpress
jryy_
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Kommt <code>wp_</code> statt <code>jryy_</code>: Die ENV-Zeile steht im falschen Service-Block oder die alte <code>wp-config.php</code> existiert noch. Beides fixen, <code>--force-recreate</code> wiederholen. Effektiv-Check mit <code>docker exec … env | grep WORDPRESS_TABLE_PREFIX</code> zeigt, ob die Variable im Container überhaupt ankommt.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 4: Datenbank importieren</h2>



<p class="wp-block-paragraph"><code>docker exec -i … &lt; dump.sql</code> liest die Datei vom <strong>Host</strong> und pipet sie in den Container – der <strong>Pfad im Container ist egal</strong>, nur der Host-Pfad muss stimmen. Passwort kommt aus der Container-ENV, du tippst nichts:</p>



<pre class="wp-block-code"><code>docker exec -i wordpress-ibr4-db-1 \
  sh -c 'exec mysql -uwordpress -p"$MYSQL_PASSWORD" wordpress' \
  &lt; /var/lib/docker/volumes/wordpress-ibr4_wordpress/dbs12659889.sql
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Falle <code>ERROR 1050 … Table already exists</code>:</strong> In der DB liegen schon Tabellen (Reste der Default-Installation oder ein abgebrochener Import). Schema einmal komplett leeren, dann neu importieren:</p>



<pre class="wp-block-code"><code>docker exec wordpress-ibr4-db-1 sh -c '
  exec mysql -uwordpress -p"$MYSQL_PASSWORD" -N -e "
    SET FOREIGN_KEY_CHECKS=0; SET GROUP_CONCAT_MAX_LEN=1000000;
    SELECT IFNULL(CONCAT(\"DROP TABLE IF EXISTS \", GROUP_CONCAT(\"\`\",table_name,\"\`\"), \";\"), \"SELECT 1;\")
    FROM information_schema.tables WHERE table_schema=\"wordpress\";
  " wordpress' \
| docker exec -i wordpress-ibr4-db-1 sh -c 'exec mysql -uwordpress -p"$MYSQL_PASSWORD" wordpress'
</code></pre>



<p class="wp-block-paragraph">Danach <code>SHOW TABLES;</code> muss leer sein → Import wiederholen.</p>
</blockquote>



<p class="wp-block-paragraph">Rechte setzen und verifizieren (Prefix beachten – hier <code>jryy_</code>):</p>



<pre class="wp-block-code"><code>docker exec wordpress-ibr4-wordpress-1 chown -R www-data:www-data /var/www/html

docker exec wordpress-ibr4-db-1 \
  sh -c 'exec mysql -uwordpress -p"$MYSQL_PASSWORD" wordpress \
  -e "SELECT option_name,option_value FROM jryy_options WHERE option_name IN (\"siteurl\",\"home\");"'

docker exec wordpress-ibr4-wordpress-1 \
  php -r 'require "/var/www/html/wp-load.php"; echo "WP ".$GLOBALS&#91;"wp_version"]." | ".get_option("blogname").PHP_EOL;'
</code></pre>



<p class="wp-block-paragraph">Erwartung: deine <code>siteurl</code>/<code>home</code> und WP-Version + Blogname.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 5: URLs (nur bei Domain-/Protokollwechsel)</h2>



<p class="wp-block-paragraph">Stehen <code>siteurl</code>/<code>home</code> bereits korrekt (z. B. <code>https://abow.info</code>), ist <strong>nichts</strong> zu tun – diesen Schritt überspringen. Andernfalls <strong>serialisierungssicher</strong> mit WP-CLI ersetzen, nie per rohem SQL:</p>



<pre class="wp-block-code"><code>docker compose exec wordpress bash -c '
  curl -sO https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  php wp-cli.phar search-replace "http://alt.tld" "https://abow.info" --all-tables --allow-root --dry-run'
</code></pre>



<p class="wp-block-paragraph">Sieht der Probelauf gut aus → <code>--dry-run</code> weglassen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 6: HTTPS hinter Traefik</h2>



<p class="wp-block-paragraph">Traefik terminiert TLS und spricht intern per HTTP mit WordPress. Ohne Hinweis baut WordPress Redirect-Loops / Mixed-Content. Per ENV in den <strong>wordpress</strong>-Service (die <code>$$</code> sind Absicht – Compose würde einfaches <code>$</code> als Variable interpretieren):</p>



<pre class="wp-block-code"><code>      - WORDPRESS_CONFIG_EXTRA=if (isset($$_SERVER&#91;'HTTP_X_FORWARDED_PROTO']) &amp;&amp; $$_SERVER&#91;'HTTP_X_FORWARDED_PROTO'] === 'https') { $$_SERVER&#91;'HTTPS'] = 'on'; }
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 7: Traefik-Routing im Host-Mode</h2>



<p class="wp-block-paragraph">Prüfen, wie Traefik tickt:</p>



<pre class="wp-block-code"><code>docker inspect traefik-traefik-1 --format '{{ json .Config.Cmd }}'
# -&gt; providers.docker=true, entrypoints web:80 / websecure:443,
#    HTTP-&gt;HTTPS-Redirect, certresolver "letsencrypt" (HTTP-Challenge)

docker inspect traefik-traefik-1 \
  --format '{{ range $n,$v := .NetworkSettings.Networks }}{{ $n }} {{ end }}'
# -&gt; host   (= Host-Mode!)
</code></pre>



<p class="wp-block-paragraph"><strong>Host-Mode-Konsequenzen</strong> (das ist die größte Falle):</p>



<ul class="wp-block-list">
<li><code>docker network connect</code> ist <strong>nicht möglich</strong> (Container im Host-Namespace).</li>



<li>Traefik erreicht den WP-Container nur über einen <strong>festen, veröffentlichten Port</strong> auf <code>127.0.0.1</code>.</li>



<li>Im Label statt <code>loadbalancer.server.port</code> → <strong><code>loadbalancer.server.url</code></strong> mit der festen URL.</li>
</ul>



<p class="wp-block-paragraph">Daher in der Compose den WP-Port <strong>fix</strong> mappen (nicht dynamisch <code>"80"</code>, das vergibt Docker zufällig):</p>



<pre class="wp-block-code"><code>    ports:
      - "127.0.0.1:8081:80"
</code></pre>



<p class="wp-block-paragraph">Und die <strong>Labels</strong> auf <strong>Service-Ebene</strong> (gleiche Einrückung wie <code>environment:</code>/<code>volumes:</code>, nur <strong>einmal</strong> <code>labels:</code> pro Service!):</p>



<pre class="wp-block-code"><code>    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.abow.rule=Host(`abow.info`)"
      - "traefik.http.routers.abow.entrypoints=websecure"
      - "traefik.http.routers.abow.tls=true"
      - "traefik.http.routers.abow.tls.certresolver=letsencrypt"
      - "traefik.http.services.abow.loadbalancer.server.url=http://127.0.0.1:8081"
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>YAML-Fallen:</strong> <code>labels:</code> darf nicht unter <code>volumes:</code> verschachtelt sein und nicht doppelt vorkommen (<code>mapping key "labels" already defined</code>). Nach jeder Änderung validieren:</p>



<pre class="wp-block-code"><code>docker compose config &gt;/dev/null &amp;&amp; echo "YAML OK" || echo "YAML kaputt"
</code></pre>
</blockquote>



<p class="wp-block-paragraph">Anwenden und <strong>intern</strong> testen (ohne auf DNS/Zertifikat zu warten):</p>



<pre class="wp-block-code"><code>docker compose up -d wordpress

curl -s -I http://127.0.0.1:8081/ | head -1            # WordPress direkt: 200/301
curl -s -I -H "Host: abow.info" http://127.0.0.1/ | head -1   # ueber Traefik
</code></pre>



<p class="wp-block-paragraph"><code>HTTP/1.1 308 Permanent Redirect</code> beim zweiten Befehl = <strong>Traefik kennt den <code>abow</code>-Router</strong> und leitet auf HTTPS um. Routing steht.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 8: DNS umstellen → Zertifikat kommt automatisch</h2>



<p class="wp-block-paragraph">Das Let&#8217;s-Encrypt-Zertifikat (HTTP-Challenge) zieht <strong>erst</strong>, wenn die Domain öffentlich auf den VPS zeigt. Beim DNS-Anbieter für <code>abow.info</code>:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Typ</th><th>Name</th><th>Wert</th></tr></thead><tbody><tr><td>A</td><td><code>@</code></td><td><code>72.61.92.170</code> (VPS-IPv4, via <code>curl -s -4 ifconfig.me</code>)</td></tr><tr><td>AAAA</td><td><code>@</code></td><td>deine VPS-IPv6 (oder AAAA entfernen)</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Vorher testen ohne DNS-Wartezeit: per Windows-<code>hosts</code>-Datei <code>abow.info</code> → VPS-IP (PowerShell-Skript unten). Browser-Zertifikatswarnung ist dabei normal, bis das echte Zert gezogen ist.</p>
</blockquote>



<p class="wp-block-paragraph">Nach Propagation prüfen:</p>



<pre class="wp-block-code"><code>dig +short abow.info                                   # -&gt; 72.61.92.170
curl -sI https://abow.info | head -3                   # -&gt; HTTP/2 200
echo | openssl s_client -connect abow.info:443 -servername abow.info 2&gt;/dev/null \
  | openssl x509 -noout -issuer -subject -dates        # Issuer: Let's Encrypt
</code></pre>



<p class="wp-block-paragraph"><code>HTTP/2 200</code> ohne TLS-Fehler = <strong>live mit gültigem Zertifikat.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schritt 9: Nacharbeiten &amp; Aufräumen</h2>



<pre class="wp-block-code"><code># In WordPress: Einstellungen -&gt; Permalinks -&gt; ohne Aenderung speichern (Rewrites/.htaccess)

# Backups/Reste entfernen
rm -rf /var/lib/docker/volumes/wordpress-ibr4_wordpress/_data_OLD
rm -f  /var/lib/docker/volumes/wordpress-ibr4_wordpress/_data/wp-config.php.*-bak*
rm -f  /docker/wordpress-ibr4/docker-compose.yml.bak*
</code></pre>



<ul class="wp-block-list">
<li><strong>DB-Passwort rotieren</strong>, falls es irgendwo im Klartext aufgetaucht ist.</li>



<li>Strato-Dump nach erfolgreicher Kontrolle sichern/löschen.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">PowerShell: Vorab-Test per hosts-Datei</h2>



<pre class="wp-block-code"><code>&lt;#
.NOTES
    Name:        PS_Hosts_Preview_VPS
    Author:      Andreas Bowitz
    Version:     0.2
    LastUpdated: 2026-Jun-03

.SYNOPSIS
    Setzt temporär einen hosts-Eintrag, um eine Domain vor der DNS-Umstellung
    auf die neue VPS-IP zeigen zu lassen (lokaler Test vom Windows-Client).
#&gt;

$VpsIP  = "72.61.92.170"
$Domain = "abow.info"

$HostsFile = "$env:WINDIR\System32\drivers\etc\hosts"
$Entry     = "$VpsIP`t$Domain"

if (-not (&#91;Security.Principal.WindowsPrincipal] &#91;Security.Principal.WindowsIdentity]::GetCurrent()
    ).IsInRole(&#91;Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Write-Warning "Bitte PowerShell als Administrator starten."; return
}
if ((Get-Content $HostsFile) -match &#91;Regex]::Escape($Domain)) {
    Write-Host "Eintrag fuer '$Domain' existiert bereits." -ForegroundColor Yellow
} else {
    Add-Content -Path $HostsFile -Value $Entry
    Write-Host "Hinzugefuegt: $Entry" -ForegroundColor Green
}
ipconfig /flushdns | Out-Null
Write-Host "Test: https://$Domain  (Zert-Warnung bis echtem DNS normal). Danach Zeile wieder entfernen." -ForegroundColor Cyan
</code></pre>



<h2 class="wp-block-heading">Bash: Import-Helfer (auf dem VPS)</h2>



<pre class="wp-block-code"><code>#!/usr/bin/env bash
# .NOTES
#   Name:        migrate_strato_to_docker
#   Author:      Andreas Bowitz
#   Version:     0.2
#   LastUpdated: 2026-Jun-03
#   Zweck:       DB-Dump in den db-Container importieren + Rechte setzen.
#                Im Compose-Projektverzeichnis ausfuehren.
set -euo pipefail

DB_CONTAINER="wordpress-ibr4-db-1"
WP_CONTAINER="wordpress-ibr4-wordpress-1"
DB_NAME="wordpress"
PREFIX="jryy_"
DUMP="${1:?Pfad zum SQL-Dump angeben}"

echo "&gt;&gt; Pruefe, ob Tabellen existieren ..."
COUNT=$(docker exec "$DB_CONTAINER" sh -c \
  "exec mysql -uwordpress -p\"\$MYSQL_PASSWORD\" -N -e \
   'SELECT COUNT(*) FROM information_schema.tables WHERE table_schema=\"$DB_NAME\";'")
if &#91; "$COUNT" -gt 0 ]; then
  echo "!! $COUNT Tabellen vorhanden. Erst leeren (manuell), dann erneut starten." ; exit 1
fi

echo "&gt;&gt; Importiere '$DUMP' ..."
docker exec -i "$DB_CONTAINER" \
  sh -c 'exec mysql -uwordpress -p"$MYSQL_PASSWORD" '"$DB_NAME" &lt; "$DUMP"

echo "&gt;&gt; Rechte setzen ..."
docker exec "$WP_CONTAINER" chown -R www-data:www-data /var/www/html

echo "&gt;&gt; Kontrolle ..."
docker exec "$DB_CONTAINER" sh -c \
  "exec mysql -uwordpress -p\"\$MYSQL_PASSWORD\" $DB_NAME \
   -e 'SELECT option_value FROM ${PREFIX}options WHERE option_name=\"siteurl\";'"
echo "&gt;&gt; Fertig."
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Troubleshooting (gesammelte Stolperfallen)</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Symptom</th><th>Ursache</th><th>Lösung</th></tr></thead><tbody><tr><td><code>open …/_data: no such file or directory</code></td><td><code>_data</code> (Mountpunkt des Named Volume) gelöscht</td><td>Volume-Ordner wiederherstellen, Files in <code>_data</code> legen – nie löschen</td></tr><tr><td><code>php</code>-Check zeigt <code>wp_</code> statt <code>jryy_</code></td><td><code>WORDPRESS_TABLE_PREFIX</code> im falschen Service-Block oder alte <code>wp-config.php</code> da</td><td>ENV beim <code>wordpress</code>-Service, alte Config umbenennen, <code>--force-recreate</code></td></tr><tr><td><code>wp-config.php</code> wird nicht neu geschrieben</td><td><code>docker compose up -d</code> recreatet laufenden Container nicht</td><td><code>docker compose up -d --force-recreate wordpress</code></td></tr><tr><td><code>ERROR 1050 … already exists</code></td><td>Tabellen schon vorhanden</td><td>Schema leeren (DROP-Loop), dann neu importieren</td></tr><tr><td><code>Error establishing a database connection</code></td><td><code>DB_HOST</code> = <code>localhost</code>/<code>rdbms.strato.de</code></td><td>auf Service-Namen <code>db</code> setzen</td></tr><tr><td><code>mapping key "labels" already defined</code> / <code>mapping values not allowed</code></td><td><code>labels:</code> doppelt oder falsch eingerückt</td><td>nur <strong>ein</strong> <code>labels:</code> auf Service-Ebene; <code>docker compose config</code> validieren</td></tr><tr><td>Traefik routet nicht / 404</td><td>Host-Mode + dynamischer Port / <code>server.port</code> statt <code>server.url</code></td><td>fixes <code>127.0.0.1:8081:80</code>, Label <code>loadbalancer.server.url=http://127.0.0.1:8081</code></td></tr><tr><td>Kein Zertifikat</td><td>HTTP-Challenge scheitert, DNS zeigt noch auf Strato</td><td>A/AAAA auf VPS-IP, dann zieht Traefik automatisch</td></tr><tr><td>Redirect-Loop / Mixed Content</td><td>HTTPS hinter Proxy nicht erkannt</td><td><code>WORDPRESS_CONFIG_EXTRA</code> mit <code>HTTP_X_FORWARDED_PROTO</code></td></tr><tr><td>404 auf Unterseiten</td><td>Permalinks/Rewrite</td><td>Permalinks ohne Änderung neu speichern</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Fazit:</strong> Auf einem Docker-VPS verlagert sich der Umzug komplett in die Shell. Die eigentliche Arbeit sind nicht die Standard-Schritte (Dump rein, Files rein), sondern die <strong>Eigenheiten der Umgebung</strong>: Named Volume = <code>_data</code> (nie löschen), <code>WORDPRESS_TABLE_PREFIX</code> beim <strong>richtigen</strong> Service plus <code>--force-recreate</code>, Effektiv-Prüfung mit <code>php -r</code> statt <code>grep</code>, und Traefik im <strong>Host-Mode</strong> mit <strong>festem Port</strong> und <code>server.url</code>. Wer diese vier Punkte kennt, zieht beim nächsten Mal in 20 Minuten um – ohne Hilfe.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/persoenlich/wordpress-umzug-von-strato-auf-einen-hostinger-vps-docker-traefik/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FISI // Handelskalkulation – vom Einkaufspreis zum Verkaufspreis</title>
		<link>https://abow.info/ausbildung_fachinformatiker/fisi-handelskalkulation-vom-einkaufspreis-zum-verkaufspreis/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/fisi-handelskalkulation-vom-einkaufspreis-zum-verkaufspreis/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Tue, 07 Jul 2026 10:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[Differenzkalkulation]]></category>
		<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[FISI]]></category>
		<category><![CDATA[Handelskalkulation]]></category>
		<category><![CDATA[Handelsspanne]]></category>
		<category><![CDATA[IHK]]></category>
		<category><![CDATA[Kalkulationsfaktor]]></category>
		<category><![CDATA[Kalkulationsschema]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Rückwärtskalkulation]]></category>
		<category><![CDATA[Vorwärtskalkulation]]></category>
		<category><![CDATA[WiSo]]></category>
		<category><![CDATA[Zuschlagskalkulation]]></category>
		<guid isPermaLink="false">https://abow.info/?p=492</guid>

					<description><![CDATA[Wenn du wissen willst, wie aus einem Einkaufspreis ein verkaufbarer Listenpreis wird – und warum ein Händler seine Ware spürbar teurer abgibt, als sie ihn gekostet hat –…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wenn du wissen willst, <strong>wie aus einem Einkaufspreis ein verkaufbarer Listenpreis wird</strong> – und warum ein Händler seine Ware spürbar teurer abgibt, als sie ihn gekostet hat – dann brauchst du die <strong>Handelskalkulation</strong>. Sie ist Pflichtstoff für die IHK-Prüfung (WiSo) und gleichzeitig knallhart praktisch, sobald du selbst Ware ein- und verkaufst. Hier kommt das komplette Schema, die drei Kalkulationsrichtungen, die wichtigen Kennzahlen – und eine PowerShell-Funktion, die dir die Rechnerei abnimmt.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Ziel</h2>



<p class="wp-block-paragraph">Du sollst nach diesem Beitrag:</p>



<ul class="wp-block-list">
<li>das <strong>Handelskalkulationsschema</strong> sicher von oben nach unten durchrechnen können,</li>



<li><strong>Vorwärts-, Rückwärts- und Differenzkalkulation</strong> auseinanderhalten,</li>



<li><strong>Kalkulationszuschlag, Kalkulationsfaktor und Handelsspanne</strong> berechnen und unterscheiden,</li>



<li>und das Ganze einmal als wiederverwendbares <strong>PowerShell-Tool</strong> in der Hand haben.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Worin unterscheidet sich die Handelskalkulation?</h2>



<p class="wp-block-paragraph">Ein Produktionsbetrieb zerlegt seine Kosten fein in Material- und Fertigungsgemeinkosten, Verwaltung und Vertrieb (klassische <strong>Zuschlagskalkulation</strong>). Ein <strong>Händler</strong> produziert nichts – er kauft fertige Ware ein und verkauft sie weiter. Deshalb werden seine <strong>Gemeinkosten nicht aufgesplittet</strong>, sondern in einem einzigen Satz zusammengefasst: den <strong>Handlungskosten</strong> (über den <em>Handlungskostenzuschlagssatz</em>).</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Der Handlungskostenzuschlag gibt das prozentuale Verhältnis der Handlungskosten zum <strong>Wareneinsatz</strong> (Bezugspreis) an.</p>
</blockquote>



<p class="wp-block-paragraph">Das macht die Handelskalkulation zu einer <strong>schlanken Zuschlagskalkulation</strong> – ideal für Handel und E‑Commerce.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Das Handelskalkulationsschema</h2>



<p class="wp-block-paragraph">Das Schema läuft vom <strong>Listeneinkaufspreis</strong> (was der Lieferant offiziell aufruft) bis zum <strong>Listenverkaufspreis</strong> (was am Ende auf deinem Preisschild steht). Wichtig: <strong>Es wird immer mit Nettopreisen gerechnet – die Mehrwertsteuer bleibt außen vor.</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>#</th><th>Position</th><th>Rechenweg</th><th>Bezug</th></tr></thead><tbody><tr><td>1</td><td>Listeneinkaufspreis</td><td>100 %</td><td>Grundwert Einkauf</td></tr><tr><td>2</td><td>− Lieferrabatt</td><td>− a %</td><td>vom Listeneinkaufspreis</td></tr><tr><td>3</td><td><strong>= Zieleinkaufspreis</strong></td><td>100 % − a %</td><td></td></tr><tr><td>4</td><td>− Lieferskonto</td><td>− b %</td><td>vom Zieleinkaufspreis</td></tr><tr><td>5</td><td><strong>= Bareinkaufspreis</strong></td><td>100 % − b %</td><td></td></tr><tr><td>6</td><td>+ Bezugskosten</td><td>+ €</td><td>Fracht, Verpackung, Zoll …</td></tr><tr><td>7</td><td><strong>= Bezugspreis (Einstandspreis)</strong></td><td></td><td>Wareneinsatz</td></tr><tr><td>8</td><td>+ Handlungskosten</td><td>+ c %</td><td>vom Bezugspreis</td></tr><tr><td>9</td><td><strong>= Selbstkosten</strong></td><td></td><td></td></tr><tr><td>10</td><td>+ Gewinn</td><td>+ d %</td><td>von den Selbstkosten</td></tr><tr><td>11</td><td><strong>= Barverkaufspreis</strong></td><td></td><td></td></tr><tr><td>12</td><td>+ Kundenskonto</td><td>+ e %</td><td><em>verminderter Grundwert</em></td></tr><tr><td>13</td><td><strong>= Zielverkaufspreis</strong></td><td></td><td></td></tr><tr><td>14</td><td>+ Kundenrabatt</td><td>+ f %</td><td><em>verminderter Grundwert</em></td></tr><tr><td>15</td><td><strong>= Listenverkaufspreis</strong></td><td>100 %</td><td>Grundwert Verkauf</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Merke – die Stolperfalle bei Skonto &amp; Rabatt im Verkaufsteil:</strong> Kundenskonto, Vertreterprovision und Kundenrabatt werden <strong>nicht</strong> auf den darunterliegenden Wert aufgeschlagen, sondern sind Prozente vom <em>darüberliegenden</em> Preis (Zielverkaufspreis bzw. Listenverkaufspreis = 100 %). Du rechnest also „<strong>im Hundert</strong>&#8220; mit <em>vermindertem Grundwert</em>:</p>



<pre class="wp-block-code"><code>Barverkaufspreis = Zielverkaufspreis × (100 % − e %)
  →  Zielverkaufspreis = Barverkaufspreis ÷ (100 % − e %)

Zielverkaufspreis = Listenverkaufspreis × (100 % − f %)
  →  Listenverkaufspreis = Zielverkaufspreis ÷ (100 % − f %)
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Die drei Kalkulationsrichtungen</h2>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="413" src="https://abow.info/wp-content/uploads/2026/06/inlay_kalkulationsrichtungen-1024x413.png" alt="" class="wp-image-494" srcset="https://abow.info/wp-content/uploads/2026/06/inlay_kalkulationsrichtungen-1024x413.png 1024w, https://abow.info/wp-content/uploads/2026/06/inlay_kalkulationsrichtungen-300x121.png 300w, https://abow.info/wp-content/uploads/2026/06/inlay_kalkulationsrichtungen-768x310.png 768w, https://abow.info/wp-content/uploads/2026/06/inlay_kalkulationsrichtungen.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Richtung</th><th>Bekannt</th><th>Gesucht</th><th>Leitfrage</th></tr></thead><tbody><tr><td><strong>Vorwärtskalkulation</strong></td><td>Einkauf / Einstand</td><td>Verkaufspreis</td><td>„Was darf / muss ich verlangen?&#8220;</td></tr><tr><td><strong>Rückwärtskalkulation</strong></td><td>Verkaufspreis (Markt)</td><td>max. Einstandspreis</td><td>„Was darf die Ware kosten?&#8220;</td></tr><tr><td><strong>Differenzkalkulation</strong></td><td>Einkauf <strong>und</strong> Verkauf</td><td>Gewinn</td><td>„Was bleibt mir übrig?&#8220;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Die <strong>Rückwärtskalkulation</strong> ist im Handel oft die ehrlichste: Der Markt diktiert den Preis (gerade bei vergleichbaren Produkten), und du rechnest zurück, wie viel du <strong>maximal</strong> im Einkauf zahlen darfst, ohne dass die Marge kippt.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Durchgerechnetes Beispiel (Vorwärtskalkulation)</h2>



<p class="wp-block-paragraph">Ein Einzelhändler kauft ein Gerät zum <strong>Listeneinkaufspreis von 512,64 €</strong> (netto). Konditionen: 10 % Lieferrabatt, 2 % Lieferskonto, 5,40 € Bezugskosten, 43 % Handlungskosten, 15 % Gewinn, 2 % Kundenskonto, 10 % Kundenrabatt.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Position</th><th>Satz</th><th>Betrag</th></tr></thead><tbody><tr><td>Listeneinkaufspreis</td><td>100 %</td><td>512,64 €</td></tr><tr><td>− Lieferrabatt</td><td>10 %</td><td>51,26 €</td></tr><tr><td><strong>= Zieleinkaufspreis</strong></td><td></td><td><strong>461,38 €</strong></td></tr><tr><td>− Lieferskonto</td><td>2 %</td><td>9,23 €</td></tr><tr><td><strong>= Bareinkaufspreis</strong></td><td></td><td><strong>452,15 €</strong></td></tr><tr><td>+ Bezugskosten</td><td></td><td>5,40 €</td></tr><tr><td><strong>= Bezugspreis (Einstand)</strong></td><td></td><td><strong>457,55 €</strong></td></tr><tr><td>+ Handlungskosten</td><td>43 %</td><td>196,75 €</td></tr><tr><td><strong>= Selbstkosten</strong></td><td></td><td><strong>654,30 €</strong></td></tr><tr><td>+ Gewinn</td><td>15 %</td><td>98,15 €</td></tr><tr><td><strong>= Barverkaufspreis</strong></td><td></td><td><strong>752,45 €</strong></td></tr><tr><td>+ Kundenskonto</td><td>2 %</td><td>15,36 €</td></tr><tr><td><strong>= Zielverkaufspreis</strong></td><td></td><td><strong>767,81 €</strong></td></tr><tr><td>+ Kundenrabatt</td><td>10 %</td><td>85,31 €</td></tr><tr><td><strong>= Listenverkaufspreis</strong></td><td></td><td><strong>853,12 €</strong></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Kleiner Realitäts-Check: Je nachdem, ob du <strong>jeden Zwischenschritt rundest</strong> oder mit allen Nachkommastellen durchrechnest, weicht der Endwert um ein, zwei Cent ab (hier: 853,12 € bei schrittweiser Rundung). In der Prüfung gilt i. d. R. die schrittweise gerundete Variante.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Die drei Kennzahlen: Zuschlag, Faktor, Spanne</h2>



<p class="wp-block-paragraph">Aus genau diesem Beispiel lassen sich drei Kennzahlen ableiten, die ständig verwechselt werden. Der <strong>Rohgewinn</strong> ist dabei die Differenz zwischen Bezugspreis und Listenverkaufspreis:</p>



<pre class="wp-block-code"><code>Rohgewinn = Listenverkaufspreis − Bezugspreis
          = 853,12 € − 457,55 € = 395,57 €
</code></pre>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Kennzahl</th><th>Formel</th><th>Aussage</th><th>Ergebnis</th></tr></thead><tbody><tr><td><strong>Kalkulationszuschlag</strong></td><td>Rohgewinn ÷ <strong>Bezugspreis</strong> × 100</td><td>Aufschlag auf den <strong>Einkauf</strong></td><td><strong>86,45 %</strong></td></tr><tr><td><strong>Kalkulationsfaktor</strong></td><td>Listenverkaufspreis ÷ Bezugspreis</td><td>Multiplikator Einkauf → Verkauf</td><td><strong>1,8645</strong></td></tr><tr><td><strong>Handelsspanne</strong></td><td>Rohgewinn ÷ <strong>Listenverkaufspreis</strong> × 100</td><td>Rohgewinn-Anteil am <strong>Verkauf</strong></td><td><strong>46,37 %</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Eselsbrücke:</strong> Zuschlag und Faktor schauen auf den <strong>Einkauf</strong> (Nenner = Bezugspreis), die Handelsspanne schaut auf den <strong>Verkauf</strong> (Nenner = Listenverkaufspreis). Mit dem Faktor sparst du dir das ganze Schema: <code>Einstand × 1,8645 = Listenverkaufspreis</code> (netto).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Bonus: Handelskalkulation als PowerShell-Funktion</h2>



<p class="wp-block-paragraph">Damit du nicht jedes Mal die Tabelle von Hand rechnest, hier eine kleine <strong>Vorwärtskalkulation</strong> als Funktion. Sie rundet schrittweise (prüfungskonform) und gibt das komplette Schema aus.</p>



<pre class="wp-block-code"><code>&lt;#
.NOTES
    Name:        PS_Handelskalkulation_Vorwaerts
    Author:      Andreas Bowitz
    Version:     0.1
    LastUpdated: 2026-Jun-03

.SYNOPSIS
    Berechnet die Vorwaertskalkulation vom Listeneinkaufspreis bis zum
    Listenverkaufspreis (netto, ohne USt) nach dem Handelskalkulationsschema.

.EXAMPLE
    Get-Handelskalkulation -Listeneinkaufspreis 512.64 -LieferrabattProz 10 `
        -LieferskontoProz 2 -Bezugskosten 5.40 -HandlungskostenProz 43 `
        -GewinnProz 15 -KundenskontoProz 2 -KundenrabattProz 10
#&gt;
function Get-Handelskalkulation {
    &#91;CmdletBinding()]
    param(
        &#91;Parameter(Mandatory)] &#91;double] $Listeneinkaufspreis,
        &#91;double] $LieferrabattProz   = 0,
        &#91;double] $LieferskontoProz   = 0,
        &#91;double] $Bezugskosten       = 0,
        &#91;Parameter(Mandatory)] &#91;double] $HandlungskostenProz,
        &#91;Parameter(Mandatory)] &#91;double] $GewinnProz,
        &#91;double] $KundenskontoProz   = 0,
        &#91;double] $KundenrabattProz   = 0
    )

    # Hilfsfunktion: kaufmaennisch auf 2 Nachkommastellen runden
    function r(&#91;double]$x) { &#91;math]::Round($x, 2, &#91;MidpointRounding]::AwayFromZero) }

    # --- Einkaufsteil (Aufschlag/Abschlag vom Grundwert) ---
    $lieferrabatt = r($Listeneinkaufspreis * $LieferrabattProz / 100)
    $zieleinkauf  = r($Listeneinkaufspreis - $lieferrabatt)

    $lieferskonto = r($zieleinkauf * $LieferskontoProz / 100)
    $bareinkauf   = r($zieleinkauf - $lieferskonto)

    $bezugspreis  = r($bareinkauf + $Bezugskosten)

    # --- Selbstkosten &amp; Gewinn ---
    $handlungsk   = r($bezugspreis * $HandlungskostenProz / 100)
    $selbstkosten = r($bezugspreis + $handlungsk)

    $gewinn       = r($selbstkosten * $GewinnProz / 100)
    $barverkauf   = r($selbstkosten + $gewinn)

    # --- Verkaufsteil: verminderter Grundwert ("im Hundert") ---
    $zielverkauf  = r($barverkauf / (1 - $KundenskontoProz / 100))
    $kundenskonto = r($zielverkauf - $barverkauf)

    $listenverkauf = r($zielverkauf / (1 - $KundenrabattProz / 100))
    $kundenrabatt  = r($listenverkauf - $zielverkauf)

    # --- Kennzahlen ---
    $rohgewinn = r($listenverkauf - $bezugspreis)
    $zuschlag  = r($rohgewinn / $bezugspreis * 100)
    $faktor    = &#91;math]::Round($listenverkauf / $bezugspreis, 4)
    $spanne    = r($rohgewinn / $listenverkauf * 100)

    &#91;PSCustomObject]&#91;ordered]@{
        Listeneinkaufspreis  = $Listeneinkaufspreis
        Lieferrabatt         = $lieferrabatt
        Zieleinkaufspreis    = $zieleinkauf
        Lieferskonto         = $lieferskonto
        Bareinkaufspreis     = $bareinkauf
        Bezugskosten         = $Bezugskosten
        Bezugspreis          = $bezugspreis
        Handlungskosten      = $handlungsk
        Selbstkosten         = $selbstkosten
        Gewinn               = $gewinn
        Barverkaufspreis     = $barverkauf
        Kundenskonto         = $kundenskonto
        Zielverkaufspreis    = $zielverkauf
        Kundenrabatt         = $kundenrabatt
        Listenverkaufspreis  = $listenverkauf
        Kalkulationszuschlag = "$zuschlag %"
        Kalkulationsfaktor   = $faktor
        Handelsspanne        = "$spanne %"
    }
}
</code></pre>



<p class="wp-block-paragraph">Aufruf mit den Beispielwerten von oben:</p>



<pre class="wp-block-code"><code>Get-Handelskalkulation -Listeneinkaufspreis 512.64 -LieferrabattProz 10 `
    -LieferskontoProz 2 -Bezugskosten 5.40 -HandlungskostenProz 43 `
    -GewinnProz 15 -KundenskontoProz 2 -KundenrabattProz 10 | Format-List
</code></pre>



<p class="wp-block-paragraph">→ liefert u. a. <code>Bezugspreis = 457,55</code>, <code>Selbstkosten = 654,30</code>, <code>Listenverkaufspreis = 853,12</code>, <code>Kalkulationsfaktor = 1,8645</code>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Praxisbezug: Warum das im (Online-)Handel zählt</h2>



<p class="wp-block-paragraph">Wer Ware handelt – ob Drucker, Notebooks oder Sammelkarten – steht vor genau dieser Rechnung. Drei typische Fälle:</p>



<ul class="wp-block-list">
<li><strong>Vorwärts:</strong> Booster-Display im Einkauf, du willst deinen Listenpreis bestimmen → Schema von oben nach unten.</li>



<li><strong>Rückwärts:</strong> Der Marktpreis einer Karte steht fest (z. B. aus einer Preisquelle) → du rechnest zurück, was dein <strong>maximaler Einstand</strong> sein darf, damit Handlungskosten und Wunschmarge noch passen. Genau hier setzt der Kalkulationsfaktor an: <code>Marktpreis ÷ 1,8645 = max. Einstand</code> (bei gleicher Kostenstruktur).</li>



<li><strong>Differenz:</strong> Ware ist eingekauft, Verkaufspreis ist gesetzt → du prüfst, <strong>was tatsächlich an Gewinn übrig bleibt</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>Nicht vergessen:</strong> Die ganze Kalkulation läuft <strong>netto</strong>. Die Umsatzsteuer kommt erst danach obendrauf bzw. wird im B2B durchgereicht – sie ist kein Bestandteil der Preiskalkulation.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Fazit:</strong> Die Handelskalkulation ist eine schlanke Zuschlagskalkulation mit nur einem Gemeinkostensatz – wer das Schema und die drei Kennzahlen (Zuschlag, Faktor, Spanne) sauber trennt, kalkuliert Verkaufspreise in der Prüfung <strong>und</strong> im echten Lager fehlerfrei.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/fisi-handelskalkulation-vom-einkaufspreis-zum-verkaufspreis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ausbildung FISI // Logische Grundfunktionen &#038; Normalformen</title>
		<link>https://abow.info/ausbildung_fachinformatiker/ausbildung-fisi-logische-grundfunktionen-normalformen/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/ausbildung-fisi-logische-grundfunktionen-normalformen/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Fri, 03 Jul 2026 15:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[Ausbildung]]></category>
		<category><![CDATA[Boolesche Algebra]]></category>
		<category><![CDATA[De Morgan]]></category>
		<category><![CDATA[Digitaltechnik]]></category>
		<category><![CDATA[DNF]]></category>
		<category><![CDATA[FISI]]></category>
		<category><![CDATA[IEC 60617]]></category>
		<category><![CDATA[KNF]]></category>
		<category><![CDATA[KV-Diagramm]]></category>
		<category><![CDATA[Logikgatter]]></category>
		<category><![CDATA[NAND]]></category>
		<category><![CDATA[NICHT]]></category>
		<category><![CDATA[NOR]]></category>
		<category><![CDATA[Normalformen]]></category>
		<category><![CDATA[ODER]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Schaltzeichen]]></category>
		<category><![CDATA[UND]]></category>
		<category><![CDATA[Wahrheitstabelle]]></category>
		<category><![CDATA[XNOR]]></category>
		<category><![CDATA[XOR]]></category>
		<category><![CDATA[Zeitablaufdiagramm]]></category>
		<guid isPermaLink="false">https://abow.info/?p=486</guid>

					<description><![CDATA[Ob Prüfungsaufgabe, Schaltungsentwurf oder einfach das Verständnis, warum ein Computer überhaupt „rechnet&#8220; – an der Booleschen Logik kommst du als FISI nicht vorbei. In diesem Beitrag gehen wir…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ob Prüfungsaufgabe, Schaltungsentwurf oder einfach das Verständnis, <em>warum</em> ein Computer überhaupt „rechnet&#8220; – an der <strong>Booleschen Logik</strong> kommst du als FISI nicht vorbei. In diesem Beitrag gehen wir die Grundfunktionen UND, ODER, NICHT durch, schauen uns die zusammengesetzten Gatter NAND, NOR, XOR an und leiten am Ende aus einer Wahrheitstabelle die beiden Normalformen <strong>DNF</strong> und <strong>KNF</strong> ab – inklusive <strong>Schaltzeichen</strong> (IEC und US-Norm) und <strong>Zeitablaufdiagramm</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Inhaltsverzeichnis</h2>



<ul class="wp-block-list">
<li>Binäre Logik – worum geht es?</li>



<li>Die drei Grundfunktionen: NICHT, UND, ODER</li>



<li>Schaltzeichen im Überblick (IEC vs. US-Norm)</li>



<li>Die zusammengesetzten Gatter: NAND, NOR, XOR, XNOR</li>



<li>Zeitablaufdiagramm (Impulsdiagramm)</li>



<li>Wichtige Rechenregeln &amp; die Sätze von De Morgan</li>



<li>Normalformen: DNF und KNF</li>



<li>NAND &amp; NOR – die universellen Gatter</li>



<li>Bonus: Wahrheitstabelle per PowerShell</li>



<li>Fazit</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Binäre Logik – worum geht es?</h1>



<p class="wp-block-paragraph">Digitaltechnik kennt nur <strong>zwei Zustände</strong>: <code>0</code> und <code>1</code> (auch <em>LOW/HIGH</em>, <em>falsch/wahr</em>, <em>aus/ein</em>). Eine <strong>logische Funktion</strong> bildet einen oder mehrere Eingänge auf genau einen Ausgang ab. Beschreiben kannst du sie auf drei gleichwertige Arten:</p>



<ul class="wp-block-list">
<li><strong>Wahrheitstabelle</strong> – listet für jede Eingangskombination den Ausgang auf.</li>



<li><strong>Boolescher Ausdruck</strong> – die Funktion als Formel, z. B. <code>Y = A ∧ B</code>.</li>



<li><strong>Schaltzeichen / Logikplan</strong> – die grafische Darstellung als Gatter.</li>
</ul>



<p class="wp-block-paragraph">Bei <code>n</code> Eingängen gibt es immer <code>2ⁿ</code> mögliche Eingangskombinationen – bei 2 Eingängen also 4 Zeilen, bei 3 Eingängen 8 Zeilen. Das ist später für DNF/KNF wichtig.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Notation:</strong> Es gibt mehrere übliche Schreibweisen. Ich nutze hier <code>∧</code> (UND), <code>∨</code> (ODER), <code>¬</code> (NICHT) und <code>⊕</code> (XOR). Gleichwertig sind: UND = <code>·</code> oder Zusammenschreiben (<code>A·B</code> bzw. <code>AB</code>), ODER = <code>+</code>, NICHT = Überstrich (<code>Ā</code>).</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Die drei Grundfunktionen: NICHT, UND, ODER</h1>



<p class="wp-block-paragraph">Aus diesen drei lässt sich <strong>jede</strong> beliebige logische Funktion zusammensetzen – sie sind das Fundament.</p>



<h2 class="wp-block-heading">NICHT (NOT / Negation / Inverter)</h2>



<p class="wp-block-paragraph">Dreht den Eingang um. Ein Eingang, ein Ausgang.</p>



<p class="wp-block-paragraph"><code>Y = ¬A</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>A</th><th>Y</th></tr></thead><tbody><tr><td>0</td><td>1</td></tr><tr><td>1</td><td>0</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">UND (AND / Konjunktion)</h2>



<p class="wp-block-paragraph">Der Ausgang ist nur dann <code>1</code>, wenn <strong>alle</strong> Eingänge <code>1</code> sind. Merksatz: <em>„UND ist geizig&#8220;</em>.</p>



<p class="wp-block-paragraph"><code>Y = A ∧ B</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>A</th><th>B</th><th>Y</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>0</td></tr><tr><td>1</td><td>0</td><td>0</td></tr><tr><td>1</td><td>1</td><td>1</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">ODER (OR / Disjunktion)</h2>



<p class="wp-block-paragraph">Der Ausgang ist <code>1</code>, sobald <strong>mindestens ein</strong> Eingang <code>1</code> ist. Merksatz: <em>„ODER ist großzügig&#8220;</em>.</p>



<p class="wp-block-paragraph"><code>Y = A ∨ B</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>A</th><th>B</th><th>Y</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>1</td></tr><tr><td>1</td><td>0</td><td>1</td></tr><tr><td>1</td><td>1</td><td>1</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Schaltzeichen im Überblick (IEC vs. US-Norm)</h1>



<p class="wp-block-paragraph">In der Praxis triffst du auf zwei Symbol-Welten:</p>



<ul class="wp-block-list">
<li><strong>IEC 60617 / DIN</strong> – rechteckige Symbole mit einem Kennzeichen im Block (<code>&amp;</code> für UND, <code>≥1</code> für ODER, <code>1</code> für NICHT, <code>=1</code> für XOR). In deutschen Prüfungen und Normplänen üblich.</li>



<li><strong>ANSI / US-Norm</strong> – die „distinktiven&#8220; geschwungenen Formen, die du aus vielen Datenblättern und internationaler Literatur kennst.</li>
</ul>



<p class="wp-block-paragraph">Eine <strong>Negation</strong> wird in beiden Welten durch einen kleinen <strong>Kreis (Bubble)</strong> am Ausgang dargestellt – so werden aus UND/ODER die Funktionen NAND/NOR.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="766" src="https://abow.info/wp-content/uploads/2026/06/schaltzeichen-1024x766.png" alt="" class="wp-image-488" srcset="https://abow.info/wp-content/uploads/2026/06/schaltzeichen-1024x766.png 1024w, https://abow.info/wp-content/uploads/2026/06/schaltzeichen-300x224.png 300w, https://abow.info/wp-content/uploads/2026/06/schaltzeichen-768x574.png 768w, https://abow.info/wp-content/uploads/2026/06/schaltzeichen-1536x1149.png 1536w, https://abow.info/wp-content/uploads/2026/06/schaltzeichen.png 1785w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Die zusammengesetzten Gatter: NAND, NOR, XOR, XNOR</h1>



<h2 class="wp-block-heading">NAND (NOT-AND)</h2>



<p class="wp-block-paragraph">Negiertes UND – Ausgang ist <code>0</code> nur dann, wenn <strong>alle</strong> Eingänge <code>1</code> sind.</p>



<p class="wp-block-paragraph"><code>Y = ¬(A ∧ B)</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>A</th><th>B</th><th>Y</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>1</td></tr><tr><td>0</td><td>1</td><td>1</td></tr><tr><td>1</td><td>0</td><td>1</td></tr><tr><td>1</td><td>1</td><td>0</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">NOR (NOT-OR)</h2>



<p class="wp-block-paragraph">Negiertes ODER – Ausgang ist <code>1</code> nur dann, wenn <strong>alle</strong> Eingänge <code>0</code> sind.</p>



<p class="wp-block-paragraph"><code>Y = ¬(A ∨ B)</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>A</th><th>B</th><th>Y</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>1</td></tr><tr><td>0</td><td>1</td><td>0</td></tr><tr><td>1</td><td>0</td><td>0</td></tr><tr><td>1</td><td>1</td><td>0</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">XOR (Exklusiv-ODER / Antivalenz)</h2>



<p class="wp-block-paragraph">Ausgang ist <code>1</code>, wenn die Eingänge <strong>unterschiedlich</strong> sind. Bei mehr als zwei Eingängen gilt: <code>1</code>, wenn die <strong>Anzahl der Einsen ungerade</strong> ist (Paritätsfunktion).</p>



<p class="wp-block-paragraph"><code>Y = A ⊕ B</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>A</th><th>B</th><th>Y</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>1</td></tr><tr><td>1</td><td>0</td><td>1</td></tr><tr><td>1</td><td>1</td><td>0</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">XNOR (Äquivalenz)</h2>



<p class="wp-block-paragraph">Negiertes XOR – Ausgang ist <code>1</code>, wenn die Eingänge <strong>gleich</strong> sind. Praktisch als „Vergleicher&#8220;.</p>



<p class="wp-block-paragraph"><code>Y = ¬(A ⊕ B)</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>A</th><th>B</th><th>Y</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>1</td></tr><tr><td>0</td><td>1</td><td>0</td></tr><tr><td>1</td><td>0</td><td>0</td></tr><tr><td>1</td><td>1</td><td>1</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Zeitablaufdiagramm (Impulsdiagramm)</h1>



<p class="wp-block-paragraph">Das <strong>Zeitablaufdiagramm</strong> (auch <em>Impuls-</em> oder <em>Signal-Zeit-Diagramm</em>) zeigt, wie sich die Ausgänge über die Zeit verhalten, während sich die Eingänge ändern. Hier durchlaufen die Eingänge <code>A</code> und <code>B</code> nacheinander alle vier Kombinationen <code>00 → 01 → 10 → 11</code>. So siehst du auf einen Blick, wie jedes Gatter reagiert (in idealer Betrachtung ohne Gatterlaufzeit/Schaltverzögerung).</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="790" src="https://abow.info/wp-content/uploads/2026/06/zeitablaufdiagramm-1024x790.png" alt="" class="wp-image-489" srcset="https://abow.info/wp-content/uploads/2026/06/zeitablaufdiagramm-1024x790.png 1024w, https://abow.info/wp-content/uploads/2026/06/zeitablaufdiagramm-300x231.png 300w, https://abow.info/wp-content/uploads/2026/06/zeitablaufdiagramm-768x592.png 768w, https://abow.info/wp-content/uploads/2026/06/zeitablaufdiagramm-1536x1185.png 1536w, https://abow.info/wp-content/uploads/2026/06/zeitablaufdiagramm.png 1635w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Lies es spaltenweise: In jeder Zeitspalte gilt eine feste Kombination von <code>A</code> und <code>B</code>, und du kannst Zeile für Zeile mit den Wahrheitstabellen oben gegenprüfen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Wichtige Rechenregeln &amp; die Sätze von De Morgan</h1>



<p class="wp-block-paragraph">Für Vereinfachungen brauchst du die Grundgesetze der Booleschen Algebra:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Gesetz</th><th>UND-Form</th><th>ODER-Form</th></tr></thead><tbody><tr><td>Neutralität</td><td><code>A ∧ 1 = A</code></td><td><code>A ∨ 0 = A</code></td></tr><tr><td>Extremalgesetz</td><td><code>A ∧ 0 = 0</code></td><td><code>A ∨ 1 = 1</code></td></tr><tr><td>Idempotenz</td><td><code>A ∧ A = A</code></td><td><code>A ∨ A = A</code></td></tr><tr><td>Komplement</td><td><code>A ∧ ¬A = 0</code></td><td><code>A ∨ ¬A = 1</code></td></tr><tr><td>Kommutativität</td><td><code>A ∧ B = B ∧ A</code></td><td><code>A ∨ B = B ∨ A</code></td></tr><tr><td>Distributivität</td><td><code>A ∧ (B ∨ C) = (A∧B) ∨ (A∧C)</code></td><td><code>A ∨ (B ∧ C) = (A∨B) ∧ (A∨C)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Besonders prüfungsrelevant sind die <strong>Sätze von De Morgan</strong> – sie verbinden UND/ODER über die Negation und sind die Grundlage dafür, dass NAND und NOR universell sind:</p>



<pre class="wp-block-code"><code>¬(A ∧ B) = ¬A ∨ ¬B
¬(A ∨ B) = ¬A ∧ ¬B
</code></pre>



<p class="wp-block-paragraph">Merksatz: <em>„Negation rein – aus UND wird ODER (und umgekehrt).&#8220;</em></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Normalformen: DNF und KNF</h1>



<p class="wp-block-paragraph">Eine <strong>Normalform</strong> ist eine standardisierte Schreibweise, in der sich <strong>jede</strong> logische Funktion direkt aus ihrer Wahrheitstabelle ablesen lässt – ohne Raten.</p>



<ul class="wp-block-list">
<li><strong>DNF – Disjunktive Normalform:</strong> eine <strong>ODER</strong>-Verknüpfung von <strong>UND</strong>-Termen (sog. <em>Mintermen</em>). Du baust sie aus allen Zeilen, in denen der <strong>Ausgang <code>1</code></strong> ist.</li>



<li><strong>KNF – Konjunktive Normalform:</strong> eine <strong>UND</strong>-Verknüpfung von <strong>ODER</strong>-Termen (sog. <em>Maxtermen</em>). Du baust sie aus allen Zeilen, in denen der <strong>Ausgang <code>0</code></strong> ist.</li>
</ul>



<h2 class="wp-block-heading">So liest du die Terme ab</h2>



<p class="wp-block-paragraph"><strong>Minterm (für DNF, Zeile mit Ausgang 1):</strong> Alle Eingangsvariablen werden mit <strong>UND</strong> verknüpft. Eine Variable steht <strong>negiert</strong>, wenn sie in dieser Zeile <code>0</code> ist, und <strong>nicht negiert</strong>, wenn sie <code>1</code> ist.</p>



<p class="wp-block-paragraph"><strong>Maxterm (für KNF, Zeile mit Ausgang 0):</strong> Alle Eingangsvariablen werden mit <strong>ODER</strong> verknüpft. Hier ist es <strong>genau umgekehrt</strong>: Eine Variable steht <strong>negiert</strong>, wenn sie in dieser Zeile <code>1</code> ist, und <strong>nicht negiert</strong>, wenn sie <code>0</code> ist.</p>



<h2 class="wp-block-heading">Beispiel: Mehrheitsfunktion (2-aus-3)</h2>



<p class="wp-block-paragraph">Nehmen wir eine typische Funktion mit drei Eingängen: Der Ausgang <code>f</code> ist <code>1</code>, wenn <strong>mindestens zwei</strong> der drei Eingänge <code>1</code> sind (z. B. eine „2-aus-3&#8243;-Mehrheitsentscheidung).</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="663" src="https://abow.info/wp-content/uploads/2026/06/dnf_knf_tabelle-1024x663.png" alt="" class="wp-image-490" srcset="https://abow.info/wp-content/uploads/2026/06/dnf_knf_tabelle-1024x663.png 1024w, https://abow.info/wp-content/uploads/2026/06/dnf_knf_tabelle-300x194.png 300w, https://abow.info/wp-content/uploads/2026/06/dnf_knf_tabelle-768x497.png 768w, https://abow.info/wp-content/uploads/2026/06/dnf_knf_tabelle-1536x994.png 1536w, https://abow.info/wp-content/uploads/2026/06/dnf_knf_tabelle.png 1599w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><strong>DNF</strong> – ODER über alle Minterme (die vier <code>1</code>-Zeilen):</p>



<pre class="wp-block-code"><code>f = (¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ C) ∨ (A ∧ B ∧ ¬C) ∨ (A ∧ B ∧ C)
</code></pre>



<p class="wp-block-paragraph"><strong>KNF</strong> – UND über alle Maxterme (die vier <code>0</code>-Zeilen):</p>



<pre class="wp-block-code"><code>f = (A ∨ B ∨ C) ∧ (A ∨ B ∨ ¬C) ∧ (A ∨ ¬B ∨ C) ∧ (¬A ∨ B ∨ C)
</code></pre>



<p class="wp-block-paragraph">Beide Formeln beschreiben <strong>dieselbe</strong> Funktion – einmal über die <code>1</code>-Stellen, einmal über die <code>0</code>-Stellen. Welche Form kürzer ist, hängt davon ab, ob die Funktion mehr Einsen oder mehr Nullen hat: Hat die Funktion <strong>wenige Einsen</strong>, ist die DNF kürzer; hat sie <strong>wenige Nullen</strong>, ist die KNF kürzer.</p>



<h2 class="wp-block-heading">Wichtig: Normalform ≠ minimale Form</h2>



<p class="wp-block-paragraph">DNF und KNF sind <strong>vollständig</strong>, aber meist <strong>nicht minimal</strong>. Die Mehrheitsfunktion lässt sich z. B. zu</p>



<pre class="wp-block-code"><code>f = (A ∧ B) ∨ (A ∧ C) ∨ (B ∧ C)
</code></pre>



<p class="wp-block-paragraph">vereinfachen. Solche Minimierungen macht man per <strong>Boolescher Algebra</strong> (De Morgan, Distributivgesetz) oder grafisch mit dem <strong>KV-Diagramm</strong> (Karnaugh-Veitch) – das ist aber ein eigenes Thema.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">NAND &amp; NOR – die universellen Gatter</h1>



<p class="wp-block-paragraph">Eine Eigenschaft, die in Prüfungen gern abgefragt wird: <strong>NAND</strong> und <strong>NOR</strong> sind jeweils <strong>funktional vollständig</strong>. Das heißt, du kannst mit <em>ausschließlich</em> NAND-Gattern (oder <em>ausschließlich</em> NOR-Gattern) jede beliebige Logik nachbauen. Beispiele mit NAND:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Funktion</th><th>Aufbau nur aus NAND</th></tr></thead><tbody><tr><td>NICHT</td><td><code>¬A = A NAND A</code></td></tr><tr><td>UND</td><td><code>A ∧ B = ¬(A NAND B)</code> → ein NAND, dahinter ein NAND als Inverter</td></tr><tr><td>ODER</td><td><code>A ∨ B = (¬A) NAND (¬B)</code> (folgt direkt aus De Morgan)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Das ist auch ökonomisch relevant: In der Fertigung ist es günstiger, einen Chip mit nur <strong>einem</strong> Gattertyp zu bestücken, als mehrere Typen zu mischen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h1 class="wp-block-heading">Bonus: Wahrheitstabelle per PowerShell</h1>



<p class="wp-block-paragraph">Da du vermutlich eh schon eine PowerShell offen hast – damit kannst du dir die Wahrheitstabelle der Grundfunktionen schnell selbst ausgeben lassen. Praktisch zum Gegenprüfen:</p>



<pre class="wp-block-code"><code>&lt;#
.SYNOPSIS
    Gibt die Wahrheitstabelle der logischen Grundfunktionen fuer zwei Eingaenge aus.
.DESCRIPTION
    Durchlaeuft alle vier Kombinationen von A und B und berechnet
    UND, ODER, XOR, NAND, NOR und XNOR ueber die bitweisen Operatoren.
.NOTES
    Name: PS_Wahrheitstabelle_Grundfunktionen
    Author: Andreas Bowitz
    Version: 0.1
    LastUpdated: 2026-Jun-03
#&gt;

$ergebnis = foreach ($A in 0..1) {
    foreach ($B in 0..1) {
        &#91;PSCustomObject]@{
            A    = $A
            B    = $B
            UND  = $A -band $B            # AND
            ODER = $A -bor  $B            # OR
            XOR  = $A -bxor $B            # XOR
            NAND = &#91;int](-not ($A -band $B))
            NOR  = &#91;int](-not ($A -bor  $B))
            XNOR = &#91;int](-not ($A -bxor $B))
        }
    }
}

$ergebnis | Format-Table -AutoSize
</code></pre>



<p class="wp-block-paragraph">Ausgabe:</p>



<pre class="wp-block-code"><code>A B UND ODER XOR NAND NOR XNOR
- - --- ---- --- ---- --- ----
0 0   0    0   0    1   1    1
0 1   0    1   1    1   0    0
1 0   0    1   1    1   0    0
1 1   1    1   0    0   0    1
</code></pre>



<p class="wp-block-paragraph">Vergleiche das Ergebnis ruhig mit den Tabellen weiter oben – es passt Zeile für Zeile. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Fazit:</strong> Mit <strong>NICHT, UND, ODER</strong> hast du das komplette Fundament der Digitaltechnik in der Hand. <strong>NAND, NOR, XOR</strong> sind nur clevere Kombinationen davon, und über <strong>DNF/KNF</strong> bekommst du aus jeder Wahrheitstabelle systematisch eine Formel – ganz ohne Raten. Wer das sicher beherrscht, hat in der FISI-Prüfung bei Themen wie Schaltnetzen, KV-Diagrammen und Logikplänen einen klaren Vorteil. Im nächsten Schritt lohnt sich der Blick auf das <strong>KV-Diagramm</strong> zur Minimierung.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/ausbildung-fisi-logische-grundfunktionen-normalformen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FISI // Datendarstellung: Wie Text, Bild und Ton zu Nullen und Einsen werden</title>
		<link>https://abow.info/ausbildung_fachinformatiker/fisi-datendarstellung-wie-text-bild-und-ton-zu-nullen-und-einsen-werden/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/fisi-datendarstellung-wie-text-bild-und-ton-zu-nullen-und-einsen-werden/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Tue, 30 Jun 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[ASCII]]></category>
		<category><![CDATA[Auflösung]]></category>
		<category><![CDATA[Ausbildung]]></category>
		<category><![CDATA[Bit]]></category>
		<category><![CDATA[Byte]]></category>
		<category><![CDATA[Datendarstellung]]></category>
		<category><![CDATA[Digitalisierung]]></category>
		<category><![CDATA[dpi]]></category>
		<category><![CDATA[Farbtiefe]]></category>
		<category><![CDATA[FISI]]></category>
		<category><![CDATA[ISO 8859]]></category>
		<category><![CDATA[IT-Grundlagen]]></category>
		<category><![CDATA[Nyquist]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Rastergrafik]]></category>
		<category><![CDATA[Sampling]]></category>
		<category><![CDATA[Shannon]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[UTF-8]]></category>
		<category><![CDATA[Vektorgrafik]]></category>
		<guid isPermaLink="false">https://abow.info/?p=478</guid>

					<description><![CDATA[Ein Computer kennt am Ende nur zwei Dinge: Strom an und Strom aus – also 1 und 0. Trotzdem speichert er Romane, Fotos und ganze Konzerte. Wie das…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ein Computer kennt am Ende nur zwei Dinge: <strong>Strom an</strong> und <strong>Strom aus</strong> – also <code>1</code> und <code>0</code>. Trotzdem speichert er Romane, Fotos und ganze Konzerte. Wie das funktioniert, ist Pflichtstoff in der FISI-Ausbildung und kommt in der Praxis täglich vor – vom Encoding-Bug in der CSV bis zur Frage, warum ein PNG schärfer skaliert als ein JPG. Dieser Beitrag bringt die drei großen Datentypen <strong>Text, Bild und Ton</strong> sauber auf den Punkt.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. Das Fundament: Bit, Byte und das digitale Signal</h2>



<p class="wp-block-paragraph">Ein <strong>digitales Signal</strong> kennt nur zwei Zustände – im Gegensatz zum analogen, das jeden Zwischenwert annehmen kann:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Begriff</th><th>Bedeutung</th></tr></thead><tbody><tr><td><strong>Bit</strong></td><td>kleinste Einheit, 0 oder 1 (z. B. „Spannung aus / 5 V an“)</td></tr><tr><td><strong>Byte</strong></td><td>8 Bit → 2⁸ = <strong>256</strong> mögliche Werte</td></tr><tr><td><strong>Digitalisierung</strong></td><td>reale Größe → messen (abtasten) → in Stufen einteilen (quantisieren) → als Bits ablegen (codieren)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Diese drei Schritte – <strong>Abtasten, Quantisieren, Codieren</strong> – tauchen bei <em>allen</em> drei Datentypen wieder auf. Wenn du das Muster einmal verstanden hast, ist der Rest nur noch Variation.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2. Text speichern: ASCII → ISO 8859 → Unicode</h2>



<p class="wp-block-paragraph">Text ist eine <strong>Folge von Zeichen</strong>. Damit ein Rechner sie speichern kann, bekommt jedes Zeichen über einen <strong>Zeichensatz</strong> einen festen Binärcode.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="458" src="https://abow.info/wp-content/uploads/2026/06/text_encoding-1024x458.png" alt="" class="wp-image-480" srcset="https://abow.info/wp-content/uploads/2026/06/text_encoding-1024x458.png 1024w, https://abow.info/wp-content/uploads/2026/06/text_encoding-300x134.png 300w, https://abow.info/wp-content/uploads/2026/06/text_encoding-768x344.png 768w, https://abow.info/wp-content/uploads/2026/06/text_encoding-1536x688.png 1536w, https://abow.info/wp-content/uploads/2026/06/text_encoding.png 1575w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Das „A“ hat im ASCII-Code die Nummer <strong>65</strong>, binär <code>01000001</code>. Genau diese Zuordnung leistet ein Zeichensatz.</p>



<h3 class="wp-block-heading">ASCII</h3>



<ul class="wp-block-list">
<li><strong>A</strong>merican <strong>S</strong>tandard <strong>C</strong>ode for <strong>I</strong>nformation <strong>I</strong>nterchange, 1963 entwickelt.</li>



<li>Ursprünglich <strong>7 Bit</strong> → 2⁷ = <strong>128</strong> Zeichen (Buchstaben, Ziffern, Steuerzeichen).</li>



<li>Später erweitert auf <strong>8 Bit</strong> → 2⁸ = <strong>256</strong> Zeichen.</li>
</ul>



<h3 class="wp-block-heading">ISO 8859 (und der „ANSI“-Mythos)</h3>



<ul class="wp-block-list">
<li>Erweiterung des ASCII-Zeichensatzes, jeweils <strong>8 Bit</strong> pro Zeichen.</li>



<li>Die Norm hat <strong>mehrere Teile</strong> (ISO 8859-1 „Latin-1“, -5 Kyrillisch, -7 Griechisch usw.), um zusätzliche Sprachen abzudecken.</li>



<li><strong>Achtung:</strong> „ANSI“ ist <em>nicht</em> dasselbe wie ISO 8859. ANSI ist die Normungsorganisation (<em>American National Standards Institute</em>). Unter Windows meint „ANSI-Kodierung“ meist die Codepage <strong>Windows-1252</strong> – verwandt mit, aber nicht identisch zu ISO 8859-1.</li>
</ul>



<h3 class="wp-block-heading">Unicode / UTF</h3>



<ul class="wp-block-list">
<li>Ab 1990 eingeführt, später als <strong>ISO/IEC 10646</strong> normiert.</li>



<li>Ziel: <strong>ein</strong> Zeichensatz für <strong>alle</strong> bekannten Schriftzeichen weltweit.</li>



<li>Verbreitete Kodierungen: <strong>UTF-8</strong>, <strong>UTF-16</strong>, <strong>UTF-32</strong>.</li>



<li><strong>UTF-8</strong> ist heute der De-facto-Standard im Web: Es ist abwärtskompatibel zu ASCII (die ersten 128 Zeichen sind identisch) und nutzt je nach Zeichen <strong>1 bis 4 Byte</strong>.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Praxisbezug:</strong> Genau hier entstehen die berüchtigten „Ã¤“-Salate. Das passiert, wenn ein UTF-8-codierter Text als ISO 8859-1 interpretiert wird (oder umgekehrt). Wenn du in Logs, CSVs oder DB-Exporten kaputte Umlaute siehst, ist fast immer ein <strong>Encoding-Mismatch</strong> schuld.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3. Bilder speichern: Raster vs. Vektor</h2>



<p class="wp-block-paragraph">Bei Grafiken gibt es zwei grundverschiedene Welten.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="497" src="https://abow.info/wp-content/uploads/2026/06/raster_vs_vektor-1024x497.png" alt="" class="wp-image-481" srcset="https://abow.info/wp-content/uploads/2026/06/raster_vs_vektor-1024x497.png 1024w, https://abow.info/wp-content/uploads/2026/06/raster_vs_vektor-300x146.png 300w, https://abow.info/wp-content/uploads/2026/06/raster_vs_vektor-768x373.png 768w, https://abow.info/wp-content/uploads/2026/06/raster_vs_vektor-1536x746.png 1536w, https://abow.info/wp-content/uploads/2026/06/raster_vs_vektor.png 1575w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">Rastergrafik (Pixelgrafik)</h3>



<ul class="wp-block-list">
<li>Besteht aus einer Folge von <strong>Bildpunkten (Pixeln)</strong> – den Messpunkten eines Kamerasensors.</li>



<li>Die Pixel sind in einem <strong>Raster</strong> angeordnet. Die Anzahl der Messpunkte entspricht der <strong>Auflösung</strong>, angegeben in <strong>dpi</strong> (<em>dots per inch</em>, 1 inch = 2,54 cm).</li>



<li><strong>+</strong> Jedes Pixel einzeln bearbeitbar, viele gängige Programme.</li>



<li><strong>−</strong> Skalierung (Vergrößern) ist <strong>verlustbehaftet</strong> → Klötzchen/Treppen.</li>



<li>Formate: <code>gif</code>, <code>jpg</code>/<code>jpeg</code>, <code>png</code>, <code>psd</code>, <code>tiff</code>.</li>
</ul>



<h3 class="wp-block-heading">Vektorgrafik</h3>



<ul class="wp-block-list">
<li>Speichert <strong>keine</strong> einzelnen Pixel, sondern das Bild als <strong>geometrische Objekte</strong> (Linien, Kreise, Polygone), beschrieben durch Vektoren (mathematisch minimal nötige Infos).</li>



<li>Beispiel Kreis: Position/Mittelpunkt, Radius, Linienstärke, Farbe.</li>



<li><strong>+</strong> Verlustfrei <strong>skalierbar</strong>, verlustfreie Kompression.</li>



<li><strong>−</strong> Effekte wie Reflexionen/Schatten schwer darstellbar, spezielle Programme nötig; Anzeigegeräte sind auf Raster ausgelegt → oft <strong>Rasterung (Konvertierung)</strong> nötig.</li>



<li>Formate: <code>svg</code>, <code>ai</code>, <code>pdf</code>, <code>eps</code>, <code>wmf</code>.</li>
</ul>



<h3 class="wp-block-heading">Farbtiefe – wie viele Bits pro Pixel?</h3>



<p class="wp-block-paragraph">Pro Messpunkt wird der <strong>Farbton</strong> gemessen und als Bitfolge codiert. Die Anzahl der Bits ist die <strong>Farbtiefe</strong>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="478" src="https://abow.info/wp-content/uploads/2026/06/farbtiefe-1024x478.png" alt="" class="wp-image-482" srcset="https://abow.info/wp-content/uploads/2026/06/farbtiefe-1024x478.png 1024w, https://abow.info/wp-content/uploads/2026/06/farbtiefe-300x140.png 300w, https://abow.info/wp-content/uploads/2026/06/farbtiefe-768x358.png 768w, https://abow.info/wp-content/uploads/2026/06/farbtiefe-1536x717.png 1536w, https://abow.info/wp-content/uploads/2026/06/farbtiefe.png 1575w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Modus</th><th>Bits</th><th>Aufteilung</th><th>Farben</th></tr></thead><tbody><tr><td><strong>High Color</strong></td><td>16 Bit</td><td>R 5 / G 6 / B 5</td><td>2¹⁶ = <strong>65.536</strong></td></tr><tr><td><strong>True Color</strong></td><td>24 Bit</td><td>R 8 / G 8 / B 8</td><td>2²⁴ = <strong>16.777.216</strong></td></tr><tr><td><strong>True Color + Alpha</strong></td><td>32 Bit</td><td>R 8 / G 8 / B 8 / α 8</td><td>16,7 Mio. <strong>+ Transparenz</strong></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Wichtig (häufiger Klausurfehler):</strong> 8 Bit <em>pro Kanal</em> ergeben <strong>256 Werte je Kanal</strong>. Erst alle drei Kanäle zusammen ergeben 256 × 256 × 256 = <strong>16.777.216 Farben insgesamt</strong> – <em>nicht</em> „pro Kanal“.</p>
</blockquote>



<h3 class="wp-block-heading">Datenmenge einer Rastergrafik berechnen</h3>



<p class="wp-block-paragraph">Die Formel ist simpel:</p>



<pre class="wp-block-code"><code>Datenmenge &#91;Bit] = Breite &#91;px] × Höhe &#91;px] × Farbtiefe &#91;Bit]
Datenmenge &#91;Byte] = Datenmenge &#91;Bit] / 8
</code></pre>



<p class="wp-block-paragraph"><strong>Beispiel</strong> (3209 × 2649 px, 24 Bit Farbtiefe):</p>



<pre class="wp-block-code"><code>3209 × 2649 × 24 = 204.015.384 Bit
204.015.384 / 8  = 25.501.923 Byte
25.501.923 / 1024 / 1024 ≈ 24,32 MiB
</code></pre>



<p class="wp-block-paragraph">Würde man dasselbe Bild als reine <strong>1-Bit-Bitmap</strong> (Schwarz/Weiß) ablegen, blieben nur die Pixel selbst:</p>



<pre class="wp-block-code"><code>3209 × 2649 × 1 = 8.500.641 Bit  (≈ 8,5 Mbit)
8.500.641 / 8 / 1024 / 1024 ≈ 1,013 MiB
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Stolperfalle:</strong> 8.500.641 Bit sind <strong>≈ 8,5 Mbit</strong>, nicht 0,85 Mbit. Bei MB/MiB außerdem aufpassen: Die Rechnung oben nutzt 1024er-Schritte → korrekt wäre die Einheit <strong>MiB</strong> (Mebibyte). In Datenblättern wird „MB“ oft als 1.000.000 Byte gemeint – das gibt leicht abweichende Zahlen.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4. Ton speichern: Sampling, Nyquist &amp; Co.</h2>



<p class="wp-block-paragraph">Ein Audiosignal ist in der Natur <strong>analog</strong> (eine kontinuierliche Welle). Für die digitale Speicherung wird es per <strong>Sampling</strong> in eine diskrete Treppenfunktion verwandelt.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="513" src="https://abow.info/wp-content/uploads/2026/06/audio_sampling-1024x513.png" alt="" class="wp-image-483" srcset="https://abow.info/wp-content/uploads/2026/06/audio_sampling-1024x513.png 1024w, https://abow.info/wp-content/uploads/2026/06/audio_sampling-300x150.png 300w, https://abow.info/wp-content/uploads/2026/06/audio_sampling-768x385.png 768w, https://abow.info/wp-content/uploads/2026/06/audio_sampling.png 1378w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Beim Sampling wird die <strong>Amplitude</strong> des Signals in festen Zeitabständen gemessen (abgetastet) und als numerischer Wert gespeichert. Mit <code>T</code> als Periodendauer (Abtastperiode in Sekunden) gilt:</p>



<pre class="wp-block-code"><code>f = 1 / T   &#91;Hz]      (1 Hz = 1 Messung pro Sekunde)
</code></pre>



<h3 class="wp-block-heading">Sampling-Rate (Sampling-Frequenz)</h3>



<ul class="wp-block-list">
<li>Anzahl der <strong>Messvorgänge/Abtastungen pro Sekunde</strong>.</li>



<li><strong>Audio-CD: 44,1 kHz</strong> → 44.100 Abtastungen pro Sekunde.</li>
</ul>



<h3 class="wp-block-heading">Nyquist-Shannon-Abtasttheorem</h3>



<ul class="wp-block-list">
<li>Um ein analoges Signal verlustfrei rekonstruieren zu können, muss die Abtastrate <strong>mehr als das Doppelte</strong> der höchsten enthaltenen Frequenz betragen.</li>



<li>Menschliches Gehör: ca. <strong>20 Hz – 20 kHz</strong>.</li>



<li>→ Theoretisch reichen knapp über <strong>40 kHz</strong>. Die CD nutzt mit <strong>44,1 kHz</strong> bewusst etwas Reserve (für Filter-Spielraum).</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Stolperfalle:</strong> Im Lernzettel stand „40,1 kHz“. Das ist ein Zahlendreher. Gemeint ist: <strong>&gt; 40 kHz nötig</strong>, CD-Standard <strong>44,1 kHz</strong>.</p>
</blockquote>



<h3 class="wp-block-heading">Sampling-Tiefe (Bit-Tiefe)</h3>



<ul class="wp-block-list">
<li>Anzahl der <strong>Bits</strong>, mit denen ein einzelner Abtastwert gespeichert wird → bestimmt die Wertauflösung (Dynamik).</li>



<li><strong>Standard: 16 Bit</strong> (CD-Qualität). <strong>Studio: 24 oder 32 Bit</strong> (32 Bit meist als Fließkomma). 64 Bit ist in der Praxis unüblich.</li>
</ul>



<h3 class="wp-block-heading">Tonkanäle (für Raumklang)</h3>



<p class="wp-block-paragraph">Mono · Stereo · Dolby Surround · 5.1-Sound.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5. Praxis: kleine PowerShell-Helfer</h2>



<p class="wp-block-paragraph">Für FISI-Azubis (und für mich im Alltag) sind zwei Mini-Skripte hilfreich, um die Theorie <em>anfassbar</em> zu machen.</p>



<h3 class="wp-block-heading">a) Zeichen → Codepoint → Bitfolge anzeigen</h3>



<pre class="wp-block-code"><code>&lt;#
.SYNOPSIS
    Zeigt fuer einen Text je Zeichen den Unicode-Codepoint sowie die ASCII-/UTF-8-Bitfolge.
.NOTES
    Name:        PS_Zeichen_zu_Bitfolge
    Author:      Andreas Bowitz
    Version:     1.0
    LastUpdated: 2026-Jun-03
#&gt;

param(
    &#91;string]$Text = "Andi"
)

foreach ($char in $Text.ToCharArray()) {
    $code = &#91;int]&#91;char]$char                              # Unicode-Codepoint (dezimal)
    $bin  = &#91;Convert]::ToString($code, 2).PadLeft(8, '0') # Binaer, auf 8 Bit aufgefuellt
    $hex  = "0x{0:X2}" -f $code                            # Hexadezimal

    &#91;PSCustomObject]@{
        Zeichen   = $char
        Dezimal   = $code
        Hex       = $hex
        Bitfolge  = $bin
    }
}
</code></pre>



<p class="wp-block-paragraph">Für <code>"Andi"</code> liefert das u. a. <code>A → 65 → 0x41 → 01000001</code>. Genau das zeigt auch die Grafik oben.</p>



<h3 class="wp-block-heading">b) Datenmenge einer Rastergrafik berechnen</h3>



<pre class="wp-block-code"><code>&lt;#
.SYNOPSIS
    Berechnet die unkomprimierte Datenmenge einer Rastergrafik aus Breite, Hoehe und Farbtiefe.
.NOTES
    Name:        PS_Bilddatenmenge_berechnen
    Author:      Andreas Bowitz
    Version:     1.0
    LastUpdated: 2026-Jun-03
#&gt;

param(
    &#91;int]$BreitePx   = 3209,
    &#91;int]$HoehePx    = 2649,
    &#91;int]$FarbtiefeBit = 24
)

$bits  = &#91;double]$BreitePx * $HoehePx * $FarbtiefeBit
$bytes = $bits / 8
$mib   = $bytes / 1024 / 1024

&#91;PSCustomObject]@{
    Pixel       = $BreitePx * $HoehePx
    Bit         = $bits
    Byte        = &#91;math]::Round($bytes, 0)
    MiB         = &#91;math]::Round($mib, 2)
} | Format-List
</code></pre>



<p class="wp-block-paragraph">Ausgabe für die Beispielwerte: <strong>≈ 24,32 MiB</strong> – passt zur Handrechnung oben.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6. Stolperfallen aus der technischen Prüfung</h2>



<p class="wp-block-paragraph">Damit der Stoff klausurfest sitzt, hier gesammelt die korrigierten Klassiker:</p>



<ol class="wp-block-list">
<li><strong>Nyquist:</strong> Es heißt <strong>„mehr als das Doppelte“</strong> der höchsten Frequenz – nicht „40,1 kHz“. Gehör bis 20 kHz → >40 kHz nötig → CD: 44,1 kHz.</li>



<li><strong>Farben bei 24 Bit:</strong> 256 Werte <em>pro Kanal</em>, aber <strong>16.777.216 Farben insgesamt</strong> – nicht „pro Kanal“.</li>



<li><strong>ISO 8859:</strong> mehrere Teile, jeweils <strong>8 Bit</strong> (nicht 18 Bit). Und <strong>ANSI ≠ ISO 8859</strong> (ANSI = Organisation; Windows-„ANSI“ = CP-1252).</li>



<li><strong>Einheiten:</strong> 8.500.641 Bit ≈ <strong>8,5 Mbit</strong>. Bei /1024-Rechnungen ist die korrekte Einheit <strong>MiB</strong>, nicht „MB“.</li>



<li><strong>Sampling-Tiefe:</strong> Standard 16 Bit, Studio 24/32 Bit. 64 Bit ist praktisch nicht gebräuchlich.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">TL;DR</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Datentyp</th><th>Schlüsselbegriffe</th><th>Faustregel</th></tr></thead><tbody><tr><td><strong>Text</strong></td><td>ASCII (7/8 Bit) → ISO 8859 (8 Bit) → Unicode/UTF-8 (1–4 Byte)</td><td>UTF-8 ist heute Standard und ASCII-kompatibel</td></tr><tr><td><strong>Bild</strong></td><td>Raster (Pixel, dpi, Farbtiefe) vs. Vektor (Geometrie)</td><td>B × H × Farbtiefe / 8 = Datenmenge</td></tr><tr><td><strong>Ton</strong></td><td>Sampling-Rate, Nyquist, Bit-Tiefe, Kanäle</td><td>Abtastrate &gt; 2 × höchste Frequenz</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Das gemeinsame Muster bleibt immer gleich: <strong>Abtasten → Quantisieren → Codieren.</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/fisi-datendarstellung-wie-text-bild-und-ton-zu-nullen-und-einsen-werden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FISI // Grundlagen der Elektrotechnik – Spannung, Strom, Ladung &#038; Leistung</title>
		<link>https://abow.info/ausbildung_fachinformatiker/fisi-grundlagen-der-elektrotechnik-spannung-strom-ladung-leistung/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/fisi-grundlagen-der-elektrotechnik-spannung-strom-ladung-leistung/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Fri, 26 Jun 2026 10:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[Ampere]]></category>
		<category><![CDATA[Ausbildung]]></category>
		<category><![CDATA[Coulomb]]></category>
		<category><![CDATA[Elektrotechnik]]></category>
		<category><![CDATA[FISI]]></category>
		<category><![CDATA[Gleichstrom]]></category>
		<category><![CDATA[Halbleiter]]></category>
		<category><![CDATA[Ladung]]></category>
		<category><![CDATA[Leistung]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[SI-Einheiten]]></category>
		<category><![CDATA[Spannung]]></category>
		<category><![CDATA[Strom]]></category>
		<category><![CDATA[Stromdichte]]></category>
		<category><![CDATA[Stromkreis]]></category>
		<category><![CDATA[Wechselstrom]]></category>
		<guid isPermaLink="false">https://abow.info/?p=469</guid>

					<description><![CDATA[Strom kann man nicht sehen – nur seine Wirkungen. Genau das macht die Elektrotechnik für viele am Anfang sperrig. Dieser Beitrag bringt die echten Grundlagen auf den Punkt:…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Strom kann man nicht sehen – nur seine Wirkungen. Genau das macht die Elektrotechnik für viele am Anfang sperrig. Dieser Beitrag bringt die echten Grundlagen auf den Punkt: Welche Größen gibt es, wie hängen sie zusammen und warum brauchst du das als ITler (z. B. in der FISI-Ausbildung) trotz Cloud, AD und Exchange immer noch. Am Ende gibt&#8217;s einen kleinen PowerShell-Rechner als Bonus.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. Womit man rechnet: Größen und Einheiten</h2>



<p class="wp-block-paragraph">Eine <strong>physikalische Größe</strong> ist eine messbare Eigenschaft – z. B. Länge, Temperatur oder Spannung. Sie besteht immer aus einem <strong>Zahlenwert</strong> und einer <strong>Einheit</strong>: <code>230 V</code>, <code>3,4 m</code>, <code>36 °C</code>.</p>



<p class="wp-block-paragraph">In der Technik rechnet man ausschließlich mit <strong>SI-Einheiten</strong> (oder davon abgeleiteten Einheiten). Die sieben Basisgrößen:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Basisgröße</th><th>Formelzeichen</th><th>Einheit</th><th>Zeichen</th></tr></thead><tbody><tr><td>Länge</td><td><em>l</em></td><td>Meter</td><td>m</td></tr><tr><td>Zeit</td><td><em>t</em></td><td>Sekunde</td><td>s</td></tr><tr><td>Masse</td><td><em>m</em></td><td>Kilogramm</td><td>kg</td></tr><tr><td>Stromstärke</td><td><em>I</em></td><td>Ampere</td><td>A</td></tr><tr><td>Temperatur</td><td><em>T</em></td><td>Kelvin</td><td>K</td></tr><tr><td>Stoffmenge</td><td><em>n</em></td><td>Mol</td><td>mol</td></tr><tr><td>Lichtstärke</td><td><em>I</em>ᵥ</td><td>Candela</td><td>cd</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Sehr große oder kleine Werte kürzt man mit <strong>Einheitenvorsätzen</strong> ab – das spart Nullen und Nerven:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Vorsatz</th><th>k (Kilo)</th><th>M (Mega)</th><th>G (Giga)</th><th>m (Milli)</th><th>µ (Mikro)</th><th>n (Nano)</th></tr></thead><tbody><tr><td>Faktor</td><td>10³</td><td>10⁶</td><td>10⁹</td><td>10⁻³</td><td>10⁻⁶</td><td>10⁻⁹</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Als ITler kennst du das längst – nur dass <code>k</code> in der Datenwelt manchmal 1024 statt 1000 meint. In der Elektrotechnik ist <code>k</code> immer sauber 1000.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2. Der Sprung aus der Mechanik: Arbeit, Energie, Leistung</h2>



<p class="wp-block-paragraph">Bevor es elektrisch wird, drei mechanische Begriffe, die später 1:1 wiederkommen.</p>



<ul class="wp-block-list">
<li><strong>Gewichtskraft:</strong> <code>F_G = m · g</code> mit <code>g = 9,81 m/s²</code>. Eine 15-kg-Kiste zieht mit <code>15 · 9,81 = 147 N</code> nach unten.</li>



<li><strong>Arbeit:</strong> <code>W = F · s</code> – Kraft mal Weg, Einheit Newtonmeter (Nm) bzw. <strong>Joule (J)</strong>.</li>



<li><strong>Energie</strong> ist das Vermögen, Arbeit zu leisten. Sie wird <strong>nicht verbraucht, nur umgewandelt</strong> (Energieerhaltungssatz). Eine angehobene Last speichert <em>potenzielle</em> Energie, beim Absenken wird daraus <em>kinetische</em> Energie.</li>



<li><strong>Leistung:</strong> <code>P = W / t</code> – verrichtete Arbeit pro Zeit, Einheit <strong>Watt (W)</strong>.</li>
</ul>



<p class="wp-block-paragraph">Merke dir das Verhältnis von <strong>Arbeit</strong> und <strong>Leistung</strong> – das ist exakt der Unterschied zwischen <em>„wie viel Energie insgesamt&#8220;</em> (kWh auf deiner Stromrechnung) und <em>„wie schnell&#8220;</em> (Watt auf dem Netzteil).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3. Der Stromkreis</h2>



<p class="wp-block-paragraph">Damit Strom fließt, braucht es einen <strong>geschlossenen Weg</strong>: einen <strong>Erzeuger</strong> (Spannungsquelle), einen <strong>Verbraucher</strong> und Hin- und Rückleiter dazwischen. Unterbricht ein Schalter den Weg, ist Schluss.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="600" src="https://abow.info/wp-content/uploads/2026/06/inlay-gleichstromkreis-1024x600.png" alt="" class="wp-image-471" srcset="https://abow.info/wp-content/uploads/2026/06/inlay-gleichstromkreis-1024x600.png 1024w, https://abow.info/wp-content/uploads/2026/06/inlay-gleichstromkreis-300x176.png 300w, https://abow.info/wp-content/uploads/2026/06/inlay-gleichstromkreis-768x450.png 768w, https://abow.info/wp-content/uploads/2026/06/inlay-gleichstromkreis.png 1393w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Zwei Richtungen, die man nicht verwechseln darf:</p>



<ul class="wp-block-list">
<li><strong>Technische Stromrichtung</strong> (rot): außerhalb des Erzeugers von <strong>Plus nach Minus</strong>. Reine Konvention – historisch festgelegt, bevor man das Elektron kannte.</li>



<li><strong>Elektronenbewegung</strong> (blau): die freien Elektronen wandern tatsächlich vom <strong>Minuspol weg</strong> (Elektronenüberschuss) zum Pluspol – also <em>entgegen</em> der technischen Stromrichtung.</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Praxis-Wahrheit:</strong> Die Elektronen selbst kriechen nur mit ca. <strong>0,1 – 10 mm/s</strong> durch den Leiter (Driftgeschwindigkeit). Trotzdem leuchtet die Lampe sofort, weil sich der elektrische Impuls fast mit <strong>Lichtgeschwindigkeit (≈ 300 000 km/s)</strong> durch den Leiter fortpflanzt – wie ein voll gefülltes Rohr, bei dem vorne sofort Wasser rauskommt, wenn du hinten drückst.</p>
</blockquote>



<h3 class="wp-block-heading">Leiter, Nichtleiter, Halbleiter</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Klasse</th><th>Leitet Strom?</th><th>Beispiele</th></tr></thead><tbody><tr><td><strong>Leiter</strong></td><td>gut</td><td>Kupfer, Aluminium, Kohle, feuchte Erde</td></tr><tr><td><strong>Nichtleiter</strong> (Isolatoren)</td><td>gar nicht</td><td>Luft, Glas, Gummi, Kunststoff, Porzellan</td></tr><tr><td><strong>Halbleiter</strong></td><td>dazwischen</td><td>Silizium, Germanium</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Die <strong>Halbleiter</strong> sind der Grund, warum du diesen Artikel überhaupt liest: Jeder Transistor, jede CPU, jeder SSD-Flashspeicher basiert auf gezielt „verunreinigtem&#8220; Silizium.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4. Elektrische Ladung <em>Q</em> – die Wurzel von allem</h2>



<p class="wp-block-paragraph">Reibt man einen Kunststoffstab an Wolle, zieht er Papierschnipsel an. Ursache ist die <strong>elektrische Ladung Q</strong>. Es gibt zwei Sorten:</p>



<ul class="wp-block-list">
<li><strong>Gleichartige Ladungen stoßen sich ab.</strong></li>



<li><strong>Ungleichartige Ladungen ziehen sich an.</strong></li>
</ul>



<p class="wp-block-paragraph">Woher die Ladung kommt, zeigt der Atomaufbau (bohrsches Modell): Ein Atom hat einen <strong>Kern</strong> (Protonen <code>+</code>, Neutronen neutral) und eine <strong>Hülle</strong> aus <strong>Elektronen</strong> <code>−</code>. Werden Elektronen verschoben, entsteht ein Ladungsunterschied.</p>



<p class="wp-block-paragraph">Die kleinste mögliche Ladung ist die <strong>Elementarladung</strong>:</p>



<pre class="wp-block-code"><code>e = 1,602 · 10⁻¹⁹ C        (Einheit: Coulomb, C)
</code></pre>



<p class="wp-block-paragraph">Jede Ladung ist ein Vielfaches davon:</p>



<pre class="wp-block-code"><code>Q = n · e
</code></pre>



<p class="wp-block-paragraph">Eine Ladung von <strong>1 Coulomb</strong> entspricht also rund <strong>6,242 · 10¹⁸ Elektronen</strong> – das ist die Zahl <code>1 / e</code>. Sechs Trillionen Elektronen für eine einzige Sekunde 1-A-Strom. Elektronen sind verdammt klein.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5. Elektrische Spannung <em>U</em></h2>



<p class="wp-block-paragraph">In einer Spannungsquelle werden Ladungen <strong>getrennt</strong>: ein Pol bekommt Elektronenüberschuss (Minus), der andere Elektronenmangel (Plus). Diese Trennung kostet Arbeit – und die steckt als Energie in den getrennten Ladungen.</p>



<pre class="wp-block-code"><code>U = W / Q        (Einheit: Volt, V)
</code></pre>



<p class="wp-block-paragraph">Spannung ist also <strong>Arbeit pro Ladung</strong>. Anschaulich wie ein gespanntes Gummiband: Je weiter (= mehr Arbeit) du die Ladungen auseinanderziehst, desto höher die Spannung.</p>



<p class="wp-block-paragraph"><strong>Spannung ist immer eine Differenz</strong> zwischen zwei Punkten (Potenzialen). Liegt Punkt A auf <code>φ_A = 9 V</code> und Punkt B auf <code>φ_B = 6 V</code>, beträgt die Spannung dazwischen <code>U = 9 V − 6 V = 3 V</code>.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Sicherheit:</strong> Das Berühren von Spannungen über <strong>50 V (AC)</strong> kann lebensgefährlich sein. Das ist kein „kann mal pieksen&#8220; – respektiere das, auch im Serverraum hinter der USV.</p>
</blockquote>



<h3 class="wp-block-heading">Wie Spannung erzeugt wird</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Prinzip</th><th>Wirkung</th><th>Anwendung</th></tr></thead><tbody><tr><td><strong>Induktion</strong></td><td>Magnetfeld trennt Ladungen</td><td>Generatoren, Lichtmaschine, Kraftwerk</td></tr><tr><td><strong>Chemische Reaktion</strong></td><td>galvanisches Element</td><td>Batterien, Akkus, Brennstoffzelle</td></tr><tr><td><strong>Wärme</strong></td><td>Thermoelement</td><td>Temperaturmessung</td></tr><tr><td><strong>Licht</strong></td><td>Fotoelement</td><td>Solarzelle, Taschenrechner</td></tr><tr><td><strong>Druck</strong></td><td>Piezoeffekt</td><td>Kristallmikrofon, Gasanzünder</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6. Elektrischer Strom <em>I</em></h2>



<p class="wp-block-paragraph">Fließen die getrennten Ladungen über einen Verbraucher wieder zusammen, ist das der <strong>elektrische Strom</strong>: die <em>gerichtete Bewegung freier Elektronen</em>.</p>



<pre class="wp-block-code"><code>I = Q / t        (Einheit: Ampere, A)
</code></pre>



<p class="wp-block-paragraph">Stromstärke ist also <strong>Ladung pro Zeit</strong>. <code>1 A</code> bedeutet: pro Sekunde wandert <code>1 C</code> (also ~6,242 · 10¹⁸ Elektronen) durch den Leiterquerschnitt.</p>



<h3 class="wp-block-heading">Was Strom alles anrichtet (die fünf Wirkungen)</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Wirkung</th><th>Was passiert</th><th>Anwendung</th></tr></thead><tbody><tr><td><strong>Wärme</strong></td><td>Leiter erwärmt sich</td><td>Heizung, Lötkolben, Schmelzsicherung</td></tr><tr><td><strong>Magnetisch</strong></td><td>Strom erzeugt Magnetfeld</td><td>Motor, Relais, Lautsprecher, Festplatte</td></tr><tr><td><strong>Licht</strong></td><td>Gas/Wendel leuchtet</td><td>LED, Leuchtstoff-, Glühlampe</td></tr><tr><td><strong>Chemisch</strong></td><td>zerlegt leitende Flüssigkeiten</td><td>Elektrolyse, Galvanik, Akku</td></tr><tr><td><strong>Physiologisch</strong></td><td>wirkt auf Lebewesen</td><td>Elektromedizin – <strong>und Stromschlag!</strong></td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Die drei Stromarten</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="395" src="https://abow.info/wp-content/uploads/2026/06/inlay-stromarten-1024x395.png" alt="" class="wp-image-472" srcset="https://abow.info/wp-content/uploads/2026/06/inlay-stromarten-1024x395.png 1024w, https://abow.info/wp-content/uploads/2026/06/inlay-stromarten-300x116.png 300w, https://abow.info/wp-content/uploads/2026/06/inlay-stromarten-768x297.png 768w, https://abow.info/wp-content/uploads/2026/06/inlay-stromarten-1536x593.png 1536w, https://abow.info/wp-content/uploads/2026/06/inlay-stromarten.png 1753w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li><strong>Gleichstrom (DC):</strong> fließt nur in eine Richtung, gleichbleibende Stärke → gerade Linie. (Batterie, Netzteil-Ausgang, USB)</li>



<li><strong>Wechselstrom (AC):</strong> Richtung und Stärke wechseln ständig → Sinuskurve. (Steckdose mit 230 V / 50 Hz)</li>



<li><strong>Mischstrom (UC):</strong> Gleichstrom mit überlagertem Wechselanteil → pulsierender Gleichstrom. (z. B. hinter einem Gleichrichter vor der Glättung)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">7. Stromdichte <em>J</em> – warum dünne Kabel heiß werden</h2>



<p class="wp-block-paragraph">Durch jeden Querschnitt fließen pro Sekunde gleich viele Elektronen – egal ob dick oder dünn. Im <strong>dünnen</strong> Leiter müssen sie sich aber schneller durchquetschen → mehr Reibung → mehr Wärme.</p>



<pre class="wp-block-code"><code>J = I / A        (Einheit: A/mm²)
</code></pre>



<p class="wp-block-paragraph">Deshalb gibt es <strong>höchstzulässige Stromstärken</strong> je Querschnitt (DIN VDE 0298-4). Ein paar Werte für fest verlegte, PVC-isolierte Kupferleitungen (Verlegeart B2, 30 °C):</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Querschnitt</th><th>zulässige Stromstärke</th></tr></thead><tbody><tr><td>1,5 mm²</td><td>16,5 A</td></tr><tr><td>2,5 mm²</td><td>23 A</td></tr><tr><td>4 mm²</td><td>30 A</td></tr><tr><td>6 mm²</td><td>38 A</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Genau deshalb riecht ein überlastetes, unterdimensioniertes Verlängerungskabel im Serverschrank irgendwann verschmort. Stromdichte ist kein Theorie-Kram.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">8. Alles auf einen Blick</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="601" src="https://abow.info/wp-content/uploads/2026/06/inlay-formeluebersicht-1024x601.png" alt="" class="wp-image-473" srcset="https://abow.info/wp-content/uploads/2026/06/inlay-formeluebersicht-1024x601.png 1024w, https://abow.info/wp-content/uploads/2026/06/inlay-formeluebersicht-300x176.png 300w, https://abow.info/wp-content/uploads/2026/06/inlay-formeluebersicht-768x451.png 768w, https://abow.info/wp-content/uploads/2026/06/inlay-formeluebersicht-1536x901.png 1536w, https://abow.info/wp-content/uploads/2026/06/inlay-formeluebersicht.png 1563w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Größe</th><th>Formel</th><th>Einheit</th></tr></thead><tbody><tr><td>Ladung</td><td><code>Q = n · e</code></td><td>C (Coulomb)</td></tr><tr><td>Spannung</td><td><code>U = W / Q</code></td><td>V (Volt)</td></tr><tr><td>Stromstärke</td><td><code>I = Q / t</code></td><td>A (Ampere)</td></tr><tr><td>Leistung</td><td><code>P = U · I</code></td><td>W (Watt)</td></tr><tr><td>Arbeit/Energie</td><td><code>W = P · t</code></td><td>J (Joule) / Ws</td></tr><tr><td>Stromdichte</td><td><code>J = I / A</code></td><td>A/mm²</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">9. Bonus: kleiner Elektro-Rechner in PowerShell</h2>



<p class="wp-block-paragraph">Weil&#8217;s hier um IT geht – und weil man Grundlagen am besten behält, wenn man damit spielt: eine kleine Funktion, die dir die wichtigsten Grundgrößen ausrechnet. Kein Programmier-Hexenwerk, reines PowerShell.</p>



<pre class="wp-block-code"><code>&lt;#
.SYNOPSIS
    Berechnet elektrische Grundgroessen (Ladung, Strom, Leistung, Arbeit,
    Anzahl Elektronen) aus den jeweils bekannten Werten.

.DESCRIPTION
    Lernhilfe zu den Grundbegriffen der Elektrotechnik. Es werden nur die
    Parameter angegeben, die bekannt sind - die Funktion leitet daraus die
    abhaengigen Groessen ab.

.PARAMETER Spannung   Spannung U in Volt (V)
.PARAMETER Strom      Stromstaerke I in Ampere (A)
.PARAMETER Zeit       Zeit t in Sekunden (s)
.PARAMETER Ladung     Ladung Q in Coulomb (C)

.EXAMPLE
    Get-ElektroGrundgroessen -Spannung 230 -Strom 2 -Zeit 3600

.NOTES
    Name:        Get-ElektroGrundgroessen
    Author:      Andreas Bowitz
    Version:     0.1
    LastUpdated: 2026-Jun-03
#&gt;
function Get-ElektroGrundgroessen {
    &#91;CmdletBinding()]
    param(
        &#91;double]$Spannung,   # U in Volt
        &#91;double]$Strom,      # I in Ampere
        &#91;double]$Zeit,       # t in Sekunden
        &#91;double]$Ladung      # Q in Coulomb
    )

    # Elementarladung (Coulomb)
    $e = 1.602176634e-19

    $result = &#91;ordered]@{}

    # Ladung aus Strom * Zeit  (Q = I * t)
    if ($Strom -and $Zeit -and -not $Ladung) {
        $Ladung = $Strom * $Zeit
    }
    # Strom aus Ladung / Zeit  (I = Q / t)
    elseif ($Ladung -and $Zeit -and -not $Strom) {
        $Strom = $Ladung / $Zeit
    }

    if ($Ladung)  { $result&#91;'Ladung Q (C)']          = &#91;math]::Round($Ladung, 4) }
    if ($Strom)   { $result&#91;'Strom I (A)']           = &#91;math]::Round($Strom, 4) }
    if ($Ladung)  { $result&#91;'Anzahl Elektronen n']   = "{0:E3}" -f ($Ladung / $e) }

    # Leistung  (P = U * I)
    if ($Spannung -and $Strom) {
        $leistung = $Spannung * $Strom
        $result&#91;'Leistung P (W)'] = &#91;math]::Round($leistung, 3)

        # Arbeit  (W = P * t)
        if ($Zeit) {
            $arbeit = $leistung * $Zeit
            $result&#91;'Arbeit W (Ws)']  = &#91;math]::Round($arbeit, 1)
            $result&#91;'Arbeit W (kWh)'] = &#91;math]::Round($arbeit / 3.6e6, 4)
        }
    }

    &#91;pscustomobject]$result
}

# Beispielaufruf: 230 V, 2 A, eine Stunde
Get-ElektroGrundgroessen -Spannung 230 -Strom 2 -Zeit 3600
</code></pre>



<p class="wp-block-paragraph"><strong>Erwartete Ausgabe:</strong></p>



<pre class="wp-block-code"><code>Ladung Q (C)         : 7200
Strom I (A)          : 2
Anzahl Elektronen n  : 4.494E+022
Leistung P (W)       : 460
Arbeit W (Ws)        : 1656000
Arbeit W (kWh)       : 0,46
</code></pre>



<p class="wp-block-paragraph">460 W über eine Stunde sind also <strong>0,46 kWh</strong> – das passt sauber zur Logik deiner Stromrechnung.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">10. Faktencheck (IT-Agent-Review)</h2>



<p class="wp-block-paragraph">Damit hier nichts Halbgares stehen bleibt, zwei Punkte, die in vielen älteren Lehrunterlagen schlampig sind:</p>



<ol class="wp-block-list">
<li><strong>Definition des Ampere.</strong> Ältere Quellen definieren <code>1 A</code> über die Kraft zwischen zwei parallelen Leitern: bei 1 m Abstand und 1 A wirkt je Meter eine Kraft von <strong><code>2 · 10⁻⁷ N/m</code></strong> (nicht <code>2 · 10⁷</code> – das ist ein verbreiteter Tipp-/OCR-Fehler um 14 Zehnerpotenzen daneben). <strong>Seit der SI-Reform 2019</strong> ist diese Krafdefinition überholt: Das Ampere wird heute über die <strong>fest definierte Elementarladung</strong> <code>e = 1,602176634 · 10⁻¹⁹ C</code> festgelegt. Fürs Grundverständnis bleibt <code>I = Q / t</code> aber völlig richtig.</li>



<li><strong>Rechenwerte geprüft:</strong> <code>F_G = 15 kg · 9,81 m/s² = 147 N</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> · <code>1 C ≙ 6,242 · 10¹⁸ Elektronen</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> · <code>P = 230 V · 2 A = 460 W</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> · <code>460 W · 1 h = 0,46 kWh</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</li>
</ol>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/fisi-grundlagen-der-elektrotechnik-spannung-strom-ladung-leistung/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FISI // RAID-Level, Vor- &#038; Nachteile und ein Blick auf Storage (inkl. NetApp)</title>
		<link>https://abow.info/ausbildung_fachinformatiker/462/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/462/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Tue, 23 Jun 2026 12:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[Ausfallsicherheit]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[FISI]]></category>
		<category><![CDATA[JBOD]]></category>
		<category><![CDATA[Mirroring]]></category>
		<category><![CDATA[NetApp]]></category>
		<category><![CDATA[ONTAP]]></category>
		<category><![CDATA[Parität]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[RAID 0]]></category>
		<category><![CDATA[RAID 1]]></category>
		<category><![CDATA[RAID 10]]></category>
		<category><![CDATA[RAID 5]]></category>
		<category><![CDATA[RAID 6]]></category>
		<category><![CDATA[RAID-DP]]></category>
		<category><![CDATA[RAID-TEC]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Storage Spaces]]></category>
		<category><![CDATA[Striping]]></category>
		<category><![CDATA[WAFL]]></category>
		<guid isPermaLink="false">https://abow.info/?p=462</guid>

					<description><![CDATA[🧠 SEO / Marketing-Agent (Meta für Yoast/RankMath): Title: RAID-Level einfach erklärt: Vor- &#38; Nachteile + NetApp &#124; abow.info Description: RAID 0, 1, 5, 6, 10 verständlich erklärt –…]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>SEO / Marketing-Agent (Meta für Yoast/RankMath):</strong> <strong>Title:</strong> RAID-Level einfach erklärt: Vor- &amp; Nachteile + NetApp | abow.info <strong>Description:</strong> RAID 0, 1, 5, 6, 10 verständlich erklärt – Kapazität, Ausfallsicherheit, Vor- und Nachteile. Plus: Warum RAID kein Backup ist und wie NetApp mit RAID-DP/RAID-TEC arbeitet.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4d1.png" alt="📑" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Inhaltsverzeichnis</h2>



<ol class="wp-block-list">
<li>Worum geht&#8217;s?</li>



<li>JBOD – der ehrliche Haufen Platten</li>



<li>Was bedeutet RAID eigentlich?</li>



<li>Die wichtigsten RAID-Level im Überblick</li>



<li>RAID-Level im direkten Vergleich (Tabelle)</li>



<li>Vor- und Nachteile – wann nimmst du was?</li>



<li>Warum RAID kein Backup ist</li>



<li>Der NetApp-Blick: RAID 4, RAID-DP &amp; RAID-TEC</li>



<li>PowerShell: Storage-Health auslesen</li>



<li>Fazit</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Worum geht&#8217;s?</h2>



<p class="wp-block-paragraph">Du hast mehrere Festplatten und willst entweder <strong>mehr Speed</strong>, <strong>mehr Kapazität</strong>, <strong>mehr Ausfallsicherheit</strong> – oder eine Mischung daraus. Genau das löst <strong>RAID</strong>. In diesem Beitrag gehe ich die gängigen RAID-Level durch, zeige dir Kapazität und Ausfalltoleranz, die ehrlichen Vor- und Nachteile, und am Ende werfe ich einen Blick darauf, wie ein Enterprise-Storage-Hersteller wie <strong>NetApp</strong> das Thema angeht.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>IT-Agent (Faktencheck vorab):</strong> RAID stand ursprünglich für <em>Redundant Array of <strong>Inexpensive</strong> Disks</em> (Patterson, Gibson &amp; Katz, Berkeley 1987). Erst das Marketing machte später <em>Independent</em> daraus, weil „billig&#8220; im Enterprise-Vertrieb schlecht klang. Beide Schreibweisen sind heute geläufig – „Independent&#8220; ist die offizielle.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f5c2.png" alt="🗂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> JBOD – der ehrliche Haufen Platten</h2>



<p class="wp-block-paragraph"><strong>JBOD = Just a Bunch Of Disks.</strong> Hier arbeiten die Platten <em>nicht</em> zusammen – sie werden einfach als einzelne Laufwerke (oder linear aneinandergehängt = „Spanning&#8220;) präsentiert. Keine Redundanz, kein Performance-Gewinn durch Verteilung, keine Magie. JBOD ist genau das, was draufsteht: ein Bündel Platten.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2753.png" alt="❓" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Was bedeutet RAID eigentlich?</h2>



<p class="wp-block-paragraph"><strong>RAID = Redundant Array of Independent Disks.</strong> Mehrere Datenträger arbeiten zusammen, um eines oder mehrere dieser Ziele zu erreichen:</p>



<ul class="wp-block-list">
<li><strong>Ausfallsicherheit</strong> – eine (oder mehrere) Platte(n) dürfen sterben, ohne dass Daten verloren gehen.</li>



<li><strong>Performance</strong> – Lese-/Schreibzugriffe werden auf mehrere Spindeln/SSDs verteilt.</li>



<li><strong>Kapazität</strong> – mehrere Platten bilden ein großes logisches Volume.</li>
</ul>



<p class="wp-block-paragraph">Erreicht wird das über drei Grundtechniken, die je nach Level kombiniert werden:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Technik</th><th>Was passiert</th><th>Effekt</th></tr></thead><tbody><tr><td><strong>Striping</strong></td><td>Daten werden in Blöcke zerlegt und über mehrere Platten verteilt</td><td>Speed ↑</td></tr><tr><td><strong>Mirroring</strong></td><td>Daten werden 1:1 auf eine zweite Platte gespiegelt</td><td>Sicherheit ↑</td></tr><tr><td><strong>Parität</strong></td><td>Prüfsumme, mit der eine fehlende Platte rekonstruiert werden kann</td><td>Sicherheit ↑ bei wenig Kapazitätsverlust</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e9.png" alt="🧩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Die wichtigsten RAID-Level im Überblick</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="666" src="https://abow.info/wp-content/uploads/2026/06/raid-uebersicht-1-1024x666.png" alt="" class="wp-image-466" srcset="https://abow.info/wp-content/uploads/2026/06/raid-uebersicht-1-1024x666.png 1024w, https://abow.info/wp-content/uploads/2026/06/raid-uebersicht-1-300x195.png 300w, https://abow.info/wp-content/uploads/2026/06/raid-uebersicht-1-768x499.png 768w, https://abow.info/wp-content/uploads/2026/06/raid-uebersicht-1.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><em>Im Folgenden ist <code>n</code> = Anzahl der Platten, <code>S</code> = Kapazität pro Platte (gleich große Platten vorausgesetzt).</em></p>



<h3 class="wp-block-heading">RAID 0 – Striping</h3>



<p class="wp-block-paragraph">Daten werden über alle Platten gestriped. <strong>Maximale Kapazität und Geschwindigkeit, aber null Redundanz.</strong></p>



<ul class="wp-block-list">
<li>Kapazität: <code>n × S</code></li>



<li>Mindestens: <strong>2 Platten</strong></li>



<li>Ausfalltoleranz: <strong>0</strong> – fällt eine Platte aus, sind <em>alle</em> Daten weg.</li>
</ul>



<h3 class="wp-block-heading">RAID 1 – Mirroring</h3>



<p class="wp-block-paragraph">Jede Platte ist die identische Kopie der anderen.</p>



<ul class="wp-block-list">
<li>Kapazität: <code>S</code> (bei 2 Platten); allgemein <code>(n × S) / 2</code> bei Spiegelpaaren</li>



<li>Mindestens: <strong>2 Platten</strong></li>



<li>Ausfalltoleranz: <strong>1 Platte</strong> pro Spiegel</li>
</ul>



<h3 class="wp-block-heading">RAID 10 (1+0) – Mirror + Stripe</h3>



<p class="wp-block-paragraph">Erst spiegeln, dann über die Spiegelpaare stripen. Kombiniert Speed <em>und</em> Sicherheit.</p>



<ul class="wp-block-list">
<li>Kapazität: <code>(n × S) / 2</code></li>



<li>Mindestens: <strong>4 Platten</strong></li>



<li>Ausfalltoleranz: pro Spiegelpaar darf 1 Platte ausfallen</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>IT-Agent (Korrektur zu deinen Notizen):</strong> In den handschriftlichen Notizen stand bei RAID 10 „mind. 2 Festplatten&#8220;. Das ist nicht korrekt – <strong>RAID 10 braucht mindestens 4 Platten</strong>, weil es ein Stripe <em>über</em> gespiegelte Paare ist. Mit 2 Platten hättest du nur ein RAID 1.</p>
</blockquote>



<h3 class="wp-block-heading">RAID 3 – Striping + dedizierte Parität</h3>



<p class="wp-block-paragraph">Byte-weises Striping mit einer <strong>eigenen, festen Paritätsplatte</strong>. Heute praktisch ausgestorben: Die einzelne Paritätsplatte ist ein Flaschenhals, RAID 5 hat es abgelöst. Gut zu kennen für die Prüfung, in der Praxis kaum noch anzutreffen.</p>



<h3 class="wp-block-heading">RAID 5 – Striping + verteilte Parität</h3>



<p class="wp-block-paragraph">Daten <em>und</em> Parität werden über alle Platten verteilt (keine dedizierte Paritätsplatte mehr).</p>



<ul class="wp-block-list">
<li>Kapazität: <code>(n − 1) × S</code></li>



<li>Mindestens: <strong>3 Platten</strong></li>



<li>Ausfalltoleranz: <strong>1 Platte</strong> – fällt eine zweite aus, bevor die erste rekonstruiert ist → <strong>vollständiger Datenverlust</strong>.</li>
</ul>



<h3 class="wp-block-heading">RAID 6 – Striping + doppelte Parität</h3>



<p class="wp-block-paragraph">Wie RAID 5, aber mit zwei unabhängigen Paritätsblöcken (P und Q).</p>



<ul class="wp-block-list">
<li>Kapazität: <code>(n − 2) × S</code></li>



<li>Mindestens: <strong>4 Platten</strong></li>



<li>Ausfalltoleranz: <strong>2 Platten</strong> gleichzeitig</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4ca.png" alt="📊" class="wp-smiley" style="height: 1em; max-height: 1em;" /> RAID-Level im direkten Vergleich</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Level</th><th>Technik</th><th>Min. Platten</th><th>Nutzkapazität</th><th>Ausfalltoleranz</th><th>Lesen</th><th>Schreiben</th></tr></thead><tbody><tr><td><strong>RAID 0</strong></td><td>Striping</td><td>2</td><td><code>n × S</code></td><td>0</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr><tr><td><strong>RAID 1</strong></td><td>Mirroring</td><td>2</td><td><code>(n × S)/2</code></td><td>1 / Spiegel</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr><tr><td><strong>RAID 5</strong></td><td>Striping + Parität</td><td>3</td><td><code>(n − 1) × S</code></td><td>1</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (Write-Penalty)</td></tr><tr><td><strong>RAID 6</strong></td><td>Striping + 2× Parität</td><td>4</td><td><code>(n − 2) × S</code></td><td>2</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f422.png" alt="🐢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (2× Write-Penalty)</td></tr><tr><td><strong>RAID 10</strong></td><td>Mirror + Stripe</td><td>4</td><td><code>(n × S)/2</code></td><td>≥ 1 (je Spiegel)</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>IT-Agent (Stichwort Write-Penalty):</strong> Bei RAID 5/6 muss für jeden kleinen Schreibvorgang erst gelesen, dann neu berechnet und wieder geschrieben werden (Read-Modify-Write). Das kostet IOPS. RAID 5 hat die „Write-Penalty 4&#8243;, RAID 6 sogar „6&#8243;. Merk dir das – es erklärt, warum datenbanklastige Systeme oft RAID 10 fahren.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2696.png" alt="⚖" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Vor- und Nachteile – wann nimmst du was?</h2>



<p class="wp-block-paragraph"><strong>RAID 0</strong></p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Maximale Kapazität &amp; Speed, kein Verschnitt</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Keinerlei Sicherheit – nur für Wegwerf-Daten (Scratch, Cache, Videoschnitt-Puffer)</li>
</ul>



<p class="wp-block-paragraph"><strong>RAID 1</strong></p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Simpel, schnelle Reads, sofort einsatzbereit nach Plattentausch</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 50 % Kapazitätsverlust, Schreibrate ≈ einer Einzelplatte</li>
</ul>



<p class="wp-block-paragraph"><strong>RAID 5</strong></p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Guter Kompromiss aus Kapazität und Sicherheit, nur 1 Platte „Verlust&#8220;</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Schwache Schreibperformance, <strong>riskant bei großen Platten</strong> (siehe Rebuild-Problem unten)</li>
</ul>



<p class="wp-block-paragraph"><strong>RAID 6</strong></p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Übersteht zwei gleichzeitige Ausfälle – ideal für große SATA-Platten</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Noch langsamere Schreibvorgänge, 2 Platten „Verlust&#8220;</li>
</ul>



<p class="wp-block-paragraph"><strong>RAID 10</strong></p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Bester Allrounder für Performance + Sicherheit, schnelle Rebuilds</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Teuer – 50 % der Rohkapazität gehen für Spiegel drauf</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>IT-Agent (Rebuild-Falle bei RAID 5):</strong> Je größer die Platten, desto länger dauert ein Rebuild – und während des stundenlangen Rebuilds werden <em>alle</em> übrigen Platten voll belastet. Steigt dabei eine zweite aus (oder taucht ein Lesefehler / URE auf), ist bei RAID 5 alles weg. Genau deshalb gilt RAID 5 bei großen Kapazitäten als überholt und man greift zu RAID 6 oder RAID 10.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6a8.png" alt="🚨" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Warum RAID kein Backup ist</h2>



<p class="wp-block-paragraph">Der wichtigste Satz des ganzen Beitrags:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>RAID schützt vor Hardware-Ausfall – nicht vor Datenverlust.</strong></p>
</blockquote>



<p class="wp-block-paragraph">RAID hilft dir <strong>nicht</strong> bei:</p>



<ul class="wp-block-list">
<li>versehentlich gelöschten Dateien (der Löschvorgang wird brav auf alle Platten gespiegelt),</li>



<li>Ransomware / Verschlüsselung,</li>



<li>defektem Dateisystem oder Controller-Fehlern,</li>



<li>Feuer, Diebstahl, Überspannung (lokaler Totalverlust).</li>
</ul>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/27a1.png" alt="➡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>RAID = Verfügbarkeit. Backup = Wiederherstellbarkeit.</strong> Du brauchst beides. Stichwort <strong>3-2-1-Regel</strong>: 3 Kopien, 2 verschiedene Medien, 1 Kopie außer Haus.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f3e2.png" alt="🏢" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Der NetApp-Blick: RAID 4, RAID-DP &amp; RAID-TEC</h2>



<p class="wp-block-paragraph">Im Enterprise-Storage sieht die RAID-Welt etwas anders aus. <strong>NetApp</strong> setzt in seinem Betriebssystem <strong>ONTAP</strong> nicht primär auf RAID 5/6, sondern auf drei eigene Verfahren:</p>



<ul class="wp-block-list">
<li><strong>RAID 4</strong> – Striping mit <em>dedizierter</em> Paritätsplatte (eigentlich der „alte&#8220; Ansatz, der unter RAID 5 ausgemustert wurde).</li>



<li><strong>RAID-DP</strong> (Double Parity) – RAID 4 erweitert um eine zweite, <em>diagonale</em> Paritätsplatte. Übersteht <strong>zwei</strong> gleichzeitige Ausfälle und erfüllt damit die SNIA-Definition von RAID 6. Eingeführt 2003 mit Data ONTAP 6.5.</li>



<li><strong>RAID-TEC</strong> (Triple Erasure Coding) – dritte Parität, übersteht <strong>drei</strong> gleichzeitige Ausfälle. Default-Policy für große Kapazitäts-HDDs (ab ca. 6 TB).</li>
</ul>



<h3 class="wp-block-heading">Warum tut NetApp das mit einer dedizierten Paritätsplatte überhaupt?</h3>



<p class="wp-block-paragraph">Normalerweise wäre eine feste Paritätsplatte ein Flaschenhals. NetApp umgeht das über das Dateisystem <strong>WAFL (Write Anywhere File Layout)</strong>: Schreibvorgänge werden im RAM zu kompletten Stripes zusammengefasst und am Stück geschrieben – inklusive vorab berechneter Parität. Dadurch entfällt das teure Read-Modify-Write und die <strong>Write-Penalty</strong> fällt praktisch weg.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>IT-Agent (Begriffs-Hierarchie bei NetApp):</strong> Die Reihenfolge ist <strong>Platten → RAID-Gruppen → Aggregat → Volumes</strong>. Mehrere Platten bilden eine RAID-Gruppe (RAID 4 / DP / TEC), mehrere RAID-Gruppen bilden ein Aggregat, darauf liegen die FlexVols. Das ist ein beliebter Stolperstein, wenn man von „klassischem&#8220; Hardware-RAID kommt.</p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Marketing-Agent (Merksatz für den Leser):</strong> „RAID-DP gibt dir RAID-6-Sicherheit zum RAID-4-Preis.&#8220; Genau so hat NetApp das damals beworben – und für die Prüfung ist es ein guter Anker: <strong>DP = doppelt, TEC = dreifach.</strong></p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PowerShell: Storage-Health auslesen</h2>



<p class="wp-block-paragraph">Unter Windows (Server 2012+ / Win 8+) kannst du den Zustand deiner physischen Platten, Storage Pools und virtuellen Datenträger (Storage Spaces) mit dem nativen <code>Storage</code>-Modul auslesen. Hier ein kleines Skript, das dir alles kompakt auf einen Blick gibt – lokal oder per Remoting über mehrere Hosts:</p>



<pre class="wp-block-code"><code>&lt;#
.NOTES
    Name: Get-StorageHealth
    Author: Andreas Bowitz
    Version: 0.1
    LastUpdated: 2026-Jun-03
#&gt;

&#91;CmdletBinding()]
param(
    &#91;string&#91;]]$ComputerName = $env:COMPUTERNAME
)

function Get-LocalStorageHealth {

    Write-Host "`n=== Physische Datenträger ===" -ForegroundColor Cyan
    Get-PhysicalDisk |
        Sort-Object DeviceId |
        Select-Object DeviceId, FriendlyName, MediaType,
            @{N = 'Size(GB)'; E = { &#91;math]::Round($_.Size / 1GB, 1) } },
            HealthStatus, OperationalStatus |
        Format-Table -AutoSize

    Write-Host "=== Storage Pools ===" -ForegroundColor Cyan
    $pools = Get-StoragePool -IsPrimordial $false -ErrorAction SilentlyContinue
    if ($pools) {
        $pools |
            Select-Object FriendlyName,
                @{N = 'Size(GB)';      E = { &#91;math]::Round($_.Size / 1GB, 1) } },
                @{N = 'Allocated(GB)'; E = { &#91;math]::Round($_.AllocatedSize / 1GB, 1) } },
                HealthStatus, OperationalStatus |
            Format-Table -AutoSize
    }
    else {
        Write-Host "  Keine (nicht-primordialen) Storage Pools gefunden." -ForegroundColor DarkGray
    }

    Write-Host "=== Virtuelle Datenträger (Storage Spaces) ===" -ForegroundColor Cyan
    $vdisks = Get-VirtualDisk -ErrorAction SilentlyContinue
    if ($vdisks) {
        $vdisks |
            Select-Object FriendlyName, ResiliencySettingName,
                @{N = 'Size(GB)'; E = { &#91;math]::Round($_.Size / 1GB, 1) } },
                HealthStatus, OperationalStatus |
            Format-Table -AutoSize
    }
    else {
        Write-Host "  Keine virtuellen Datenträger gefunden." -ForegroundColor DarkGray
    }
}

foreach ($computer in $ComputerName) {
    Write-Host "`n############################################" -ForegroundColor Yellow
    Write-Host "  Host: $computer" -ForegroundColor Yellow
    Write-Host "############################################" -ForegroundColor Yellow

    if ($computer -eq $env:COMPUTERNAME) {
        Get-LocalStorageHealth
    }
    else {
        if (Test-Connection -ComputerName $computer -Count 1 -Quiet) {
            try {
                Invoke-Command -ComputerName $computer `
                    -ScriptBlock ${function:Get-LocalStorageHealth} -ErrorAction Stop
            }
            catch {
                Write-Warning "  $computer : $($_.Exception.Message)"
            }
        }
        else {
            Write-Warning "  $computer ist nicht erreichbar (Ping fehlgeschlagen)."
        }
    }
}
</code></pre>



<div class="wp-block-file"><a id="wp-block-file--media-c55f32ec-b10a-417a-b903-96e968cfd064" href="https://abow.info/wp-content/uploads/2026/06/Get-StorageHealth.ps1">Get-StorageHealth</a><a href="https://abow.info/wp-content/uploads/2026/06/Get-StorageHealth.ps1" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-c55f32ec-b10a-417a-b903-96e968cfd064">Herunterladen</a></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>IT-Agent (wichtige Einschränkung):</strong> <code>Get-PhysicalDisk</code> &amp; Co. zeigen dir <strong>Software-RAID / Storage Spaces</strong> und den SMART-Status einzelner Disks. Steckt dein RAID hinter einem <strong>Hardware-Controller</strong> (Dell PERC, HPE Smart Array) oder einem <strong>NetApp-Filer</strong>, siehst du dort oft nur ein einziges logisches Volume. Für den echten RAID-Status brauchst du dann die Vendor-Tools: <code>StorCLI</code> / <code>ssacli</code> bzw. den <strong>NetApp System Manager</strong> oder die <strong>ONTAP CLI</strong> (<code>storage aggregate show</code>, <code>storage disk show</code>).</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">&lt;a name=&#8220;fazit&#8220;&gt;&lt;/a&gt;</p>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Fazit</h2>



<ul class="wp-block-list">
<li><strong>RAID 0</strong> = Speed/Kapazität, null Sicherheit.</li>



<li><strong>RAID 1</strong> = simpel &amp; sicher, halbe Kapazität.</li>



<li><strong>RAID 5</strong> = guter Kompromiss, aber bei großen Platten riskant (Rebuild-Falle).</li>



<li><strong>RAID 6</strong> = zwei Platten dürfen sterben – die vernünftige Wahl für große Arrays.</li>



<li><strong>RAID 10</strong> = der Performance-Sicherheits-King, aber teuer.</li>



<li><strong>NetApp</strong> kocht mit RAID 4 / <strong>RAID-DP</strong> / <strong>RAID-TEC</strong> sein eigenes Süppchen – clever gelöst über WAFL.</li>
</ul>



<p class="wp-block-paragraph">Und nie vergessen: <strong>RAID ist kein Backup.</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Wie immer berichte ich hier nur von meinen persönlichen Erfahrungen und Ergebnissen. Dies ist keine offizielle Anleitung von Microsoft oder NetApp. Das Nutzen von Skripten geschieht auf eigene Gefahr. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph"></p>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/462/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Microsoft Exchange // CU Update Installation</title>
		<link>https://abow.info/microsoft/microsoft_exchange/microsoft-exchange-cu-update-installation-2/</link>
					<comments>https://abow.info/microsoft/microsoft_exchange/microsoft-exchange-cu-update-installation-2/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Fri, 19 Jun 2026 17:00:00 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Microsoft Exchange]]></category>
		<category><![CDATA[Microsoft Exchange Online]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[CU Update]]></category>
		<category><![CDATA[Cumulative Update]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[Exchange Server SE]]></category>
		<category><![CDATA[Extended Protection]]></category>
		<category><![CDATA[IIS URL Rewrite]]></category>
		<category><![CDATA[Mailflow]]></category>
		<category><![CDATA[Migration]]></category>
		<category><![CDATA[Patchmanagement]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Schema]]></category>
		<guid isPermaLink="false">https://abow.info/?p=453</guid>

					<description><![CDATA[Die Installation eines Exchange Cumulative Updates ist keine simple Routineaufgabe – es sind zahlreiche Aspekte zu beachten. Die Rückmeldung während der Installation ist oft spärlich; es kann durchaus…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Die Installation eines Exchange Cumulative Updates ist keine simple Routineaufgabe – es sind zahlreiche Aspekte zu beachten. Die Rückmeldung während der Installation ist oft spärlich; es kann durchaus minutenlang so aussehen, als passiere nichts. Solange das Setup-Fenster noch reagiert, besteht in der Regel kein Grund zur Sorge.</p>



<p class="wp-block-paragraph">Diese Dokumentation basiert auf der Installation eines CU auf dem eigenständigen Exchange-Server <strong>exch01.domain.tld</strong>, der vorab mit allen aktuellen Windows-Updates versorgt wurde. Die zugrunde liegende Umgebung ist ein Multi-AD-Forest mit Child-Domain – also deutlich komplexer als eine Single-Forest-/Single-Domain-Struktur.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Wichtig vorab (Stand: Juni 2026): Exchange 2016/2019 sind End of Support</h2>



<p class="wp-block-paragraph">Exchange Server 2016 und 2019 haben am <strong>14. Oktober 2025</strong> das Support-Ende erreicht. Es gibt seitdem <strong>keine regulären Sicherheitsupdates, Bugfixes oder technischen Support</strong> mehr. Wer noch im Programm der <strong>Extended Security Updates (ESU)</strong> ist, erhält Updates nur noch <strong>bis April 2026</strong> – das ist ausdrücklich nur ein Übergang, keine Dauerlösung.</p>



<p class="wp-block-paragraph">Die einzige weiterhin unterstützte On-Prem-Variante ist <strong>Exchange Server Subscription Edition (SE)</strong>. Exchange SE RTM ist code-identisch mit Exchange 2019 CU15; <strong>SE CU1</strong> kam in H1/2026, <strong>SE CU2</strong> folgt in H2/2026 und blockt dann die Koexistenz mit 2016/2019.</p>



<p class="wp-block-paragraph"><strong>Konsequenz für dieses Thema:</strong> Reine CU-Installationen auf 2016/2019 sind heute fast nur noch im Rahmen einer In-Place-Migration nach SE relevant (2019 CU14/CU15 → SE) oder mit aktivem ESU. Der hier beschriebene Ablauf gilt aber <strong>technisch unverändert auch für Exchange Server SE</strong> – Modern Servicing bedeutet lediglich: Es ist immer nur das <strong>aktuellste</strong> CU supported (kein „N-1&#8243; mehr).</p>
</blockquote>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="389" src="https://abow.info/wp-content/uploads/2026/06/inlay_lifecycle_se-1024x389.png" alt="" class="wp-image-455" srcset="https://abow.info/wp-content/uploads/2026/06/inlay_lifecycle_se-1024x389.png 1024w, https://abow.info/wp-content/uploads/2026/06/inlay_lifecycle_se-300x114.png 300w, https://abow.info/wp-content/uploads/2026/06/inlay_lifecycle_se-768x292.png 768w, https://abow.info/wp-content/uploads/2026/06/inlay_lifecycle_se-1536x584.png 1536w, https://abow.info/wp-content/uploads/2026/06/inlay_lifecycle_se.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Voraussetzungen</h2>



<h3 class="wp-block-heading">Passende Berechtigungen</h3>



<p class="wp-block-paragraph">Für das Update wird ein Benutzerkonto benötigt, das Mitglied in folgenden Gruppen ist:</p>



<ul class="wp-block-list">
<li><strong>Organization Management</strong></li>



<li><strong>Organisations-Admins</strong> (Enterprise Admins)</li>



<li><strong>Schema-Admins</strong></li>
</ul>



<p class="wp-block-paragraph">Nur damit ist sichergestellt, dass alle Änderungen am Active-Directory-Schema und an der Exchange-Organisation durchgeführt werden können. Fehlen die Rechte, schlägt die Installation fehl – und die Ursache lässt sich oft nur mit gezielter Log-Recherche nachvollziehen.</p>



<p class="wp-block-paragraph">In seltenen Konstellationen (wie z. B. bei <em>domain.tld</em>) ist die Gruppe <strong>Organisations-Admins</strong> nicht automatisch Mitglied der <strong>Domänen-Admins</strong> jeder betroffenen Domäne. Dann muss <code>PrepareDomain</code> zwingend mit einem Benutzer aus der <strong>Domänen-Admins</strong>-Gruppe der jeweiligen Domäne ausgeführt werden.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Vorbereitung der Arbeiten</h2>



<p class="wp-block-paragraph">Je nach Umgebung unterscheiden sich die Vorbereitungsschritte. Vieles lässt sich aber schon im Vorfeld erledigen.</p>



<h3 class="wp-block-heading">Übersicht der Exchange-Server erfassen</h3>



<p class="wp-block-paragraph">Erstelle vorab eine Übersicht aller Exchange-Server inklusive <strong>Dienstestatus</strong>, <strong>Build-Versionen</strong> und ggf. <strong>Rollenverteilung</strong>. Das dokumentiert den IST-Zustand sauber und hilft im Fehlerfall enorm.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Tipp:</strong> Microsoft empfiehlt offiziell den <strong>Exchange Server Health Checker</strong> (PowerShell-Skript), um vorab zu sehen, welche CUs/SUs/manuellen Schritte ausstehen. Den IST-Zustand kannst du außerdem mit dem unten verlinkten Pre-Flight-Skript einsammeln.</p>
</blockquote>



<h3 class="wp-block-heading">Beginn der Arbeiten kommunizieren</h3>



<p class="wp-block-paragraph">Vor dem Start der Wartung den Kunden/Service Owner rechtzeitig informieren, damit Einschränkungen bekannt und eingeplant sind.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="471" src="https://abow.info/wp-content/uploads/2026/06/inlay_cu_ablauf-1024x471.png" alt="" class="wp-image-456" srcset="https://abow.info/wp-content/uploads/2026/06/inlay_cu_ablauf-1024x471.png 1024w, https://abow.info/wp-content/uploads/2026/06/inlay_cu_ablauf-300x138.png 300w, https://abow.info/wp-content/uploads/2026/06/inlay_cu_ablauf-768x353.png 768w, https://abow.info/wp-content/uploads/2026/06/inlay_cu_ablauf-1536x707.png 1536w, https://abow.info/wp-content/uploads/2026/06/inlay_cu_ablauf.png 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Exchange-Version ermitteln</h2>



<p class="wp-block-paragraph">Zuerst feststellen, welche Version aktuell läuft – per <strong>Exchange Management Shell</strong> oder <strong>EAC</strong>.</p>



<pre class="wp-block-code"><code>Get-ExchangeServer | Select-Object Name, AdminDisplayVersion | Format-Table
</code></pre>



<p class="wp-block-paragraph">Beispielausgabe:</p>



<pre class="wp-block-code"><code>Name    AdminDisplayVersion
----    -------------------
EXCH01  Version 15.1 (Build 2044.4)
EXCH02  Version 15.1 (Build 2044.4)
</code></pre>



<p class="wp-block-paragraph">Die Build-Nummer ordnest du über die Microsoft-Liste der konkreten CU-Version zu: <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://learn.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates">Exchange Build Numbers and Release Dates (Microsoft Learn)</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Build-Logik kurz erklärt:</strong> <code>15.0.x</code> = Exchange 2013, <code>15.1.x</code> = Exchange 2016, <code>15.2.x</code> = Exchange 2019 / Exchange SE. Im Beispiel entspricht <strong>15.1.2044.4</strong> dem <strong>Exchange 2016 CU17</strong>.</p>
</blockquote>



<h3 class="wp-block-heading">CU-Version der Setup-Datei prüfen</h3>



<p class="wp-block-paragraph">Welche Version ein vorhandenes Setup-Paket enthält:</p>



<pre class="wp-block-code"><code>Get-Command Exsetup.exe | ForEach-Object { $_.FileVersionInfo }
</code></pre>



<h3 class="wp-block-heading">Download der aktuellen CU/SE-Version</h3>



<p class="wp-block-paragraph">Aktuelle Pakete (Exchange SE bzw. die letzten ESU-fähigen SUs für 2016/2019) gibt es bei Microsoft. Nutze zur Pfadbestimmung den <strong>Exchange Update Wizard</strong>, der dir abhängig von Quell- und Ziel-CU die genauen Schritte ausgibt.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Besonderheit: UM Language Pack</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2139.png" alt="ℹ" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Hinweis:</strong> Unified Messaging (UM) wurde mit Exchange 2019 entfernt und ist in Exchange SE nicht mehr vorhanden. Dieser Abschnitt ist daher nur noch für <strong>Exchange 2016</strong> relevant.</p>
</blockquote>



<p class="wp-block-paragraph">Falls UM eingesetzt wird, ist ggf. ein <strong>UM Language Pack</strong> installiert (z. B. für Voicemail-Ansagen). Es muss nach dem CU-Update in passender Version <strong>neu installiert</strong> werden und erscheint in der Systemsteuerung unter <em>Programme und Features</em>.</p>



<p class="wp-block-paragraph">Prüfen, ob ein Language Pack aktiv ist:</p>



<pre class="wp-block-code"><code>Get-UMService | Select-Object Name, Languages
</code></pre>



<p class="wp-block-paragraph">Wird nur <code>{en-US}</code> ausgegeben, ist kein zusätzliches Sprachpaket installiert.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">.NET Framework-Version ermitteln</h2>



<p class="wp-block-paragraph">Am einfachsten per PowerShell (als Administrator):</p>



<pre class="wp-block-code"><code>(Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release
</code></pre>



<p class="wp-block-paragraph">Beispielausgabe:</p>



<pre class="wp-block-code"><code>528049
</code></pre>



<p class="wp-block-paragraph">Der Release-Wert lässt sich der Microsoft-Tabelle zuordnen – <strong>528049 = .NET 4.8</strong>: <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed">How to determine which .NET Framework versions are installed</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Kurzreferenz Release-Werte:</strong> <code>528040/528049/528449</code> = .NET 4.8 · <code>533320/533325</code> = .NET 4.8.1. Exchange SE benötigt <strong>.NET 4.8</strong> (auf Windows Server 2025 ist 4.8.1 systemseitig dabei).</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Kompatibilität von CU und .NET Framework</h2>



<p class="wp-block-paragraph">Mit diesen Infos prüfst du anhand der <strong>Supportability Matrix</strong>, ob die installierte .NET-Version zum geplanten CU passt. Ist das <strong>nicht</strong> der Fall, muss .NET <strong>vor</strong> dem CU aktualisiert werden.</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://learn.microsoft.com/en-us/exchange/plan-and-deploy/supportability-matrix">Exchange Server Supportability Matrix (Microsoft Learn)</a></p>



<p class="wp-block-paragraph">In unserem Beispiel: .NET 4.8 wird bereits <strong>ab Exchange 2016 CU13</strong> unterstützt – ein .NET-Update ist hier <strong>nicht erforderlich</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Active Directory Schema-Version prüfen</h2>



<p class="wp-block-paragraph">Vor dem CU prüfen, ob das AD-Schema bereits die erforderliche Version hat.</p>



<p class="wp-block-paragraph"><strong>Exchange Schema Version:</strong></p>



<pre class="wp-block-code"><code>$sc = (Get-ADRootDSE).SchemaNamingContext
$ob = "CN=ms-Exch-Schema-Version-Pt," + $sc
Write-Output "RangeUpper: $((Get-ADObject $ob -Properties rangeUpper).rangeUpper)"
</code></pre>



<p class="wp-block-paragraph"><strong>Exchange Object Version (Domain):</strong></p>



<pre class="wp-block-code"><code>$dc = (Get-ADRootDSE).DefaultNamingContext
$ob = "CN=Microsoft Exchange System Objects," + $dc
Write-Output "ObjectVersion (Default): $((Get-ADObject $ob -Properties objectVersion).objectVersion)"
</code></pre>



<p class="wp-block-paragraph"><strong>Exchange Object Version (Forest):</strong></p>



<pre class="wp-block-code"><code>$cc = (Get-ADRootDSE).ConfigurationNamingContext
$fl = "(objectClass=msExchOrganizationContainer)"
Write-Output "ObjectVersion (Configuration): $((Get-ADObject -LDAPFilter $fl -SearchBase $cc -Properties objectVersion).objectVersion)"
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Hinweis:</strong> Die <em>ObjectVersion (Configuration)</em> wird in manchen Umgebungen erst nach dem erfolgreichen Update des ersten Exchange-Servers erhöht.</p>
</blockquote>



<p class="wp-block-paragraph">Beispielausgabe:</p>



<pre class="wp-block-code"><code>RangeUpper: 15332
ObjectVersion (Default): 13237
ObjectVersion (Configuration): 16217
</code></pre>



<p class="wp-block-paragraph">Die jeweils erforderlichen Soll-Werte je CU stehen hier:</p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/de-de/exchange/plan-and-deploy/prepare-ad-and-domains?view=exchserver-2016">Exchange 2016 – AD- und Domain-Vorbereitung</a></li>



<li><a href="https://learn.microsoft.com/de-de/exchange/plan-and-deploy/prepare-ad-and-domains?view=exchserver-2019">Exchange 2019 – AD- und Domain-Vorbereitung</a></li>
</ul>



<p class="wp-block-paragraph">In unserem Fall muss das <strong>Schema erweitert</strong> werden, da das neue CU eine höhere Schema-Version voraussetzt.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Tipp:</strong> Alle obigen Abfragen plus Dienstestatus, FSMO, .NET und Transport Agents erledigt das verlinkte Pre-Flight-Skript in einem Rutsch (read-only).</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schema Master ermitteln</h2>



<p class="wp-block-paragraph">Für das Schema-Upgrade muss bekannt sein, welcher DC die <strong>Schema-Master</strong>-Rolle hält. Das Upgrade sollte im Vorfeld des CU erfolgen.</p>



<p class="wp-block-paragraph"><strong>Variante 1 – CMD:</strong></p>



<pre class="wp-block-code"><code>netdom query fsmo
</code></pre>



<p class="wp-block-paragraph"><strong>Variante 2 – PowerShell:</strong></p>



<pre class="wp-block-code"><code>Get-ADForest | Select-Object SchemaMaster
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Schema-Erweiterung des Active Directory</h2>



<p class="wp-block-paragraph">Die <strong>Installations-ISO des CUs</strong> wird auf dem <strong>DC mit der Schema-Master-Rolle</strong> eingebunden (im Beispiel <code>rootdc01.domain.tld</code>).</p>



<p class="wp-block-paragraph">Alternativ auf einem anderen DC in der <strong>gleichen AD-Site</strong> wie der Exchange-Server. Bei Bedarf die FSMO-Rolle temporär verschieben:</p>



<ol class="wp-block-list">
<li><code>mmc</code> öffnen → Snap-In „<strong>Active Directory-Schema</strong>&#8220; hinzufügen</li>



<li>Rechtsklick auf <strong>Active Directory-Schema</strong> → <strong>Change Domain Controller</strong></li>



<li>Ziel-DC wählen → <strong>Operation Master</strong> → <strong>Change</strong></li>
</ol>



<h3 class="wp-block-heading">Durchführung</h3>



<ol class="wp-block-list">
<li><strong>PowerShell als Administrator</strong> auf dem Schema-Master öffnen</li>



<li>Auf das ISO-Laufwerk wechseln (z. B. <code>D:</code>):</li>
</ol>



<pre class="wp-block-code"><code>D:
</code></pre>



<ol start="3" class="wp-block-list">
<li>Befehle nacheinander ausführen:</li>
</ol>



<pre class="wp-block-code"><code>.\setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
.\setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Zum Lizenz-Schalter:</strong> Microsoft akzeptiert zwei Varianten – <code>_DiagnosticDataON</code> oder <code>_DiagnosticDataOFF</code>. Der Unterschied ist ausschließlich, ob optionale Diagnosedaten an Microsoft gesendet werden. Funktional ist die Installation identisch. <strong>Tipp:</strong> Innerhalb einer Wartung konsistent denselben Schalter verwenden, um Verwirrung in den Logs zu vermeiden.</p>
</blockquote>



<h3 class="wp-block-heading">Komplexe Umgebungen mit mehreren Domänen</h3>



<p class="wp-block-paragraph">Gibt es Exchange-Server in weiteren Domänen:</p>



<pre class="wp-block-code"><code>.\setup.exe /PrepareAllDomains /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
</code></pre>



<p class="wp-block-paragraph">Schlägt <code>PrepareAllDomains</code> mangels Domain-Adminrechten fehl, jede Domäne einzeln vorbereiten:</p>



<pre class="wp-block-code"><code>.\setup.exe /PrepareDomain:&lt;domain.tld&gt; /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Abschluss der AD-Vorbereitung</h2>



<p class="wp-block-paragraph">Danach ist das AD auf dem aktuellen Stand. Die ISO kann vom DC wieder ausgehängt werden.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Hinweis:</strong> Vor dem Start der Exchange-Installation die <strong>AD-Replikation abwarten</strong> – meist reichen ca. <strong>15 Minuten</strong>, je nach Umgebung mehr. Mit <code>repadmin /replsummary</code> lässt sich der Replikationsstand prüfen.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Problem: „Ein Neustart einer vorangegangenen Installation steht noch aus&#8220;</h2>



<p class="wp-block-paragraph">Vor dem Setup kann diese Meldung kommen:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Ein Neustart einer vorangegangenen Installation steht noch aus. Starten Sie das System neu, und führen Sie Setup erneut aus.</strong></p>
</blockquote>



<p class="wp-block-paragraph">Das Setup wird <strong>abgebrochen</strong>. Details im Log:</p>



<pre class="wp-block-code"><code>&lt;SystemDrive&gt;:\ExchangeSetupLogs\ExchangeSetup.log
</code></pre>



<h3 class="wp-block-heading">Lösungsmöglichkeiten</h3>



<ul class="wp-block-list">
<li><strong>Variante 1 (empfohlen):</strong> Server <strong>einmal neu starten</strong>, Setup erneut ausführen.</li>



<li><strong>Variante 2 (nur wenn Reboot nicht hilft):</strong> Den Registry-<strong>Wert</strong> prüfen:</li>
</ul>



<pre class="wp-block-code"><code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager → PendingFileRenameOperations
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Korrektur/Warnung (wichtig!):</strong> Diesen Wert <strong>nicht blind löschen</strong>. <code>PendingFileRenameOperations</code> kann <strong>mehrere legitime</strong> ausstehende Umbenennungen enthalten, die Windows beim nächsten Boot erledigen will. Werden die gelöscht, können laufende Updates inkonsistent werden.</p>



<p class="wp-block-paragraph"><strong>Besser:</strong> Erst den Inhalt ansehen (<code>Get-ItemProperty ... -Name PendingFileRenameOperations</code>), den Wert <strong>exportieren/sichern</strong>, und nur wenn dort ausschließlich irrelevante Reste stehen, gezielt entfernen. In 95 % der Fälle löst ein simpler Reboot das Problem sauber.</p>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Weitere Infos: <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f517.png" alt="🔗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://www.frankysweb.de/exchange-allgemein-fehler-%E2%80%9Eein-neustart-steht-noch-aus%E2%80%9C-bei-installation-oder-update/">FrankysWeb – „Ein Neustart steht noch aus&#8220;</a></p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Sonderanpassungen an der Konfiguration</h2>



<p class="wp-block-paragraph">Individuelle <strong>Konfigurationsänderungen</strong> (z. B. an <code>web.config</code>) können durch ein CU <strong>überschrieben</strong> werden. Diese vorab <strong>dokumentieren/exportieren</strong> und nach dem Update <strong>prüfen und ggf. erneut setzen</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Abhängige Drittherstellersoftware</h2>



<p class="wp-block-paragraph">In produktiven Umgebungen ist oft Drittsoftware aktiv (Signaturen, Archivierung, Security). Solche Komponenten können durch ein CU beeinträchtigt werden, vor allem wenn Exchange-DLLs ersetzt werden.</p>



<p class="wp-block-paragraph">Prüfen, ob sich Software in den Mailflow einklinkt:</p>



<pre class="wp-block-code"><code>Get-TransportAgent
</code></pre>



<p class="wp-block-paragraph">Beispielausgabe:</p>



<pre class="wp-block-code"><code>Name                              Enabled  Priority
----                              -------  --------
Exclaimer Auto Responder Agent    True     1
</code></pre>



<p class="wp-block-paragraph">Hier ist der <strong>Exclaimer Auto Responder Routing Agent</strong> aktiv (laut Hersteller keine Maßnahmen nach CU nötig). Anders z. B. bei <strong>CI-Mail Policy</strong> – die muss nach jedem CU <strong>neu installiert</strong> werden.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Empfehlung: Vor dem Update die Dritthersteller-Doku prüfen oder beim Hersteller anfragen, ob nach einem CU Maßnahmen nötig sind.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Vorbereitung vor dem Update</h2>



<h3 class="wp-block-heading">Kundenkommunikation</h3>



<p class="wp-block-paragraph">Falls noch nicht erfolgt: <strong>Kunde vor Beginn informieren</strong>, besonders bei Produktivsystemen.</p>



<h3 class="wp-block-heading">Kein Snapshot!</h3>



<p class="wp-block-paragraph">Ein Snapshot (Hyper-V/VMware) ist <strong>nicht sinnvoll</strong> – das CU ändert nicht nur Exchange, sondern auch das <strong>AD-Schema</strong>. Ein Snapshot-Rollback führt zu inkonsistenten Zuständen. Es gibt <strong>kein Rollback</strong> – nur den Weg nach vorn.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Technische Vorbereitung</h2>



<h3 class="wp-block-heading">Status der Exchange-Dienste dokumentieren</h3>



<p class="wp-block-paragraph">IST-Zustand festhalten:</p>



<ul class="wp-block-list">
<li><strong>Dienste</strong> (Screenshot oder PowerShell): <code>Test-ServiceHealth</code></li>



<li><strong>Komponentenstatus</strong>: <code>Get-ServerComponentState &lt;Servername></code></li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Hintergrund: CU-/Hotfix-Installationen setzen Dienste/Komponenten oft auf „Deaktiviert&#8220;. Eine saubere Rückdokumentation ist entscheidend.</p>
</blockquote>



<h3 class="wp-block-heading">Zugriffe reduzieren</h3>



<ul class="wp-block-list">
<li><strong>Benutzersitzungen abmelden</strong> (alle außer Admin).</li>



<li><strong>Offene PowerShell-Sitzungen beenden:</strong></li>
</ul>



<pre class="wp-block-code"><code>Get-Process *powershell* | Stop-Process -Id &lt;Prozess-ID&gt;
</code></pre>



<h3 class="wp-block-heading">Virenscanner deaktivieren</h3>



<ul class="wp-block-list">
<li>AV (z. B. <strong>Bitdefender</strong>) <strong>deaktivieren</strong> (bei Bitdefender: <em>Shift + Rechtsklick > Poweruser</em>).</li>



<li>Andere Lösungen nach Herstelleranleitung.</li>



<li>Geht keine Deaktivierung: <strong>dokumentieren</strong> und fortfahren.</li>
</ul>



<h3 class="wp-block-heading">Backup pausieren</h3>



<ul class="wp-block-list">
<li>Laufende <strong>Backup-Jobs pausieren/deaktivieren</strong> – das CU beinhaltet mehrere Neustarts; Sicherungen können den Prozess stören oder beschädigte Backups erzeugen.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Installation des .NET Framework Updates (falls erforderlich)</h2>



<p class="wp-block-paragraph">Im Beispiel nicht nötig – der Vollständigkeit halber:</p>



<ol class="wp-block-list">
<li><strong>Offline-Installer herunterladen</strong> (z. B. .NET 4.8)</li>



<li><strong>Als Administrator ausführen</strong>, Lizenz akzeptieren, installieren</li>



<li>Laufzeit bis zu <strong>60 Minuten</strong>, wirkt teils eingefroren</li>



<li><strong>Neustart zwingend</strong></li>



<li>Danach über <strong>Windows Update</strong> verfügbare <strong>.NET-Sicherheitsupdates</strong> nachziehen</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">IIS URL Rewrite Module (bei bestimmten CUs)</h2>



<p class="wp-block-paragraph">Seit dem <strong>CU vom September 2021</strong> gibt es einen sicherheitsrelevanten „Not-Aus-Schalter&#8220;. Dafür ist vorab das <strong>IIS URL Rewrite Module</strong> nötig:</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://www.iis.net/downloads/microsoft/url-rewrite">Microsoft URL Rewrite Module</a></p>



<p class="wp-block-paragraph">Installation dauert nur wenige Minuten und sollte <strong>vor dem CU</strong> erfolgen, falls das CU diese Abhängigkeit mitbringt.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Installation des Cumulative Updates (CU)</h2>



<p class="wp-block-paragraph">Vor der Installation den <strong>Exchange Server einmal neu starten</strong>, um sauber zu starten.</p>



<h3 class="wp-block-heading">ISO-Datei einbinden</h3>



<p class="wp-block-paragraph">Die CU-ISO <strong>per Doppelklick einbinden</strong> – sie erscheint als virtuelles Laufwerk.</p>



<h3 class="wp-block-heading">Wichtiger Hinweis: Extended Protection</h3>



<p class="wp-block-paragraph">Mit aktuellen CUs wird <strong>Extended Protection (EP)</strong> automatisch aktiviert. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://learn.microsoft.com/en-us/exchange/plan-and-deploy/post-installation-tasks/security-best-practices/exchange-extended-protection?view=exchserver-2019">Exchange Extended Protection (Microsoft Learn)</a></p>



<p class="wp-block-paragraph">Soll EP <strong>nicht</strong> aktiviert werden:</p>



<pre class="wp-block-code"><code>.\Setup.exe /Update /DoNotEnableEP /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> EP ist eine <strong>Sicherheitsfunktion</strong> und sollte im Normalfall <strong>aktiviert bleiben</strong>. <code>/DoNotEnableEP</code> nur nutzen, wenn dokumentierte Kompatibilitätsgründe vorliegen (z. B. bestimmte Loadbalancer-/Hybrid-Szenarien).</p>
</blockquote>



<h3 class="wp-block-heading">CU-Installation starten</h3>



<ol class="wp-block-list">
<li><strong>Administrative PowerShell</strong> öffnen</li>



<li>Zum ISO-Laufwerk navigieren</li>



<li>Installation starten:</li>
</ol>



<pre class="wp-block-code"><code>.\Setup.exe /Mode:Upgrade /IAcceptExchangeServerLicenseTerms_DiagnosticDataON
</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Wichtig:</strong> <code>setup.exe</code> <strong>muss als Administrator</strong> laufen, sonst drohen inkonsistentes Verhalten oder ein <strong>defekter Exchange-Server</strong>.</p>
</blockquote>



<h3 class="wp-block-heading">Während der Installation</h3>



<ul class="wp-block-list">
<li>Die Installation kann mehrfach längere Zeit „hängen&#8220; – das ist <strong>normal</strong>.</li>



<li>Alle <strong>Exchange-Dienste sind gestoppt</strong> – das Monitoring sollte das erkennen (ggf. Wartungsfenster setzen).</li>



<li>Häufige Fehlerursache: <strong>Backup-Software startet automatisch</strong> → Backup-Jobs vorab stoppen!</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Neustart nach dem CU-Update</h2>



<p class="wp-block-paragraph">Nach der Installation ist ein <strong>Neustart zwingend</strong>. Er kann <strong>ungewöhnlich lange</strong> dauern – teils <strong>bis zu einer Stunde</strong>, bis alle Dienste laufen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Nacharbeiten nach dem CU-Update</h2>



<h3 class="wp-block-heading">Sonderanpassungen prüfen und ggf. erneut setzen</h3>



<p class="wp-block-paragraph"><code>web.config</code>-Anpassungen u. Ä. jetzt <strong>prüfen</strong> und bei Bedarf erneut vornehmen – CUs überschreiben solche Änderungen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Arbeiten nach dem Neustart</h2>



<h3 class="wp-block-heading">1. Dienste &amp; Konfiguration</h3>



<p class="wp-block-paragraph">Exchange-Dienste gestartet und in erwarteter Konfiguration? → Abgleich mit Vorher-Screenshot.</p>



<h3 class="wp-block-heading">2. Komponentenstatus</h3>



<pre class="wp-block-code"><code>Get-ServerComponentState &lt;Servername&gt;
</code></pre>



<p class="wp-block-paragraph">→ Abgleich mit dokumentiertem Zustand.</p>



<h3 class="wp-block-heading">3. Datenbankstatus</h3>



<p class="wp-block-paragraph">Im <strong>EAC → Servers → Databases</strong> prüfen, ob alle Datenbanken eingebunden/bereitgestellt sind. (PowerShell: <code>Get-MailboxDatabaseCopyStatus</code>.)</p>



<h3 class="wp-block-heading">4. Mailflow testen</h3>



<p class="wp-block-paragraph">Test eingehend und ausgehend (z. B. Admin sendet an Techniker, erhält Antwort).</p>



<h3 class="wp-block-heading">5. OWA / Outlook-Zugriff prüfen</h3>



<p class="wp-block-paragraph"><strong>OWA</strong> mit Testnutzer testen, wenn möglich <strong>Outlook-Konnektivität</strong> prüfen.</p>



<h3 class="wp-block-heading">6. Monitoring prüfen</h3>



<p class="wp-block-paragraph">Alles wieder „grün&#8220;? <strong>CPU-Last</strong> direkt nach Neustart erhöht ist normal – nach <strong>30–60 Minuten</strong> sollte sie sich stabilisieren.</p>



<h3 class="wp-block-heading">7. Ereignisprotokolle prüfen</h3>



<p class="wp-block-paragraph"><strong>Anwendungs-/System-Eventlogs</strong> filtern (Kritisch/Fehler/Warnung). Kurz nach dem Neustart sind manche Fehler normal und verschwinden wieder.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Letzte Schritte nach dem CU-Update</h2>



<h3 class="wp-block-heading">Prüfung mit <code>Test-ServiceHealth</code></h3>



<pre class="wp-block-code"><code>Test-ServiceHealth
</code></pre>



<p class="wp-block-paragraph">Alle erforderlichen Dienste sollten „Running&#8220; zeigen.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Microsoft empfiehlt, <strong>nach</strong> dem Update erneut den <strong>Exchange Health Checker</strong> laufen zu lassen, um offene Folgeaktionen zu erkennen.</p>
</blockquote>



<h3 class="wp-block-heading">Reaktivierung des Virenscanners</h3>



<p class="wp-block-paragraph">Falls manuell deaktiviert und nicht automatisch zurück: AV <strong>wieder aktivieren</strong>.</p>



<h3 class="wp-block-heading">Backup fortsetzen</h3>



<p class="wp-block-paragraph">Pausierten Backup-Job <strong>fortsetzen</strong> (Rechtsklick → Fortsetzen).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Prüfung der erfolgreichen Installation</h2>



<pre class="wp-block-code"><code>Get-ExchangeServer | Select-Object Name, AdminDisplayVersion | Format-Table
</code></pre>



<p class="wp-block-paragraph">Beispielausgabe:</p>



<pre class="wp-block-code"><code>Name    AdminDisplayVersion
----    -------------------
EXCH04  Version 15.1 (Build 2044.4)
EXCH05  Version 15.1 (Build 2176.2)
</code></pre>



<p class="wp-block-paragraph">Die Build-Nummer muss der Zielversion entsprechen (siehe Microsoft Build-Liste).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Abschluss</h2>



<ul class="wp-block-list">
<li><strong>Information kommunizieren</strong> (intern an Service Owner, extern an Kunde/Ansprechpartner).</li>



<li><strong>Installationsdateien bereinigen</strong> (ISO und extrahierte Dateien löschen, Papierkorb leeren).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Bonus: Pre-Flight-Skript</h2>



<p class="wp-block-paragraph">Das begleitende PowerShell-Skript <strong><code>PS_Exchange_CU_PreFlight_Check.ps1</code></strong> sammelt den kompletten IST-Zustand (Versionen, Dienste, ComponentState, AD-Schema, FSMO, .NET, Transport Agents, Pending-Reboot) read-only in eine Textdatei – ideal für die Vorher-/Nachher-Dokumentation.</p>



<div class="wp-block-file"><a id="wp-block-file--media-85f8861f-f54a-46bc-8de9-afca60d3e222" href="https://abow.info/wp-content/uploads/2026/06/PS_Exchange_CU_PreFlight_Check.ps1">PS_Exchange_CU_PreFlight_Check</a><a href="https://abow.info/wp-content/uploads/2026/06/PS_Exchange_CU_PreFlight_Check.ps1" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-85f8861f-f54a-46bc-8de9-afca60d3e222">Herunterladen</a></div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/microsoft/microsoft_exchange/microsoft-exchange-cu-update-installation-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FISI // Von-Neumann-Architektur einfach erklärt</title>
		<link>https://abow.info/ausbildung_fachinformatiker/fisi-von-neumann-architektur-einfach-erklaert/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/fisi-von-neumann-architektur-einfach-erklaert/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Tue, 16 Jun 2026 14:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Systemintegration]]></category>
		<category><![CDATA[Adressbus]]></category>
		<category><![CDATA[ALU]]></category>
		<category><![CDATA[Befehlsregister]]></category>
		<category><![CDATA[Befehlszyklus]]></category>
		<category><![CDATA[Bit]]></category>
		<category><![CDATA[Bussystem]]></category>
		<category><![CDATA[Byte]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Datenbus]]></category>
		<category><![CDATA[FISI]]></category>
		<category><![CDATA[Program Counter]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[Rechenwerk]]></category>
		<category><![CDATA[Rechnerarchitektur]]></category>
		<category><![CDATA[Speicher]]></category>
		<category><![CDATA[Steuerbus]]></category>
		<category><![CDATA[Steuerwerk]]></category>
		<category><![CDATA[Von-Neumann-Architektur]]></category>
		<category><![CDATA[Von-Neumann-Flaschenhals]]></category>
		<guid isPermaLink="false">https://abow.info/?p=449</guid>

					<description><![CDATA[Fast jeder Rechner, den du heute anfasst – PC, Server, Smartphone, der Raspberry Pi im Schrank – folgt im Kern einem Bauplan von 1945. Die Von-Neumann-Architektur ist DAS…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Fast jeder Rechner, den du heute anfasst – PC, Server, Smartphone, der Raspberry Pi im Schrank – folgt im Kern einem Bauplan von 1945. Die Von-Neumann-Architektur ist DAS Grundlagenthema schlechthin: Sie kommt in jeder FISI-Prüfung dran und erklärt dir gleichzeitig, warum dein RAM überhaupt so wichtig ist. Hier bekommst du sie ohne Schnörkel erklärt.</strong></p>



<h2 class="wp-block-heading">Wer war von Neumann – und warum reden wir 80 Jahre später noch darüber?</h2>



<p class="wp-block-paragraph">John von Neumann beschrieb 1945 im „First Draft of a Report on the EDVAC“ ein Rechnermodell, bei dem <strong>Programm und Daten im selben Speicher</strong> liegen. Das klingt heute selbstverständlich, war damals aber der Durchbruch: Vorher musste man Rechner für jede neue Aufgabe quasi neu verdrahten. Seitdem gilt: gleiche Hardware, beliebige Programme – einfach in den Speicher laden, fertig.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="655" src="https://abow.info/wp-content/uploads/2026/06/von-neumann-diagramm-1024x655.png" alt="" class="wp-image-451" srcset="https://abow.info/wp-content/uploads/2026/06/von-neumann-diagramm-1024x655.png 1024w, https://abow.info/wp-content/uploads/2026/06/von-neumann-diagramm-300x192.png 300w, https://abow.info/wp-content/uploads/2026/06/von-neumann-diagramm-768x492.png 768w, https://abow.info/wp-content/uploads/2026/06/von-neumann-diagramm.png 1400w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Die 5 Funktionseinheiten</h2>



<p class="wp-block-paragraph">Das Herzstück der Architektur sind fünf logische Einheiten, die über ein gemeinsames Bus-System miteinander reden:</p>



<ol class="wp-block-list">
<li><strong>Steuerwerk (CU – Control Unit):</strong> der Dirigent. Es holt die Befehle in der richtigen Reihenfolge und versorgt alle anderen Einheiten mit Steuersignalen.</li>



<li><strong>Rechenwerk (ALU – Arithmetic Logic Unit):</strong> führt die eigentliche Arbeit aus – arithmetisch (Addition, Subtraktion …) und logisch (UND, ODER, NICHT, Vergleiche).</li>



<li><strong>Speicher:</strong> bewahrt Programm, Eingaben und Zwischenergebnisse auf.</li>



<li><strong>Eingabeeinheit:</strong> bringt Daten in den Rechner (Tastatur, Netzwerkkarte …).</li>



<li><strong>Ausgabeeinheit:</strong> gibt Daten wieder aus (Bildschirm, Drucker …).</li>
</ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Merke:</strong> Steuerwerk + Rechenwerk = <strong>Prozessor (CPU)</strong>. Ein-/Ausgabe wird oft als eine I/O-Einheit zusammengefasst – deshalb sprechen manche von vier Einheiten. Beide Zählweisen sind korrekt, je nachdem ob man E und A trennt.</p>
</blockquote>



<h2 class="wp-block-heading">Das Bus-System: drei Leitungen, eine Aufgabe</h2>



<p class="wp-block-paragraph">Die Einheiten sind über den <strong>Systembus</strong> verbunden – physikalisch nichts anderes als ein Bündel elektrischer Leitungen. Er besteht aus drei Teilen:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Bus</th><th>Aufgabe</th><th>Richtung</th></tr></thead><tbody><tr><td><strong>Datenbus</strong></td><td>transportiert die eigentlichen Nutzdaten</td><td>bidirektional (lesen/schreiben)</td></tr><tr><td><strong>Adressbus</strong></td><td>bestimmt <em>welche</em> Speicherzelle gemeint ist</td><td>i. d. R. eine Richtung (von der CPU weg)</td></tr><tr><td><strong>Steuerbus</strong></td><td>regelt <em>was</em> passiert (Read-/Write-Signal, Takt)</td><td>bidirektional</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Die Breite des Datenbusses (z. B. 64 Bit) bestimmt mit, wie viele Bit gleichzeitig übertragen werden können – ein direkter Hebel für die Performance.</p>



<h2 class="wp-block-heading">Wie der Speicher organisiert ist</h2>



<p class="wp-block-paragraph">Der Speicher besteht aus vielen gleich großen, <strong>fortlaufend nummerierten Speicherzellen</strong>. Jede Zelle hat eine eindeutige Adresse – stell es dir wie Hausnummern in einer Straße vor.</p>



<ul class="wp-block-list">
<li><strong>Bit</strong> = <em>binary digit</em>, die kleinste Informationseinheit (0 oder 1).</li>



<li>Ein einzelnes Bit anzusteuern wäre viel zu aufwendig. Deshalb fasst man mehrere Speicherelemente zu einer Zelle zusammen – die kleinste adressierbare Einheit ist meist <strong>1 Byte = 8 Bit</strong>.</li>



<li>Alle Daten – Programm, Eingaben, Zwischenergebnisse – landen im selben Speicher und werden <strong>binär codiert</strong>.</li>
</ul>



<h2 class="wp-block-heading">Der Befehlszyklus: Befehlsregister &amp; Befehlszählregister</h2>



<p class="wp-block-paragraph">Damit die CPU weiß, was als Nächstes dran ist, hat das Steuerwerk zwei wichtige Register:</p>



<ul class="wp-block-list">
<li><strong>Befehlsregister:</strong> enthält den aktuell bearbeiteten Befehl. Ein Befehl besteht aus einem <em>Operationsteil</em> (was tun?) und einem <em>Adressteil</em> (mit welchen Daten?).</li>



<li><strong>Befehlszählregister (Program Counter):</strong> enthält die Adresse des <em>nächsten</em> Befehls. Nach jedem Befehl wird der Inhalt um 1 erhöht.</li>
</ul>



<p class="wp-block-paragraph">Bei <strong>Sprungbefehlen</strong> wird der Zähler stattdessen auf einen anderen Wert gesetzt (GoTo). Besonders mächtig sind die <strong>bedingten Sprünge</strong>: Hier entscheidet die ALU per logischem Vergleich, ob gesprungen wird oder nicht – das ist die Grundlage für jedes <code>if</code> und jede Schleife in jedem Programm.</p>



<h2 class="wp-block-heading">Die Prinzipien der Von-Neumann-Architektur (Prüfungsklassiker)</h2>



<ol class="wp-block-list">
<li>Es gibt fünf Funktionseinheiten.</li>



<li>Die Rechnerstruktur ist <strong>unabhängig vom Problem</strong> – mit derselben Hardware löst man beliebige Aufgaben, indem man das passende Programm lädt.</li>



<li>Programm, Daten und Zwischenergebnisse liegen im <strong>gleichen Speicher</strong>.</li>



<li>Der Speicher ist in gleich große, fortlaufend nummerierte Zellen unterteilt.</li>



<li>Befehle werden der Reihe nach abgearbeitet (Sprungbefehle erlauben Abweichungen).</li>



<li>Der Befehlsvorrat umfasst mindestens: arithmetische Befehle, logische Befehle, Transportbefehle und bedingte Sprünge.</li>



<li>Alle Daten werden binär codiert.</li>
</ol>



<h2 class="wp-block-heading">Der Haken: der Von-Neumann-Flaschenhals</h2>



<p class="wp-block-paragraph">Genau das Prinzip, das die Architektur so flexibel macht – <strong>ein</strong> gemeinsamer Speicher und <strong>ein</strong> gemeinsamer Bus für Befehle und Daten – ist auch ihre größte Schwäche. Der Prozessor kann in einem Takt entweder einen Befehl <em>oder</em> ein Datum über den Bus holen, nicht beides gleichzeitig. Dieser Engpass heißt <strong>Von-Neumann-Flaschenhals</strong> (geprägt von John Backus, 1977).</p>



<p class="wp-block-paragraph">Die ganze moderne Hardware-Trickkiste ist im Grunde eine Antwort darauf:</p>



<ul class="wp-block-list">
<li><strong>Caches</strong> (schneller SRAM-Zwischenspeicher direkt an der CPU), um den langsamen Hauptspeicher seltener zu bemühen.</li>



<li><strong>Harvard-Architektur</strong> in Caches, die Befehle und Daten doch wieder physisch trennt.</li>



<li><strong>Pipelining</strong>, <strong>Prefetching</strong> und breitere Busse.</li>
</ul>



<p class="wp-block-paragraph">Wenn du also wissen willst, warum es überhaupt L1/L2/L3-Cache, Dual-Channel-RAM und immer schnellere Speicheranbindung gibt: Die Antwort steckt in diesem 80 Jahre alten Bauplan.</p>



<h2 class="wp-block-heading">Fazit</h2>



<p class="wp-block-paragraph">Die Von-Neumann-Architektur ist simpel genug, um sie sich in fünf Minuten zu merken, und gleichzeitig fundamental genug, um den Aufbau jedes heutigen Rechners zu erklären. Fünf Einheiten, drei Busse, ein gemeinsamer Speicher – und ein Flaschenhals, gegen den die gesamte Computertechnik seit Jahrzehnten anrennt.</p>



<p class="wp-block-paragraph"><em>Im nächsten Teil dieser Reihe gehe ich tiefer in den Speicher: SRAM vs. DRAM, SDRAM, die DDR-Generationen und wie man aus „PC3-12800“ die echte Taktrate ausrechnet.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/fisi-von-neumann-architektur-einfach-erklaert/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FISI // Zweierkomplement (2K): Wertebereiche &#038; Rechnen wie ein Computer (Teil 2)</title>
		<link>https://abow.info/ausbildung_fachinformatiker/fisi-zweierkomplement-2k-wertebereiche-rechnen-wie-ein-computer-teil-2/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/fisi-zweierkomplement-2k-wertebereiche-rechnen-wie-ein-computer-teil-2/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Fri, 12 Jun 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[Binärsystem]]></category>
		<category><![CDATA[Computerarithmetik]]></category>
		<category><![CDATA[FISI]]></category>
		<category><![CDATA[Überlauf]]></category>
		<category><![CDATA[Wertebereich]]></category>
		<category><![CDATA[Zahlensysteme]]></category>
		<category><![CDATA[Zweierkomplement]]></category>
		<guid isPermaLink="false">https://abow.info/?p=444</guid>

					<description><![CDATA[In Teil 1 haben wir gelernt, wie negative Zahlen im Zweierkomplement (2K) dargestellt und umgerechnet werden. Jetzt kommt der spannende Teil: Wie viele Zahlen passen eigentlich in n…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In <strong><a href="#">Teil 1</a></strong> haben wir gelernt, wie negative Zahlen im <strong>Zweierkomplement (2K)</strong> dargestellt und umgerechnet werden. Jetzt kommt der spannende Teil: <strong>Wie viele</strong> Zahlen passen eigentlich in <em>n</em> Bit – und wie rechnet eine CPU damit, obwohl sie eigentlich nur addieren kann?</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Diese Reihe:</strong> <strong>Teil 1 – <a href="#">Darstellen &amp; Umrechnen</a></strong> · Teil 2 – Wertebereiche &amp; Rechnen wie ein Computer (dieser Beitrag)</p>
</blockquote>



<h2 class="wp-block-heading">Wertebereiche: Was passt in <em>n</em> Bit?</h2>



<p class="wp-block-paragraph">Mit <strong>n Bits</strong> lassen sich immer genau <strong>2ⁿ verschiedene Zahlen</strong> darstellen. <em>Wie viele</em> das sind, ändert sich also nicht – nur <em>welche</em> Zahlen, je nach Interpretation:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Darstellung</th><th class="has-text-align-left" data-align="left">Wertebereich (WB)</th><th class="has-text-align-left" data-align="left">Beispiel n = 3 Bit</th><th class="has-text-align-left" data-align="left">Beispiel n = 8 Bit</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">„normales&#8220; Binär (nur ⊕, ℕ₀)</td><td class="has-text-align-left" data-align="left"><code>[0 ; 2ⁿ−1]</code></td><td class="has-text-align-left" data-align="left"><code>[0 ; 7]</code></td><td class="has-text-align-left" data-align="left"><code>[0 ; 255]</code></td></tr><tr><td class="has-text-align-left" data-align="left">Zweierkomplement (⊕ &amp; ⊖, ℤ)</td><td class="has-text-align-left" data-align="left"><code>[−2ⁿ⁻¹ ; 2ⁿ⁻¹−1]</code></td><td class="has-text-align-left" data-align="left"><code>[−4 ; 3]</code></td><td class="has-text-align-left" data-align="left"><code>[−128 ; 127]</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Bei 3 Bit sind es in beiden Fällen 8 darstellbare Zahlen – einmal <code>0…7</code>, einmal <code>−4…3</code>. Beim Zweierkomplement „kostet&#8220; das VZ-Bit die Hälfte des positiven Bereichs, dafür gibt&#8217;s negative Zahlen. Der negative Bereich reicht <strong>eine Zahl weiter</strong> als der positive (<code>−4</code> vs. <code>+3</code>), weil die <code>0</code> keinen eigenen Vorzeichen-Slot braucht.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Merksatz:</strong> Normal <code>[0 ; 2ⁿ−1]</code>, Zweierkomplement <code>[−2ⁿ⁻¹ ; 2ⁿ⁻¹−1]</code>.</p>
</blockquote>



<h2 class="wp-block-heading">Rechnen wie ein Computer: Subtraktion = Addition</h2>



<p class="wp-block-paragraph">Hier wird&#8217;s spannend: <strong>Eine CPU kann eigentlich gar nicht subtrahieren.</strong> Sie kann nur addieren. Der Trick: Statt <code>a − b</code> rechnet sie <code>a + (−b)</code>, wobei <code>−b</code> im Zweierkomplement vorliegt. Ein eventueller <strong>Übertrag aus dem höchsten Bit wird einfach verworfen</strong> – und das Ergebnis stimmt automatisch.</p>



<p class="wp-block-paragraph">Genau deshalb ist 2K im Computer so beliebt: Addition und Subtraktion laufen über <em>dieselbe</em> Hardware-Schaltung.</p>



<p class="wp-block-paragraph"><strong>Beispiel a) <code>7 + (−5) = 2</code></strong> (4 Bit)</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Operand</th><th class="has-text-align-left" data-align="left">Bits</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left"><code>7</code></td><td class="has-text-align-left" data-align="left"><code>0111</code></td></tr><tr><td class="has-text-align-left" data-align="left"><code>−5</code></td><td class="has-text-align-left" data-align="left"><code>1011₂ₖ</code></td></tr><tr><td class="has-text-align-left" data-align="left">Summe</td><td class="has-text-align-left" data-align="left"><code>(1)0010</code> → Übertrag streichen → <strong><code>0010</code></strong> = <code>2</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Beispiel b) <code>13 − 8 = 5</code></strong> (5 Bit) → gerechnet als <code>13 + (−8)</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Operand</th><th class="has-text-align-left" data-align="left">Bits</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left"><code>13</code></td><td class="has-text-align-left" data-align="left"><code>01101</code></td></tr><tr><td class="has-text-align-left" data-align="left"><code>−8</code></td><td class="has-text-align-left" data-align="left"><code>11000₂ₖ</code></td></tr><tr><td class="has-text-align-left" data-align="left">Summe</td><td class="has-text-align-left" data-align="left"><code>(1)00101</code> → <strong><code>00101</code></strong> = <code>5</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Beispiel c) <code>23 − 16 = 7</code></strong> (6 Bit) → <code>23 + (−16)</code></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Operand</th><th class="has-text-align-left" data-align="left">Bits</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left"><code>23</code></td><td class="has-text-align-left" data-align="left"><code>010111</code></td></tr><tr><td class="has-text-align-left" data-align="left"><code>−16</code></td><td class="has-text-align-left" data-align="left"><code>110000₂ₖ</code></td></tr><tr><td class="has-text-align-left" data-align="left">Summe</td><td class="has-text-align-left" data-align="left"><code>(1)000111</code> → <strong><code>000111</code></strong> = <code>7</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Beispiel d) <code>−3 + (−5) = −8</code></strong> (4 Bit) – zwei negative Zahlen</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Operand</th><th class="has-text-align-left" data-align="left">Bits</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left"><code>−3</code></td><td class="has-text-align-left" data-align="left"><code>1101₂ₖ</code></td></tr><tr><td class="has-text-align-left" data-align="left"><code>−5</code></td><td class="has-text-align-left" data-align="left"><code>1011₂ₖ</code></td></tr><tr><td class="has-text-align-left" data-align="left">Summe</td><td class="has-text-align-left" data-align="left"><code>(1)1000</code> → <strong><code>1000₂ₖ</code></strong> = <code>−8</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">In allen Fällen: addieren, den Übertrag links wegwerfen, fertig. Kein Sonderfall fürs Minus.</p>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Überlauf (Overflow) – wenn das Ergebnis nicht mehr passt</h2>



<p class="wp-block-paragraph">Was passiert, wenn das Ergebnis den Wertebereich sprengt? Beispiel in <strong>3 Bit</strong> (WB <code>[−4 ; 3]</code>):</p>



<p class="wp-block-paragraph"><code>−4 + (−4) = −8</code> — aber <code>−8</code> liegt <strong>außerhalb</strong> von <code>[−4 ; 3]</code>.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th class="has-text-align-left" data-align="left">Operand</th><th class="has-text-align-left" data-align="left">Bits</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left"><code>−4</code></td><td class="has-text-align-left" data-align="left"><code>100₂ₖ</code></td></tr><tr><td class="has-text-align-left" data-align="left"><code>−4</code></td><td class="has-text-align-left" data-align="left"><code>100₂ₖ</code></td></tr><tr><td class="has-text-align-left" data-align="left">Summe</td><td class="has-text-align-left" data-align="left"><code>(1)000</code> → <strong><code>000</code></strong> = <code>0</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (erwartet: <code>−8</code>)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Das Ergebnis <code>0</code> ist schlicht <strong>falsch</strong> – ein klassischer <strong>Integer Overflow</strong>. Die Faustregel zur Erkennung:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Haben beide Summanden <strong>dasselbe Vorzeichen</strong>, das Ergebnis aber ein <strong>anderes</strong>, ist ein Überlauf passiert.</p>
</blockquote>



<p class="wp-block-paragraph">Hier: beide Operanden negativ (MSB <code>1</code>), Ergebnis positiv (MSB <code>0</code>) → Overflow. Genau solche Fehler stecken hinter realen Bugs (vom „Gangnam-Style-Zähler&#8220; bei YouTube bis zu sicherheitskritischen <code>int</code>-Overflows). Wer den Wertebereich im Kopf hat, sieht sie kommen.</p>



<h2 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Zum Selbst-Ausprobieren: PowerShell-Demo</h2>



<p class="wp-block-paragraph">Dieses Skript berechnet Wertebereiche und addiert zwei Zahlen wie eine CPU – inklusive automatischer Overflow-Erkennung:</p>



<pre class="wp-block-code"><code>&lt;#
.SYNOPSIS
    Demonstriert Wertebereiche und Addition im Zweierkomplement (wie eine CPU).
.DESCRIPTION
    Funktionen:
      ConvertTo-TwosComplement   -&gt; Dezimalzahl in 2K-Bitstring (feste Bitbreite)
      Get-TwosComplementRange    -&gt; Wertebereich fuer n Bit
      Add-TwosComplement         -&gt; Addition zweier Zahlen mit Overflow-Erkennung
.NOTES
    Name: PS_Zweierkomplement_Arithmetik
    Author: Andreas Bowitz
    Version: 0.1
    LastUpdated: 2026-Jun-02
#&gt;

function ConvertTo-TwosComplement {
    param(
        &#91;Parameter(Mandatory)]&#91;int]$Value,
        &#91;int]$Bits = 8
    )
    $mask = &#91;int](&#91;math]::Pow(2, $Bits) - 1)
    $tc   = $Value -band $mask
    return &#91;Convert]::ToString($tc, 2).PadLeft($Bits, '0')
}

function Get-TwosComplementRange {
    param(&#91;int]$Bits = 8)
    &#91;PSCustomObject]@{
        Bits  = $Bits
        Min   = -&#91;int]&#91;math]::Pow(2, $Bits - 1)
        Max   =  &#91;int]&#91;math]::Pow(2, $Bits - 1) - 1
        Count = &#91;int]&#91;math]::Pow(2, $Bits)
    }
}

function Add-TwosComplement {
    param(
        &#91;Parameter(Mandatory)]&#91;int]$A,
        &#91;Parameter(Mandatory)]&#91;int]$B,
        &#91;int]$Bits = 4
    )
    $range = Get-TwosComplementRange -Bits $Bits
    $sum   = $A + $B
    # Overflow: Ergebnis liegt ausserhalb des Wertebereichs
    $overflow = ($sum -lt $range.Min) -or ($sum -gt $range.Max)
    &#91;PSCustomObject]@{
        Rechnung = "$A + ($B)"
        Bits     = "$(ConvertTo-TwosComplement $A $Bits) + $(ConvertTo-TwosComplement $B $Bits)"
        Ergebnis = $sum
        Overflow = $overflow
    }
}

# --- Test anhand der Beispiele aus dem Artikel ---
Get-TwosComplementRange -Bits 3                     # Min -4, Max 3, Count 8
Get-TwosComplementRange -Bits 8                     # Min -128, Max 127, Count 256

Add-TwosComplement -A 7  -B -5 -Bits 4              # 2,  Overflow = False
Add-TwosComplement -A -3 -B -5 -Bits 4              # -8, Overflow = False
Add-TwosComplement -A -4 -B -4 -Bits 3              # -8, Overflow = True  (!)</code></pre>



<h2 class="wp-block-heading">Zusammenfassung</h2>



<ul class="wp-block-list">
<li>Mit <strong>n Bits</strong> sind immer <strong>2ⁿ Zahlen</strong> darstellbar.</li>



<li><strong>Wertebereich:</strong> normal <code>[0 ; 2ⁿ−1]</code>, Zweierkomplement <code>[−2ⁿ⁻¹ ; 2ⁿ⁻¹−1]</code>.</li>



<li>Ein Computer <strong>subtrahiert durch Addition</strong> des Zweierkomplements – der Übertrag links wird verworfen.</li>



<li><strong>Überlauf</strong> droht, sobald das Ergebnis den Wertebereich verlässt (gleiches Vorzeichen rein, anderes raus).</li>
</ul>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f448.png" alt="👈" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Zurück zu <strong><a href="#">Teil 1: negative Zahlen darstellen &amp; umrechnen</a></strong>, falls du die Grundlagen der 2K-Darstellung auffrischen willst.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/fisi-zweierkomplement-2k-wertebereiche-rechnen-wie-ein-computer-teil-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lager // Wareneingangskontrolle – vom Karton bis ins Regal</title>
		<link>https://abow.info/ausbildung_fachinformatiker/lager-wareneingangskontrolle-vom-karton-bis-ins-regal/</link>
					<comments>https://abow.info/ausbildung_fachinformatiker/lager-wareneingangskontrolle-vom-karton-bis-ins-regal/#respond</comments>
		
		<dc:creator><![CDATA[Andi Bow]]></dc:creator>
		<pubDate>Tue, 09 Jun 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[Ausbildung Fachinformatiker]]></category>
		<category><![CDATA[Grundlagen]]></category>
		<category><![CDATA[§377 HGB]]></category>
		<category><![CDATA[§438 BGB]]></category>
		<category><![CDATA[Beweislastumkehr]]></category>
		<category><![CDATA[chaotische Lagerung]]></category>
		<category><![CDATA[CollectnTrade]]></category>
		<category><![CDATA[Einzelhandel]]></category>
		<category><![CDATA[FiFo]]></category>
		<category><![CDATA[HGB]]></category>
		<category><![CDATA[Lager]]></category>
		<category><![CDATA[Lagerplatzzuordnung]]></category>
		<category><![CDATA[Logistik]]></category>
		<category><![CDATA[Mängelrüge]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Prüfprotokoll]]></category>
		<category><![CDATA[Verbrauchsgüterkauf]]></category>
		<category><![CDATA[Wareneingangskontrolle]]></category>
		<guid isPermaLink="false">https://abow.info/?p=440</guid>

					<description><![CDATA[Wer einen Handel betreibt – egal ob Center-Warenhaus oder TCG-Shop wie CollectnTrade – steht regelmäßig vor demselben Moment: Der Lieferant stellt die Paletten oder Pakete ab, der Fahrer…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Wer einen Handel betreibt – egal ob Center-Warenhaus oder TCG-Shop wie CollectnTrade – steht regelmäßig vor demselben Moment: Der Lieferant stellt die Paletten oder Pakete ab, der Fahrer drückt dir das Tablet zum Unterschreiben hin, und du hast gefühlt drei Sekunden Zeit. Genau hier entscheidet sich, ob du im Streitfall noch Rechte hast oder ob die Ware „als genehmigt&#8220; gilt. Dieser Beitrag bringt den kompletten Ablauf auf den Punkt: <strong>Annahme → Prüfung → Protokoll → Einlagerung</strong> – inklusive der Rechtsgrundlagen und einem kleinen PowerShell-Helfer fürs Prüfprotokoll.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Hinweis:</strong> Der rechtliche Teil ist nach bestem Wissen recherchiert (Stand 2026), aber keine Rechtsberatung. Im Ernstfall fragst du eine:n Anwält:in oder die IHK.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. Was bei der Warenannahme anfällt – die Checkliste</h2>



<p class="wp-block-paragraph">Die Warenannahme ist die erste Verteidigungslinie. Arbeite sie stur ab, bevor du irgendetwas unterschreibst:</p>



<ul class="wp-block-list">
<li>[ ] <strong>Anschrift prüfen</strong> – Absender und Empfänger korrekt? (Bin ich überhaupt der richtige Empfänger?)</li>



<li>[ ] <strong>Lieferschein <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Bestellung abgleichen</strong> – stimmt die bestellte mit der gelieferten Ware überein?</li>



<li>[ ] <strong>Lieferschein <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> tatsächliche Ware abgleichen</strong> – Menge, Anzahl, Gewicht, Artikelnummern</li>



<li>[ ] <strong>Verpackung auf äußere Schäden prüfen</strong> – Dellen, Nässe, aufgerissene Kartons</li>



<li>[ ] <strong>Tatbestandsaufnahme / Schadensprotokoll</strong> bei sichtbaren Schäden <strong>sofort</strong> erstellen</li>



<li>[ ] <strong>Empfang auf dem Lieferschein bestätigen</strong> – aber mit Vorbehalt, wenn etwas auffällt</li>



<li>[ ] <strong>Unterschrift erst nach der Sichtprüfung</strong> – nicht blind quittieren</li>



<li>[ ] <strong>Unverzügliche Probe / Stichprobe der Ware</strong> – v. a. bei verderblicher oder empfindlicher Ware</li>



<li>[ ] <strong>Erfassung im Warenwirtschaftssystem</strong> (Scanner / Barcode)</li>
</ul>



<p class="wp-block-paragraph"><strong>Praxis-Tipp:</strong> Bei versiegelten Booster-Displays und Cases ist die „unverzügliche Probe&#8220; heikel – ein geöffnetes Display ist nicht mehr verkäuflich. Sinnvoll ist hier eine <strong>Gewichts- und Mengenprüfung auf Kartonebene</strong> sowie das Fotografieren des ungeöffneten Wareneingangs (Zeitstempel!). So hast du Beweise, ohne die Versiegelung zu brechen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">2. Mängel erkennen und richtig einordnen</h2>



<p class="wp-block-paragraph">Nicht jeder Mangel ist gleich. Die Unterscheidung ist wichtig, weil sie über Fristen und Ansprüche entscheidet.</p>



<h3 class="wp-block-heading">Sachmangel (§ 434 BGB)</h3>



<p class="wp-block-paragraph">Die Ware ist nicht so beschaffen wie vereinbart. Typische Fälle:</p>



<ul class="wp-block-list">
<li><strong>Quantitativer Mangel:</strong> zu wenig geliefert (Mengenabweichung)</li>



<li><strong>Falsche Ware:</strong> komplett anderer Artikel als bestellt</li>



<li><strong>Kaputte / unbrauchbare Ware:</strong> Transport- oder Produktionsschaden</li>



<li><strong>Qualitativer Mangel:</strong> Ware entspricht nicht der zugesicherten Eigenschaft</li>



<li><strong>Montagemängel</strong> bzw. Mängel durch eine fehlerhafte Montageanleitung – die sogenannte <strong>„IKEA-Klausel&#8220;</strong> (§ 434 Abs. 4 BGB): Eine falsche Anleitung kann die Ware selbst mangelhaft machen.</li>
</ul>



<h3 class="wp-block-heading">Rechtsmangel (§ 435 BGB)</h3>



<p class="wp-block-paragraph">Die Sache ist durch <strong>Rechte Dritter</strong> belastet – z. B. ein Eigentumsvorbehalt oder eine Lizenz, die du nicht kennst.</p>



<p class="wp-block-paragraph">Zusätzlich gilt: Der Verkäufer haftet auch für <strong>öffentliche Aussagen des Herstellers</strong> (Werbung, Produktangaben). Was in der Werbung versprochen wird, ist Teil der geschuldeten Beschaffenheit.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3. Die Rügepflicht – der Teil, an dem es im Streit hängt</h2>



<p class="wp-block-paragraph">Hier ist der wichtigste rechtliche Punkt, und hier hatte das ursprüngliche Lernmaterial ein paar Stolperfallen (siehe Korrektur-Box unten).</p>



<h3 class="wp-block-heading">Zweiseitiger Handelskauf (beide sind Kaufleute) → § 377 HGB</h3>



<p class="wp-block-paragraph">Wenn <strong>du als Händler beim Lieferanten/Großhändler</strong> kaufst, seid ihr <strong>beide Kaufleute</strong>. Dann gilt die <strong>Untersuchungs- und Rügepflicht</strong> nach § 377 HGB:</p>



<ul class="wp-block-list">
<li><strong>Offene (erkennbare) Mängel:</strong> <strong>unverzüglich</strong> nach Ablieferung untersuchen und rügen.</li>



<li><strong>Versteckte Mängel:</strong> <strong>unverzüglich nach Entdeckung</strong> rügen.</li>



<li><strong>Folge bei Versäumnis:</strong> Die Ware gilt als <strong>genehmigt</strong> (§ 377 Abs. 2 HGB) – du verlierst deine Gewährleistungsrechte gegen den Lieferanten.</li>



<li><strong>Arglistig verschwiegene Mängel:</strong> Hier kann sich der Verkäufer <strong>nicht</strong> auf eine versäumte Rüge berufen (§ 377 Abs. 5 HGB).</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">„Unverzüglich&#8220; heißt juristisch: <strong>ohne schuldhaftes Zögern</strong> (§ 121 BGB) – nicht „sofort&#8220;, aber so schnell wie zumutbar.</p>
</blockquote>



<h3 class="wp-block-heading">Einseitiger Handelskauf (du verkaufst an Endkunden)</h3>



<p class="wp-block-paragraph">Verkaufst du an <strong>Verbraucher</strong> (z. B. dein Shop), ist nur <strong>eine</strong> Seite Kaufmann. Dann gilt § 377 HGB <strong>nicht</strong> für den Kunden: Der Kunde ist <strong>nicht</strong> verpflichtet, unverzüglich zu rügen. Für ihn greift die normale Gewährleistung.</p>



<h3 class="wp-block-heading">Form der Mängelrüge</h3>



<p class="wp-block-paragraph">Mängelrügen sind <strong>formfrei</strong> (mündlich oder schriftlich möglich) – <strong>aber: schriftlich</strong> (E-Mail, Brief) ist immer besser, weil du dann eine <strong>Beweisgrundlage</strong> hast.</p>



<p class="wp-block-paragraph">Und: Mangelhafte Ware musst du auf <strong>Kosten des Lieferanten sorgfältig aufbewahren</strong>, bis die Sache geklärt ist (§ 379 HGB).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">4. Fristen – korrigiert auf die aktuelle Rechtslage</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Korrektur-Box (Plausibilitätsprüfung):</strong> Im ursprünglichen Lernmaterial standen u. a. „7 Jahre&#8220; und „6 Monate Beweislastumkehr&#8220;. Beides ist <strong>nicht (mehr) korrekt.</strong> Hier die aktuelle Fassung:</p>
</blockquote>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Thema</th><th>Frist (aktuell)</th><th>Grundlage</th></tr></thead><tbody><tr><td>Verjährung bei <strong>neuer</strong> beweglicher Ware</td><td><strong>2 Jahre</strong> ab Ablieferung</td><td>§ 438 Abs. 1 Nr. 3 BGB</td></tr><tr><td>Verjährung bei <strong>Bauwerken</strong> / Baustoffen</td><td><strong>5 Jahre</strong></td><td>§ 438 Abs. 1 Nr. 2 BGB</td></tr><tr><td><strong>Arglistig</strong> verschwiegener Mangel</td><td><strong>3 Jahre</strong> (regelmäßige Verjährung)</td><td>§§ 195, 199 BGB</td></tr><tr><td><strong>Gebrauchte</strong> Ware (Verbrauchsgüterkauf)</td><td>Verkürzung auf <strong>min. 1 Jahr</strong> möglich</td><td>§ 476 Abs. 2 BGB</td></tr><tr><td><strong>Beweislastumkehr</strong> beim Verbrauchsgüterkauf</td><td><strong>12 Monate</strong> (seit 01.01.2022, vorher 6)</td><td>§ 477 Abs. 1 BGB</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Beweislastumkehr</strong> heißt: Zeigt sich der Mangel innerhalb der ersten <strong>12 Monate</strong> nach Übergabe, wird <strong>vermutet</strong>, dass er schon bei Übergabe vorhanden war – der <strong>Verkäufer</strong> muss das Gegenteil beweisen. Danach kehrt sich die Last um: Der <strong>Käufer</strong> muss beweisen, dass der Mangel von Anfang an bestand (ggf. per Sachverständigem).</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">5. Mangelfreie Ware einlagern – systematisch vs. chaotisch</h2>



<p class="wp-block-paragraph">Hat die Ware die Prüfung bestanden, geht sie ins Lager. Zwei Grundprinzipien der Lagerplatzzuordnung:</p>



<h3 class="wp-block-heading">Systematische (feste) Lagerplatzzuordnung</h3>



<p class="wp-block-paragraph">Jeder Artikel hat einen <strong>festen Platz</strong>.</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Vorteile:</strong> Ware ohne System/Scanner auffindbar, gute Übersicht, eingespielte Wege</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Nachteile:</strong> schlechte Platzausnutzung (reservierte Plätze bleiben leer), unflexibel bei Sortimentswechsel</li>
</ul>



<h3 class="wp-block-heading">Chaotische (dynamische) Lagerplatzzuordnung</h3>



<p class="wp-block-paragraph">Ware kommt dorthin, wo gerade <strong>Platz frei</strong> ist – das System merkt sich den Ort.</p>



<ul class="wp-block-list">
<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Vorteile:</strong> optimale Platzausnutzung, flexibel, kurze Einlagerwege</li>



<li><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Nachteile:</strong> <strong>funktioniert nur mit IT</strong> (WaWi/Scanner), ohne System praktisch nicht auffindbar</li>
</ul>



<h3 class="wp-block-heading">Allgemeine Einlagerungsregeln</h3>



<ul class="wp-block-list">
<li>Sortieren nach <strong>Gewicht, Volumen, Marke</strong> und <strong>Zugriffshäufigkeit</strong></li>



<li><strong>Schwere Geräte unten, leichtere oben</strong> ins Regal</li>



<li><strong>Teure Geräte übersichtlich &amp; gesichert</strong> lagern</li>



<li>Zusammenhängende Produkte am <strong>gleichen Ort</strong> lagern</li>



<li><strong>FiFo</strong> (First in – First out): zuerst eingelagerte Ware zuerst raus – Pflicht bei verderblicher Ware, sinnvoll bei allem mit „Verfallsdatum&#8220; im weiteren Sinne (bei TCGs: ältere Auflagen/Drucke zuerst).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">6. IT-Praxis: Wareneingang protokollieren mit PowerShell</h2>



<p class="wp-block-paragraph">Damit die Prüfung nicht im Zettelchaos endet, hier ein kleiner Helfer: Er fragt die Eckdaten ab und schreibt einen sauberen, revisionssicheren (<strong>append-only</strong>) Eintrag in eine CSV. Perfekt für ein kleines Lager – und passt zum Prinzip „keine Daten überschreiben&#8220;.</p>



<pre class="wp-block-code"><code>&lt;#
.SYNOPSIS
    Erfasst einen Wareneingang interaktiv und haengt ihn append-only an ein CSV-Protokoll an.

.NOTES
    Name: PS_Wareneingangskontrolle_Protokoll
    Author: Andreas Bowitz
    Version: 0.1
    LastUpdated: 2026-Jun-02
#&gt;

param(
    &#91;string]$ProtokollPfad = "$PSScriptRoot\Wareneingang_Protokoll.csv"
)

# --- Eingaben abfragen ---
$lieferant      = Read-Host "Lieferant"
$lieferschein   = Read-Host "Lieferschein-Nr"
$bestellung     = Read-Host "Bestell-Nr"
$artikel        = Read-Host "Artikel / Set"
$mengeSoll      = Read-Host "Menge SOLL"
$mengeIst       = Read-Host "Menge IST"
$mangel         = Read-Host "Maengel? (leer = keine)"
$pruefer        = Read-Host "Pruefer"

# --- Status automatisch ableiten (kleine Plausi-Pruefung) ---
if ($mengeSoll -ne $mengeIst) {
    $status = "ABWEICHUNG-MENGE"
} elseif (-not &#91;string]::IsNullOrWhiteSpace($mangel)) {
    $status = "MANGEL"
} else {
    $status = "OK"
}

# --- Datensatz bauen ---
$eintrag = &#91;PSCustomObject]@{
    Zeitstempel  = (Get-Date -Format "yyyy-MM-dd HH:mm:ss")
    Lieferant    = $lieferant
    LieferscheinNr = $lieferschein
    BestellNr    = $bestellung
    Artikel      = $artikel
    MengeSoll    = $mengeSoll
    MengeIst     = $mengeIst
    Mangel       = $mangel
    Status       = $status
    Pruefer      = $pruefer
}

# --- Append-only schreiben (Header nur einmalig anlegen) ---
$writeHeader = -not (Test-Path $ProtokollPfad)
$eintrag | Export-Csv -Path $ProtokollPfad -Append -NoTypeInformation `
    -Encoding UTF8 -Delimiter ";" -Force:$false

Write-Host ""
Write-Host "Eintrag gespeichert -&gt; Status: $status" -ForegroundColor Cyan
Write-Host "Protokoll: $ProtokollPfad"</code></pre>



<p class="wp-block-paragraph"><strong>Was der Helfer macht:</strong></p>



<ul class="wp-block-list">
<li>fragt die Pflichtfelder der Prüfung ab,</li>



<li>leitet den <strong>Status automatisch</strong> ab (Mengenabweichung schlägt vor „MANGEL&#8220;),</li>



<li>schreibt <strong>append-only</strong> (kein Überschreiben, kein Datenverlust),</li>



<li>nutzt <code>;</code> als Trennzeichen und UTF-8 → öffnet sich sauber in Excel (DE).</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4a1.png" alt="💡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Ausbaustufe:</strong> Den Zeitstempel + ein Foto des Wareneingangs koppeln (Dateiname = Lieferschein-Nr) – dann hast du im Streitfall sofort Beweis und Protokoll beieinander.</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Fazit</h2>



<p class="wp-block-paragraph">Wareneingangskontrolle ist kein Bürokratie-Selbstzweck, sondern dein <strong>Rechtsschutz an der Rampe</strong>. Die Reihenfolge ist immer gleich: <strong>erst prüfen, dann quittieren</strong> – und im B2B-Einkauf <strong>unverzüglich rügen</strong>, sonst gilt die Ware als genehmigt. Wer dann noch sauber protokolliert (gern digital, append-only) und systematisch einlagert, spart sich später Diskussionen, Geld und Nerven.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://abow.info/ausbildung_fachinformatiker/lager-wareneingangskontrolle-vom-karton-bis-ins-regal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
