<?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/"
	xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>PowerShell &#8211; Ilja Schlak InfoSec Blog</title>
	<atom:link href="https://ilja-schlak.de/tag/powershell/feed/" rel="self" type="application/rss+xml" />
	<link>https://ilja-schlak.de</link>
	<description></description>
	<lastBuildDate>Sun, 26 Dec 2021 20:21:13 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://ilja-schlak.de/wp-content/uploads/2019/10/favicon_ilja_schlak_IT-1-150x150.png</url>
	<title>PowerShell &#8211; Ilja Schlak InfoSec Blog</title>
	<link>https://ilja-schlak.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PowerShell &#8211; Cmdlets</title>
		<link>https://ilja-schlak.de/powershell-cmdlets/</link>
					<comments>https://ilja-schlak.de/powershell-cmdlets/#respond</comments>
		
		<dc:creator><![CDATA[Ilja Schlak]]></dc:creator>
		<pubDate>Sat, 27 Feb 2021 10:40:07 +0000</pubDate>
				<category><![CDATA[Nicht kategorisiert]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Windows Server]]></category>
		<guid isPermaLink="false">https://ilja-schlak.de/?p=917</guid>

					<description><![CDATA[<p>PowerShell Cmdlets, Parameter und Aliase: um diese Begriffe geht es in folgenden Artikel. Die PowerShell war f&#252;r die Administration schon immer ein sehr wichtiges Werkzeug. Doch heute nehmen die Virtualisierungs-, Cloud- und Multicloud-Technologien, &#8220;software defined datacenter&#8221; haben im professionellen IT-Umfeld die &#220;berhand. Da ist die PowerShell als eine Automationssprache gefragter denn je. Nicht zu vergessen,...</p>
<p>Der Beitrag <a rel="nofollow" href="https://ilja-schlak.de/powershell-cmdlets/">PowerShell &#8211; Cmdlets</a> erschien zuerst auf <a rel="nofollow" href="https://ilja-schlak.de">Ilja Schlak InfoSec Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>PowerShell Cmdlets, Parameter und Aliase: um diese Begriffe geht es in folgenden Artikel.</p>



<p>Die PowerShell war für die Administration schon immer ein sehr wichtiges Werkzeug. Doch heute nehmen die Virtualisierungs-, Cloud- und Multicloud-Technologien, &#8220;software defined datacenter&#8221; haben im professionellen IT-Umfeld die Überhand. Da ist die PowerShell als eine Automationssprache gefragter denn je. Nicht zu vergessen, dass die PowerShell auch auf Linux und MacOS läuft.</p>



<p>Und natürlich sind die vor nicht all zu langer Zeit eingeführten Verbesserungen ganz nett: Strg+C, Strg+V können <strong>endlich </strong>mal auch in der Konsole benutzt werden; farbige Gestaltung der Konsole, das Einstellen von Transparenzen ist ebenfalls möglich.</p>



<h2 class="wp-block-heading">PowerShell &#8211; Cmdlets</h2>



<p>Die &#8220;Cmdlets&#8221; sind die nichts anderes als PowerShell-Befehle. Ausgesprochen wird es übrigens mit &#8220;Commandlets&#8221;. Neben den Basis-Befehlen, die jede PowerShell Installation mit sich bringt, gibt es zahlreiche PowerShell Erweiterungen. Diese Erweiterung bieten wiederum eine ganze Menge spezialisierter Cmdlets an, zum Beispiel für:</p>



<ul class="wp-block-list">
<li>Exchange Server</li>
<li>SQL Server</li>
<li>Azure</li>
<li>SharePoint</li>
<li>und vieles mehr und zwar in unterschiedlichsten Versionen&#8230;</li>
</ul>



<p>Die Syntax eines Cmdlets ist in der PowerShell sehr konsequent: es besteht aus einen Verb und einem Nomen. Das Verb bestimmt, was gemacht werden sollte, zum Beispiel: &#8220;Set&#8221; oder &#8220;Get&#8221;. Das Nomen ist demnach der Bereich auf das sich das Verb bezieht: sprich womit etwas gemacht werden sollte. Das wären beispielsweise: &#8220;ComputerInfo&#8221;, &#8220;Service&#8221;, &#8220;Date&#8221; und so weiter.</p>



<p>Beispiel:</p>



<pre class="wp-block-code"><code>Get-ComputerInfo</code></pre>



<p>Dieses Cmdlet gibt uns die Informationen über den Computer und zwar ziemlich detailliert.</p>



<div class="wp-block-image">
<figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="223" height="851" class="wp-image-927" src="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets.jpg" alt="Powershell Cmdelts - Get-ComputerInfo" srcset="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets.jpg 223w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-79x300.jpg 79w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-200x763.jpg 200w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-131x500.jpg 131w" sizes="(max-width: 223px) 100vw, 223px" />
<figcaption>Nur ein Ausschnitt. Die vollständige Liste ist doppelt so lang.</figcaption>
</figure>
</div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Wenn man sich nicht sicher ist, welches PowerShell Cmdlet man benutzen sollte, schafft der Befehl &#8220;Get-Command&#8221; oft Abhilfe. Mehr zum den Strategien, um richtige Befehle zu finden gibt es in diesem Beitrag: <a href="https://ilja-schlak.de/powershell-befehle-finden" target="_blank" rel="noreferrer noopener">PowerShell Befehle finden</a></p>
<cite>Praktischer Tipp</cite></blockquote>



<h2 class="wp-block-heading">Powershell Parameter</h2>



<p>Wenn wir jedoch nur bestimmte Eigenschaften &#8220;Properties&#8221; sehen wollen, können wir die sogenannten &#8220;Parameter&#8221; nutzen:</p>



<pre class="wp-block-code"><code>Get-ComputerInfo -Property "*Processor*"</code></pre>



<p>Dieser, doch schon recht ordentlich, spezifizierter Befehl zeigt uns nur eine Eigenschaft: den Prozessor:</p>



<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="600" height="94" class="wp-image-929" src="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-ilja-schlak.jpg" alt="Powershell Cmdlets - Parameter
" srcset="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-ilja-schlak.jpg 600w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-ilja-schlak-300x47.jpg 300w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-ilja-schlak-200x31.jpg 200w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-ilja-schlak-450x71.jpg 450w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-ilja-schlak-350x55.jpg 350w" sizes="(max-width: 600px) 100vw, 600px" />
<figcaption>Mit diesem Powershell Cmdlet wird dank dem Parameter nur die gesuchte Eigenschaft angezeigt.</figcaption>
</figure>
</div>



<p>Das ist auch der Hauptsinn der Parameter: mit einem Parameter passen wir die Cmdlets an unsere Bedürfnisse an. Die Powershell Cmdlets sind auf einen bestimmen Bereich spezialisiert. Dabei gehen sie sehr tief und/oder liefern oft eine (sehr) große Menge an Informationen. Um die Tiefe beziehungsweise die Vollständigkeit, mit der die Commandlets arbeiten, setzen wir die Parameter ein. Und davon gibt es ebenfalls einige. Die PowerShell hilft und dabei mit der Autovervollständigung.</p>



<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" class="wp-image-933" src="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-Parameter.jpg" alt="PowerShell Cmdlet Parameter " width="460" height="182" />
<figcaption>Autovervollständigung in der PowerShell.</figcaption>
</figure>
</div>



<h3 class="wp-block-heading">PowerShell Cmdlets und Argumente</h3>



<p>Wenn wir die PowerShell Hilfe aufrufen, sehen wir die Angaben zu der Syntax:</p>



<pre class="wp-block-code"><code>Get-Service -?</code></pre>



<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" class="wp-image-941" src="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-Hilfe-ilja-schlak.jpg" alt="Powershell Syntax" width="500" height="182" srcset="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-Hilfe-ilja-schlak.jpg 500w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-Hilfe-ilja-schlak-300x109.jpg 300w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-Hilfe-ilja-schlak-200x73.jpg 200w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-Hilfe-ilja-schlak-450x164.jpg 450w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlets-Hilfe-ilja-schlak-350x127.jpg 350w" sizes="auto, (max-width: 500px) 100vw, 500px" />
<figcaption>Angaben zur Syntax innerhalb der PowerShell Hilfe</figcaption>
</figure>
</div>



<p>Hinter der eckigen Klammer &#8220;[-Name]&#8221;, die für Parameter steht, sehen wir den &#8220;&lt;string[]&gt;&#8221;. Hier können den Parameter mit weiteren Argumenten versehen. Das gibt uns wiederum die Möglichkeit das PowerShell Cmdlet noch genauer zu spezifizieren. Hierzu können wir die Argumente mit einem Komma getrennt hintereinander aufzählen:</p>



<pre class="wp-block-code"><code>Get-Service -Name Dhcp,dnscache</code></pre>



<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="365" height="110" class="wp-image-942" src="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Argumente.jpg" alt="Powershell Cmdelts und Argumente" srcset="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Argumente.jpg 365w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Argumente-300x90.jpg 300w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Argumente-200x60.jpg 200w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Argumente-350x105.jpg 350w" sizes="auto, (max-width: 365px) 100vw, 365px" />
<figcaption>Cmdlet: Get-Service; Parameter: Name; Argumente: dhcp, dnscache</figcaption>
</figure>
</div>



<p>Folgendes sollte man jedoch beachten: fehlt die eckige Klammer [] hinter dem &#8220;string&#8221;, so ist nur ein Argument zulässig. Ein Beispiel hierfür wäre das Cmdlet &#8220;Get-EventLog&#8221;:</p>



<pre class="wp-block-code"><code>Get-EventLog -?</code></pre>



<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" class="wp-image-943" src="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlet-Argumente-ilja-schlak.jpg" alt="Powershell String ohne eckige Klammern" width="563" height="125" srcset="https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlet-Argumente-ilja-schlak.jpg 750w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlet-Argumente-ilja-schlak-300x66.jpg 300w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlet-Argumente-ilja-schlak-200x44.jpg 200w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlet-Argumente-ilja-schlak-450x100.jpg 450w, https://ilja-schlak.de/wp-content/uploads/2021/02/PowerShell-Cmdlet-Argumente-ilja-schlak-350x77.jpg 350w" sizes="auto, (max-width: 563px) 100vw, 563px" />
<figcaption>Hier sind keine eckigen Klammern zu sehen. Es ist nur ein Argument zulässig.</figcaption>
</figure>
</div>



<p>Unter Angabe der Parameter und Argumente lassen sich die PowerShell Cmdlets schon wesentlich einfacher aber auch effizienter handhaben. Hoffentlich diente dieser kurze Beitrag einer Übersicht über die Handhabe der Cmdlets. Weiterführende Informationen sind auf der Docs-Seite von Microsoft zu finden: <a href="https://docs.microsoft.com/de-de/powershell/scripting/developer/cmdlet/cmdlet-overview?view=powershell-7.1" target="_blank" rel="noreferrer noopener nofollow">https://docs.microsoft.com/de-de/powershell/scripting/developer/cmdlet/cmdlet-overview?view=powershell-7.1</a></p>
<p>Der Beitrag <a rel="nofollow" href="https://ilja-schlak.de/powershell-cmdlets/">PowerShell &#8211; Cmdlets</a> erschien zuerst auf <a rel="nofollow" href="https://ilja-schlak.de">Ilja Schlak InfoSec Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ilja-schlak.de/powershell-cmdlets/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
