Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PowerShell Variablen zwischen Skripten übergeben

Mitglied: BeyondHell

BeyondHell (Level 1) - Jetzt verbinden

25.03.2020 um 15:09 Uhr, 322 Aufrufe, 13 Kommentare, 6 Danke

Hallo,

ich hoffe ich bin hier richtig.
Mit PowerShell habe ich erst vor kurzem angefangen. Derzeit stehe ich vor folgendem Problem:

Skript 1: Grafische Oberfläche zur Abfrage einer ID, Prüfung dieser ID, Ausführen von Skript 2 wenn Abfrage der ID erfolgreich

Skript 2: Grafische Oberfläche zur Auswahl verschiedener durchführbarer Prozesse (weitere PowerShell Skripte)

Skript 3: Grafische Oberfläche für in Skript 2 gewählte Prozesse, falls für die Durchführung der Prozesse noch spezifische Daten angegeben werden müssen.

Skript 4 und mehr: die ganzen Skripte, die im Hintergrund ausgeführt werden sollen, wenn der Nutzer sie über Skript 1-3 auswählt.

Von Skript 1 muss ich zu Skript 2 also die ID übergeben. Von Skript 2 muss ich die ID den ausgewählten Skripten übergeben. Falls weitere Daten angegeben werden müssen wird die ID also auch in Skript 3 benötigt, von wo aus die ID und die dort angegebenen Daten an das letztendlich auszuführende Skript übergeben werden muss.

Ich hoffe ich konnte einigermaßen verständlich erklären um was es geht. Könnte mir wer erklären wie ich die Variablen am besten übergebe? Im Idealfall einfach bei der Übergabe der ID von Skript 1 zu Skript 2. Ich habe zwar Anleitungen gelesen, aber da waren mir die Beispiele zu abstrakt. Wenn ich es ein mal konkret bei meinem Problem korrekt angewendet sehe, dann kann ich es i.d.R. in Zukunft auch selbstständig selbst einsetzen. Dann macht es auch bei mir Klick.

Vielen lieben Dank!
Mitglied: Kraemer
25.03.2020 um 15:24 Uhr
Moin,

Parameter (param) ist dein Freund: https://www.script-example.com/powershell-skript

Gruß
Bitte warten ..
Mitglied: BeyondHell
25.03.2020 um 15:30 Uhr
So wie ich das bisher verstanden habe muss man die Parameter am Anfang deklarieren. Das wäre dann nicht möglich, denn die ID bekomme ich erst zur Laufzeit. Oder ist mit "am Anfang" wie es in vielen Anleitungen genannt wird, lediglich vor der Übergabe gemeint?
Danke für die schnelle Antwort!
Bitte warten ..
Mitglied: Kraemer
25.03.2020 um 15:35 Uhr
Zitat von BeyondHell:

So wie ich das bisher verstanden habe muss man die Parameter am Anfang deklarieren.
wo denn auch sonst? Du willst ja schließlich abhängig von dem Wert arbeiten

Das wäre dann nicht möglich, denn die ID bekomme ich erst zur Laufzeit.
die ist schon klar, das dein Script 1 keinen param braucht? Eben genau aus den von dir genannten Gründen

BTW: 2 kleine Testscripte hätte man in 2 Minuten geschrieben und könnte daraus eine Menge lernen und ableiten

Gruß
Bitte warten ..
Mitglied: erikro
25.03.2020 um 15:56 Uhr
Moin,

Zitat von BeyondHell:

So wie ich das bisher verstanden habe muss man die Parameter am Anfang deklarieren. Das wäre dann nicht möglich, denn die ID bekomme ich erst zur Laufzeit. Oder ist mit "am Anfang" wie es in vielen Anleitungen genannt wird, lediglich vor der Übergabe gemeint?
Danke für die schnelle Antwort!

Am Anfang heißt am Anfang. Vor dem PARAM-Block darf nichts stehen. So mal auf die Schnelle in Pseudocode:

Guckst Du auch hier:
https://www.msxfaq.de/code/powershell/psparam.htm

hth

Erik
Bitte warten ..
Mitglied: mayho33
25.03.2020 um 16:08 Uhr
Zitat von BeyondHell:

So wie ich das bisher verstanden habe muss man die Parameter am Anfang deklarieren.

Also! Du hast 2 Möglichkeiten. Entweder übergibst du einem Script die Argumente außerhalb einer Function:


oder innerhalb einer Function:

Im Beispiel 1 kannst du das Script und seine Parameter direct ansprechen:
Im Bespiel 2 geht das so:
Functions machst du, weil du so mehrere Methoden in einem File anlegen kannst und diese dann auch einzeln ansprechen kannst. Sprich: Bessere Steuerung.
Außerdem dient es der Lesbarkeit des Codes. Eine einzelne Function ist besser zu verstehen als 4 km Würstelcode.

