{"id":526,"date":"2023-03-26T13:51:17","date_gmt":"2023-03-26T13:51:17","guid":{"rendered":"https:\/\/kastens.net\/WPSub\/dokumentation\/?page_id=526"},"modified":"2025-10-26T17:42:12","modified_gmt":"2025-10-26T17:42:12","slug":"powershell","status":"publish","type":"page","link":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/?page_id=526","title":{"rendered":"Powershell"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Darf ich ein Skript ausf\u00fchren?<\/h2>\n\n\n\n<p>Die Powershell ist grunds\u00e4tzlich restriktiv. Skripte werden nur ausgef\u00fchrt, wenn diese vertrauensw\u00fcrdig sind. Man kann den Status wie folgt abfragen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PS C:\\Users\\Matze&gt; Get-ExecutionPolicy -List\n\n        Scope ExecutionPolicy\n        ----- ---------------\nMachinePolicy Undefined\n   UserPolicy Undefined\n      Process Undefined\n  CurrentUser Undefined\n LocalMachine Undefined<\/code><\/pre>\n\n\n\n<p>Im Beispiel sind alle Scopes undefined. Um nicht signierte Skripte auszuf\u00fchren, muss man folgendes machen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PS C:\\Users\\Matze&gt; Set-ExecutionPolicy Unrestricted CurrentUser<\/code><\/pre>\n\n\n\n<p>Ergebnis:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PS C:\\Users\\Matze&gt; Get-ExecutionPolicy -List\nScope ExecutionPolicy\n----- ---------------\nMachinePolicy Undefined\nUserPolicy Undefined\nProcess Undefined\nCurrentUser Unrestricted\nLocalMachine Undefined<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Netzwerkcommandos<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Ersatzm\u00f6glichkeiten f\u00fcr alte bekannte Commands<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">ipconfig<\/h4>\n\n\n\n<p>Zur Anzeige der Netzwerkkonfiguration sind geeignet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetIPConfiguration<\/code><\/pre>\n\n\n\n<p>Liefert eine sehr gute \u00dcbersicht, die dem alten ipconfig \u00e4hnelt, aber noch etwas \u00fcbersichtlicher ausf\u00e4llt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetIPAddress | Sort InterfaceIndex | FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress, PrefixLength -Autosize<\/code><\/pre>\n\n\n\n<p>Ergibt eine Auflsitung aller Netzwerkadapter als Tabelle mit ipv4 und ipv6 Informationen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetIPAddress | ? AddressFamily -eq IPv4 | FT \u2013AutoSize<\/code><\/pre>\n\n\n\n<p>Dies f\u00fchrt zu einer \u00dcbersicht der IPv4 Adressen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetAdapter Wi-Fi | Get-NetIPAddress | FT -AutoSize<\/code><\/pre>\n\n\n\n<p>Hier wird eine \u00dcbersicht der WLAN Adapter erzeugt (so ein entsprechender Adapter verf\u00fcgbar ist).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ping<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Test-NetConnection www.spiegel.com<\/code><\/pre>\n\n\n\n<p>Liefert ein vereinfachtes Feedback zur Erreichbarkeitsinformation.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Test-NetConnection -ComputerName www.spiegel.de -InformationLevel Detailed<\/code><\/pre>\n\n\n\n<p>Hier werden weitere Details (insbesondere Namensaufl\u00f6sung) mit eingebleblendet.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Test-NetConnection -ComputerName www.spiegel.de | Select -ExpandProperty PingReplyDetails | FT Address, Status, RoundTripTime<\/code><\/pre>\n\n\n\n<p>Dies liefert eine knappe \u00dcbersicht zur IP-Adresse und deren Erreichbarkeit.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1..10 | % { Test-NetConnection -ComputerName www.spiegel.de } | FT -AutoSize<\/code><\/pre>\n\n\n\n<p>Hier wird das command 10 mal nacheinander ausgef\u00fchrt und die Ergebnisse werden \u00fcbersichtlich in einer Tabelle dargestellt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Test-NetConnection -ComputerName www.spiegel.de -InformationLevel Detailed -RemotePort 80<\/code><\/pre>\n\n\n\n<p>Dieses Befehl testet auf einen definierten TCP Port<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">nslookup<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Resolve-DnsName www.spiegel.de<\/code><\/pre>\n\n\n\n<p>Liefert einen sehr detaillierten Output zur Namensaufl\u00f6sung (inkl. IPv6).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Resolve-DnsName spiegel.de -type SOA<\/code><\/pre>\n\n\n\n<p>Dies liefert die SOA Records zu einem Host. Achtung das Ergebnis ist f\u00fcr Subdomains nicht identisch. Vergleiche:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Resolve-DnsName www.spiegel.de -type SOA<\/code><\/pre>\n\n\n\n<p>www.spiegel.de l\u00f6st auf einen anderen Anbieter \/ Host auf und daher erh\u00e4lt man andere SOA Informationen!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Resolve-DnsName spiegel.de -Server 8.8.8.8 \u2013Type A<\/code><\/pre>\n\n\n\n<p>Dies ist ein Beispiel f\u00fcr Namensaufl\u00f6sung durch einen gezielkten DNS-Server (8.8.8.8) und es werden als Ergebnis nur IPv4 Adressen geliefert (A-Records)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Route<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetRoute -Protocol Local -DestinationPrefix 192.168*<\/code><\/pre>\n\n\n\n<p>Fragt alle Routen ab, die im passenden Prefix definiert sind.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetAdapter Ethernet | Get-NetRoute<\/code><\/pre>\n\n\n\n<p>Dies zeigt alle Routen zu einem definierten Adapter an (Hier der physikalische Ethernet Adapter).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tracert<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Test-NetConnection www.spiegel.de \u2013TraceRoute<\/code><\/pre>\n\n\n\n<p>Liefert einen deutlich schnelleren Output als das normale tracert und checkt sowohl IPv4 als auch IPv6<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Netstat<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetTCPConnection | Group RemoteAddress | FT Count, Name -Autosize<\/code><\/pre>\n\n\n\n<p>Dies liefert eine \u00dcbersicht aller Verbindungen, wobei anhand der Zieladresse gruppiert wird und die Anzahl der Verbindungen gez\u00e4hlt werden.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-NetTCPConnection | findstr 2a01:238:20a:202:54f0::1103<\/code><\/pre>\n\n\n\n<p>Dies liefert Detailinformationen zu einem der Ziele<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Einige Windows Grundeinstellungen<\/h2>\n\n\n\n<p>Die einzelnen Steps werden nachfolgend etwas erkl\u00e4rt, hier aber einmal die gesamte Zusammenstellung f\u00fcr eine Ausf\u00fchrung <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">a) im jeweiligen User Kontext, also Powershell ohne Adminrechte:<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>New-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\ContentDeliveryManager\" -Force -Name \"SubscribedContent-338389Enabled\" -PropertyType DWORD -Value 0\n\nNew-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\ContentDeliveryManager\" -Force -Name \"SubscribedContent-338389Enabled\" -PropertyType DWORD -Value 0\n\nNew-Item \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement\"\n\nNew-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement\" -Force -Name \"ScoobeSystemSettingEnabled\" -PropertyType DWORD -Value 0\n\nNew-ItemProperty -Path \"HKCU:Software\\Microsoft\\Windows\\CurrentVersion\\Search\" -Force -Name \"SearchboxTaskbarMode\" -PropertyType DWORD -Value 1<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">b) Und hier die Einstellungen, die als Admin vorzunehmen sind (HKLM):<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>New-Item -Path \"HKLM:\\Software\\Policies\\Microsoft\\Dsh\"\n\nNew-ItemProperty -Path \"HKLM:\\Software\\Policies\\Microsoft\\Dsh\" -Name \"AllowNewsAndInterests\" -Value 0 -PropertyType DWORD -Force<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">und hier wie versprochen ein paar Hintergrundinfos:<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">&#8222;Tipps und Vorschl\u00e4ge erhalten, wenn Windows benutzt wird&#8220; ausschalten<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>New-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\ContentDeliveryManager\" -Force -Name \"SubscribedContent-338389Enabled\" -PropertyType DWORD -Value 0<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">&#8222;Willkommens-Dialog nach Updates&#8220; ausschalten<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>New-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\ContentDeliveryManager\" -Force -Name \"SubscribedContent-338389Enabled\" -PropertyType DWORD -Value 0<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">&#8222;M\u00f6glichkeiten vorschlagen um Windows optimal zu nutzen \/ Ger\u00e4teeinrichtung abzuschliessen&#8220;<\/h4>\n\n\n\n<p>Hier geh\u00f6rt der Schl\u00fcssel selbst nicht zum Standardinstalltionsumfang, daher zuerst anlegen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>New-Item \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement\"<\/code><\/pre>\n\n\n\n<p>und dann darin einen entsprechenden Wert setzen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>New-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\UserProfileEngagement\" -Force -Name \"ScoobeSystemSettingEnabled\" -PropertyType DWORD -Value 0<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Suchfeld auf Icon reduzieren<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>New-ItemProperty -Path \"HKCU:Software\\Microsoft\\Windows\\CurrentVersion\\Search\" -Force -Name \"SearchboxTaskbarMode\" -PropertyType DWORD -Value 1<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Widgets deaktivieren (nach n\u00e4chster Anmeldung) &#8211; Admin-Shell<\/h4>\n\n\n\n<p>Schl\u00fcssel erzeugen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>New-Item -Path \"HKLM:\\Software\\Policies\\Microsoft\\Dsh\"<\/code><\/pre>\n\n\n\n<p>Wert setzen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>New-ItemProperty -Path \"HKLM:\\Software\\Policies\\Microsoft\\Dsh\" -Name \"AllowNewsAndInterests\" -Value 0 -PropertyType DWORD -Force<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Standardbrowser anpassen (hier Firefox) &#8211; Admin-Shell<\/h4>\n\n\n\n<p>Erstmal nur http und https URLs!<br>Aktuelle Einstellung abfragen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Get-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\*\"\nGet-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\https\\*\"<\/code><\/pre>\n\n\n\n<p>\u00c4nderung vornehmen<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Set-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http' -Name 'Progid' -Value 'FirefoxURL'\nSet-ItemProperty -Path 'HKCU:\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\https' -Name 'Progid' -Value 'FirefoxURL'<\/code><\/pre>\n\n\n\n<p>Next<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Darf ich ein Skript ausf\u00fchren? Die Powershell ist grunds\u00e4tzlich restriktiv. Skripte werden nur ausgef\u00fchrt, wenn diese vertrauensw\u00fcrdig sind. Man kann den Status wie folgt abfragen: Im Beispiel sind alle Scopes undefined. Um nicht signierte Skripte auszuf\u00fchren, muss man folgendes machen: Ergebnis: Netzwerkcommandos Ersatzm\u00f6glichkeiten f\u00fcr alte bekannte Commands ipconfig Zur Anzeige der Netzwerkkonfiguration sind geeignet: Liefert eine sehr gute \u00dcbersicht, die dem alten ipconfig \u00e4hnelt, aber noch etwas \u00fcbersichtlicher ausf\u00e4llt. Ergibt&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":368,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-526","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=\/wp\/v2\/pages\/526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=526"}],"version-history":[{"count":9,"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=\/wp\/v2\/pages\/526\/revisions"}],"predecessor-version":[{"id":617,"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=\/wp\/v2\/pages\/526\/revisions\/617"}],"up":[{"embeddable":true,"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=\/wp\/v2\/pages\/368"}],"wp:attachment":[{"href":"https:\/\/www.kastens.net\/WPSub\/dokumentation\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}