Skip to the main content.

ScriptRunner Blog

Werden ChatGPT und AI unser PowerShell Scripting grundlegend verändern?

Inhaltsverzeichnis

 

 

Post Featured Image

Künstliche Intelligenz (KI oder AI, artificial intelligence) ist in aller Munde, doch wie groß ist der Einfluss, den KI beim Scripting haben wird? Unser Autor nimmt das Thema unter die Lupe.

Wow, was für ein Jahr war das für OpenAI/ChatGPT und mit Jahr meine ich die letzte Woche. ChatGPT war und ist in aller Munde. Hast du dir schon die Frage gestellt, was dahinter steckt und ob und wie dich das betrifft? 

ChatGPT ist ein Chatbot mit künstlicher Intelligenz (KI), der von OpenAI entwickelt wurde. Er basiert auf OpenAIs GPT-3.5- und GPT-4-Grundlagenmodellen für große Sprachen (LLMs, large language models) und wurde durch überwachte und verstärkende Lerntechniken einschließlich menschlichen Feedbacks trainiert und verfeinert.

Du kannst ChatGPT kostenlos unter https://chat.openai.com/ testen. Du "programmierst" ChatGPT, indem du "Prompts" erstellst.  Ein Prompt ist ein Text oder eine Anweisung, die dem Modell gegeben wird, um eine Antwort oder eine Ausgabe zu erzeugen.

01_the prompt

Meine Frage bzw. mein Prompt an ChatGPT war, unter Zuhilfenahme von PowerShell, die geraden Zahlen zwischen 1 und 10 aufzulisten. ChatGPT antwortete sowohl mit Code als auch mit einer Erklärung. Ziemlich interessant. Weiter geht's.

 

Das Wort "Chat" in ChatGPT bedeutet genau das. Es ist ein hochentwickelter Chatbot. Ich werde ihm jetzt neun weitere Zeichen als Einzeiler vorgeben, mal sehen was beim Prompt "one-liner" passiert. 

02_one-liner

ChatGPT merkt sich die Unterhaltung und kennt den Kontext! Es nimmt meinen neun Zeichen langen Prompt, "erweitert" ihn und wendet diesen im Kontext unserer Unterhaltung an. Und schon ist ein funktionierendes Beispiel für eine korrekte, ausführbare PowerShell-Zeile entstanden. Bonuspunkt: Es gibt auch Beispiele für die PowerShell-Zeile!

Das alles geschah in weniger als 30 Sekunden, und ich habe GPT-3.5 verwendet. Es gibt ein GPT-4. Es ist auf vielen Ebenen leistungsfähiger.

 

 

Microsoft GitHub Copilot 

Angekündigt im Jahr 2021, lässt es sich am besten als dein KI-Partner in der Tandem-Programmierung beschreiben. Ein intelligenter Entwickler, der zwar Fehler machen kann, der dir aber auch auf unterschiedliche Weise hilft, produktiver zu sein. GitHub Copilot nutzt OpenAI, um Code und ganze Funktionen in Echtzeit vorzuschlagen, direkt im Editor. Es wurde anhand von Milliarden von Codezeilen trainiert und verwandelt Eingabeaufforderungen, die in natürlicher Sprache erfolgen, in Codierungsvorschläge in Dutzenden von Sprachen, einschließlich PowerShell.

Wenn ich Präsentationen über GPT und mein PowerShell-KI-Modul halte (mehr dazu später), verwende ich diese Grafik:

03_will-ai-replace-humans

Wahrscheinlich hast du schon viel über KI gesehen, gehört oder gelesen und Leute getroffen, die KI leugnen, die schwarzsehen und mehr.

KI ist ein Werkzeug, eine Fähigkeit. Wenn du lernst, mit dieser neuen Technologie umzugehen und sie anzuwenden, kannst und wirst du produktiver sein. Die Herausforderung besteht darin, dass du, wie bei jedem anderen neuen Tool, lernen musst, welche Knöpfe und Regler es überhaupt gibt.

Am Anfang von PowerShell war die Übergabe von Objekten über die Pipeline eine neue, "revolutionäre" Idee. Das ist einer der Gründe, warum PowerShell einen sehr produktiv macht. Wir mussten Zeit investieren, um herauszufinden, wie es funktioniert, wie Fehler im Code behoben werden, wenn etwas Unerwartetes passiert, und vieles mehr.

 

 

Ein weiterer Abschnitt

Ich habe 2021 begonnen, GitHub Copilot zu benutzen, dann ChatGPT im Web, als es im November 2022 veröffentlicht wurde. Das Erlernen der Knöpfe und Regler dieser neuen Technologie ist nicht wie das Erlernen von Mathematik oder Softwareentwicklung. Prompt Engineering ist anders, und ich werde hier nicht ins Detail gehen. Ich möchte Mut machen, ChatGPT direkt zu fragen oder auf herkömmliche Weise mehr darüber herauszufinden. Die investierte Zeit wird sich lohnen!