Grüße!
Bitte warten ..
Mitglied: BeyondHell
25.03.2020 um 16:35 Uhr
So langsam machts Klick bei mir. Gerade das, was du hier geschrieben hast bringt mich ein ganzes Stück weiter. Vielen Dank dafür!
___

Ich hoffe ihr interpretiert die Fragen hier nicht einfach als Faulheit. Anleitungen, YT Videos,... Da war echt so vieles dabei und ich habe es wirklich nicht verstanden.
Bei C# wars recht ähnlich. Klassen erstellen und Aufrufen mit Parameterübergabe war für mich eine Katastrophe. Da habe ich die Anleitungen auch erst verstanden nachdem mir das bei meinem Code gezeigt wurde, obwohl es da komplizierter war. Danach war es mir auch unbegreiflich wie ich das nicht verstehen konnte. Bei meinen Scripten denke ich immer ein wenig mit "Gegenständen". Da habe ich alles bildlich vor mir, damit kann ich arbeiten. Sobald ich keinen effektiven Nutzen dahinter sehe und damit nichts bildliche habe wirds problematisch.
Ich werde das Ganze jetzt erst mal in abgespeckter Version ohne die GUI testen, falls es klappt dann auch im eigentlichen Script und mich so oder so nochmal melden.
Bitte warten ..
Mitglied: mayho33
25.03.2020 um 16:57 Uhr
Zitat von BeyondHell:

So langsam machts Klick bei mir. Gerade das, was du hier geschrieben hast bringt mich ein ganzes Stück weiter. Vielen Dank dafür!

Sehr gut! Zum Scripten in PS verwendest du am besten die ISE. Ist on Board und wirklich nicht schlecht. Du kannst mit F9 Haltepunkte setzen und schauen was in der Variablen so abläuft.

Hat mir anfangs sehr geholfen und ich verwende sie auch jetzt noch zum Entwickeln.
Bitte warten ..
Mitglied: BeyondHell
25.03.2020 um 18:59 Uhr
Ich habe definitiv einen Fehler beim Aufrufen von Script 2. Start-Process führt zum Öffnen der entsprechenden Textdatei.

Wie setze ich den Pseudo-Code von erikro an der Stelle "Skript.ps1 -id $ID" korrekt um?
Bitte warten ..
Mitglied: erikro
25.03.2020 um 19:02 Uhr
Wie wäre es, wenn Du uns mal zeigst, was Du hast? Bitte um das Skript < code> und </ code> (ohne die Leertasten) schreiben.
Bitte warten ..
Mitglied: BeyondHell
26.03.2020 um 07:40 Uhr
Eine 3/4 Nacht und 1h Schlaf später hab ichs gebacken bekommen. Jetzt stellt sich wie üblich die Frage, was daran so schwer war. An einigen anderen Stellen konnte ich es schon erfolgreich anwenden. Bei einer bastel ich gerade noch rum. Eine foreach-Schleife zur dynamischen Erstellung der Button-Click-Events. Mal sehen wie es da läuft. Ich muss jetzt weiter arbeiten, das Projekt müsste schon längst fertig sein.
Danke für eure Hilfe!
Bitte warten ..
Mitglied: mayho33
26.03.2020 um 10:24 Uhr
Zitat von BeyondHell:

Bei einer bastel ich gerade noch rum. Eine foreach-Schleife zur dynamischen Erstellung der Button-Click-Events.

Ich frage mich warum du unbedingt schon in der mittlerern Liga mitspielen willst, wenn du noch nicht mal die Grundlagen verstanden hast. So nagelst du dir nur selbst Bretter an den Kopf.

BSP:
  • Was ist ein Verb?
  • was ist ein Noun?
  • Wie setzen sich die Befehle in PS zusammen?
  • Was ist Piping und wie funktioniert es?
  • Was sind die Grund-Befehle in PS?
  • Das Dot.Net-Framework: Wie spreche ich es an?
  • Wie erstelle ich mir ein Objekt aus XY des Framework?

und wenn du von den Fragen oben einmal wenigstens eine Ahnung hast, dann kannst du dich mit dynamische Ereignissen befassen.
Schau dir nochmal die Grundlagen an. Bastel ein paar kleine Scripts und Methoden. Kombiniere sie, binde DLLs ein.

Nicht falsch verstehen! Ich will auch lieber die Lösung anstatt mich damit befassen zu müssen. Gegen Ende der Entwicklung musste ich aber meistens erkennen, dass es entweder..

  • schon ganz einfache Lösungen gab
  • PS, C#, sogar VBS in ihren Tiefen die Lösung auch schon liefern. Man muss sie nur kennen.

Grüße!
Bitte warten ..
Mitglied: BeyondHell
26.03.2020 um 15:08 Uhr
Anweisung von oben, da kann ich leider nichts machen. Mir wäre es auch lieber ich würde Grundlagen zuerst lernen.
Das ist nicht nur im Bereich PowerShell so.
Ich versuche außerhalb der Ausbildung Wissen zu erlangen, aber da komme ich im Prinzip nicht hinterher. Es heißt nur "mach mal, Google ist dein Freund, bis dahin muss das Ding fertig sein". In dem Fall unter der Anforderung dynamischer Aufbau wo es nur geht
Bitte warten ..
Mitglied: erikro
26.03.2020 um 15:22 Uhr
Zitat von BeyondHell:

Anweisung von oben, da kann ich leider nichts machen. Mir wäre es auch lieber ich würde Grundlagen zuerst lernen.
Das ist nicht nur im Bereich PowerShell so.
Ich versuche außerhalb der Ausbildung Wissen zu erlangen, aber da komme ich im Prinzip nicht hinterher. Es heißt nur "mach mal, Google ist dein Freund, bis dahin muss das Ding fertig sein". In dem Fall unter der Anforderung dynamischer Aufbau wo es nur geht

Hmmmmm, alle jammern über den Fachkräftemangel aber keiner will vernünftig ausbilden.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Skript fehlerhaft?
Frage von SpeakerSTBatch & Shell3 Kommentare

Hallo, ich habe mir ein Powershell Skript geschriebe was bisher auch immer funktioniert hat aber unter einem Windows Server ...

Batch & Shell
Powershell CHAT Skript
gelöst Frage von xpxy15Batch & Shell5 Kommentare

Hallo Zusammen Ich möchte gerne ein Skript schreiben. Mit dem man in Lokalen Netz verschlüsselt "chatten" kann. Meine Frage ...

Batch & Shell
Powershell Skript unsichtbar starten
gelöst Frage von paupau90Batch & Shell1 Kommentar

Hallo zusammen, im Augenblick rufe ich Batch Skripte wie folgt auf: invisible.vbs Leider habe ich es noch nicht hinbekommen ...

Windows Server
Powershell Skript Resize Disk
Frage von winlinWindows Server20 Kommentare

Ich habe folgenden Zweizeiler und versuche über einen Task Scheduler meine Disk nach dem ersten Neustart zu "resizen". Leider ...

Neue Wissensbeiträge
Informationsdienste

Leistungsschutzrecht: Ein neuer Diskussionsentwurf liegt vor

Information von Frank vor 1 TagInformationsdienste7 Kommentare

Anfang April (leider kein Scherz) hat das Bundesjustizministerium den nächsten ausformulierten Referentenentwurf für ein "erstes Gesetz zur Anpassung des ...

Instant Messaging

Videokonferenz oder Chatsystem für das Homeoffice

Information von Frank vor 1 TagInstant Messaging6 Kommentare

Ich hatte es bereits in einem Kommentar gepostet, da ich aber viele Nachfragen dazu bekam, hier noch mal meine ...

Off Topic

Ein wenig Aufklärung über Corona von Bill Gates persönlich

Information von Frank vor 2 TagenOff Topic24 Kommentare

Amerika hat ein Problem: Die Arroganz des sehr klugen Präsidenten führte zur aktuellen Corona-Krise in den USA. Was jetzt ...

Off Topic
3D-Drucker gegen Corona - helft mit!
Information von DerWoWusste vor 2 TagenOff Topic12 Kommentare

Unter vorigem Link sind Anleitungen, wie man sich mit seinem 3D-Drucker an der Produktion (Druck) von Bauteilen für Atemmasken ...

Heiß diskutierte Inhalte
Windows Server
Windows 7 wird im WSUS nicht angezeigt
gelöst Frage von DavidHergWindows Server24 Kommentare

Guten Abend zusammen, nachdem sich die Frage mit meinem WSUS erledigt hat und somit alles jetzt funktioniert, hab ich ...

Off Topic
Ein wenig Aufklärung über Corona von Bill Gates persönlich
Information von FrankOff Topic24 Kommentare

Amerika hat ein Problem: Die Arroganz des sehr klugen Präsidenten führte zur aktuellen Corona-Krise in den USA. Was jetzt ...

Windows Server
Hyper-V VM vorm Admin absichern
Frage von MarabuntaWindows Server24 Kommentare

Hallo, wie bekomme ich eine VM in WS 2012 Hyper-V soweit abgetrennt, dass ein Admin ohne Passwort keinen (leichten) ...

Festplatten, SSD, Raid
Storage Wahl für Virtualisierungsumgebung
Frage von Le2000Festplatten, SSD, Raid11 Kommentare

Hallo allerseits, da ich bereits seit einiger Zeit aus der Materie ausgestiegen war und mich allmählich wieder einarbeite, wüsste ...