OpenAI bietet auch REST-APIs für den Zugriff auf die GPT-Modelle. Die Modelle sind das, was man anfordert, und sie antworten dann. Da ich ein PowerShell-Experte bin und weiß, dass ich auf diese REST-APIs zugreifen kann, habe ich die PowerShellAI erstellt. Und warum? Zum einen, um diese erstaunliche Technologie tiefer zu erforschen. Der andere Grund ist, dass ich ChatGPT in meiner Konsole und meinen Skripten haben wollte.

Hier ist ein Beispiel für die Verwendung einer der Funktionen im Modul 'copilot'. Man übergibt die Eingabeaufforderung genauso wie bei ChatGPT im Web. Ich möchte wissen, wie ich mich bei Azure anmelden und alle meine Ressourcengruppen mit dem Suffix "-rg" auflisten kann.

04_explain the code

Gib einen Prompt in der Konsole ein und drücke die Eingabetaste. GPT antwortet mit zwei Codezeilen. Die Copilot-Funktion übernimmt die Antwort und führt u. a. eine Syntaxhervorhebung durch. Copilot fragt dann, wie es weitergehen soll. Mit "Y" wird der Code direkt ausgeführt, mit "E" wird GPT aufgefordert, den zurückgegebenen Code zu "erklären", und mit "C" wird er in die Zwischenablage kopiert.

In diesem Beispiel habe ich darum gebeten, den Code zu erklären. Die Antwort ist im Screenshot zu sehen.

Ich benutze Stack Overflow oder Google nur noch selten zum Programmieren. Das wirklich Coole daran ist, dass ChatGPT, PowerShellAI und GitHub Copilot alle die gleichen Modelle verwenden. Der Punkt ist, dass sich mit jedem dieser Tools die eigenen Fähigkeiten im Prompting verbessern können. Jedes stellt die Ergebnisse anders dar: im einen Fall auf einer Webseite, während PowerShellAI es ermöglicht, direkt in der Konsole zu arbeiten und GitHub Copilot es in das Skript in der VS Code IDE einfügt.

 

Produktivität, Produktivität, Produktivität

Ich kann gar nicht genug betonen, wie produktiv das ist, und da bin ich nicht der Einzige. Den intelligenten Techniker stets zur Hand zu haben, ist von unschätzbarem Wert. KI wird dich nicht ersetzen, sondern jemand, der weiß, wie man diese Tools benutzt. Du verkürzen Google- und Stack Overflow-Suchen, Kopieren/Einfügen wird drastisch reduziert, und GPT ist nicht nur auf die Bereitstellung von PowerShell-Code beschränkt. 

 

Übersetzen zwischen Programmiersprachen

Bitte GPT einmal, Code aus einer anderen Programmiersprache zu übersetzen. Hier gehe ich von Python zu PowerShell. Ich benutze Copilot aus der PowerShellAI:

05_translate from python to powershell

Nach der Antwort, drücke ich 'Y', um den Code in der Konsole auszuführen.

Der Wechsel oder das Übersetzen funktioniert natürlich auch von PowerShell zu Python.

Hinweis: Diese Eingabeaufforderung funktioniert in ChatGPT und GitHub Copilot.

 

Fazit 

Die Integration von ChatGPT in die Welt der PowerShell-Skriptentwicklung wird einen tiefgreifenden und dauerhaften Einfluss haben. ChatGPT wird die Branche revolutionieren, indem es IT-Profis und Entwickler:innen die Möglichkeit gibt, effizienter zu arbeiten, effektiver zusammenzuarbeiten und sicherere und konforme Skripte zu erstellen.

Während sich die Zukunft der PowerShell-Entwicklung entfaltet, ist es klar, dass ChatGPT und andere generative KI-Tools eine zentrale Rolle bei der Gestaltung der Art und Weise spielen werden, wie wir unsere IT-Infrastruktur aufbauen, warten und verbessern.

Die Zukunft der PowerShell-Skriptentwicklung ist dank des Aufstiegs von KI-gestützten Entwicklern und der von ChatGPT gebotenen Funktionen aufregend. Unternehmen und IT-Expert:innen müssen diese Fortschritte nutzen, um wettbewerbsfähig zu bleiben und Innovationen in ihren Organisationen voranzutreiben.

Die Integration von ChatGPT in den PowerShell-Prozess wird unsere Entwicklungsmöglichkeiten in Zukunft beschleunigen und verbessern.

 

 

Good2know

Hier kommen Doug's Additional Resources für dich

 

Doug's Tipps zum Abonnieren oder mit Lesezeichen speichern:

 

Hier die Aufzeichnung unserer AMA session!

 

 

Hier entlang zur AMA session!

 

 

 

Weiterführende Links

Zusammenhängende Posts

5 min read

Microsoft Exchange mit PowerShell managen

2 min read

VMUG Webcast: VMware Management meistern mit PowerCLI

Über den Autor: