gelöst Powershell - Werte von Variablen zwischen Skripten hin un her geben

Mitglied: Sonny1895

Sonny1895 (Level 1) - Jetzt verbinden

2020/10/15 um 09:15 Uhr, 253 Aufrufe, 3 Kommentare

Hallo zusammen,

Ich bin relativ neu in der Powershell Welt. Habe zwar schon einiges umgesetzt bekommen gelange jetzt aber an meine Grenzen und finde kein passendes Microsoft Doc zu meinem Thema/Problem.


Ich arbeite gerade an Skripten die auf 2 verschiedenen Computern ausgeführten werden sollen.

Die Skripte werden auf einem Netzlaufwerk gespeichert und beide Computer bzw. die Angemeldeten Benutzer haben darauf Vollzugriff.


Skript 1 auf Computer 1:

Hier sammel ich Informationen und Speicher diese in Variablen. Wenn das sammeln Erfolgreich ist öffne ich eine PS-Session zu Computer 2 und Starte dort ein Skript und Übergebe die Variablen (param).

Nun möchte ich in Sjript 1 warten bis ich eine Variable (Inhalt 0 = nicht Erfolgreich 1 = Erfolgreich) von Skript 2 zurück bekomme damit Skript 1 die PS-Session beendet und weiter Arbeiten kann.


Skript 2 auf Computer 2:

Mit den Übergebenen Informationen erstelle ich ein Postfach und prüfe dann ob das Postfach auch angelegt wurde. Je nach Ertfolg oder nicht wird eine Variable mit 0 oder 1 erstellt.

Diese soll an Skript 1 zurückgegeben werden.



Frage:

Funktioniert mein Plan überhaupt? Oder kann ich wahlweise aus dem Skript 1 heraus variablen in Skript 2 auf Inhalt prüfen?


Für jede Hilfe bin ich dankbar.

Viele Grüße
Patrick
Mitglied: TK1987
LÖSUNG 2020/10/15, aktualisiert um 10:14 Uhr
Moin Patrick,

Zitat von Sonny1895:
Wenn das sammeln Erfolgreich ist öffne ich eine PS-Session zu Computer 2 und Starte dort ein Skript und Übergebe die Variablen (param).
Wenn ich dich richtig verstehe, machst du das mit Enter-Pssession?! Dieser Befehl ist eigentlich nur dazu gedacht, um manuell Remote zu arbeiten.
Arbeite stattdessen mit Invoke-Command, dann bekommst du auch die Ausgaben zurück, die dir der Remote-Rechner liefert.

Wichtig ist nur, das du separierst, welche Variablen lokal ausgewertet werden (also übergeben) werden sollen; und welche erst auf dem Remoterechner ausgewertet werden sollen.
Beispiel:
Gruß Thomas
Bitte warten ..
Mitglied: Sonny1895
2020/10/15 um 12:49 Uhr
Hi Thomas,

danke für die Antwort.

ich habe ausprobiert und bei mit gibt er nur den 2ten Wert aus.

# Auszuführende Befehle
$Script = @(
'write-host $Env:Computername' # Die Variable wird erst auf dem Remoterechner ausgewertet, da in Single-Qutoes
"write-host $Env:Computername" # Die Variable wird bereits lokal ausgewertet, da in Double-Quotes
)

Invoke-Command -ComputerName 'PC02' -Credential $Cred -ScriptBlock ([scriptblock]::Create($Script -Join ';'))
</code>

invoke-command_scriptblock - Klicke auf das Bild, um es zu vergrößern


Ein Problem was bei der Methode entsteht ist, das ich ein Com-Objekt erstellen muss um das Postfach per Powershell anlegen zu können, das aber über Invoke-Command in einen Fehler läuft. Da das Erstellen des Com-Objektes lokal auf der Maschine funktioniert, war die idee ein Script lokal auszuführen.

Wenn ich dich richtig verstehe Funktioniert meine erste Idee nicht oder ist sehr umständlich. Oder verstehe ich das Falsch?

Viele Grüße
Patrick
Bitte warten ..
Mitglied: TK1987
2020/10/15, aktualisiert um 13:10 Uhr
Zitat von Sonny1895:
ich habe ausprobiert und bei mit gibt er nur den 2ten Wert aus.
invoke-command_scriptblock - Klicke auf das Bild, um es zu vergrößern
Wenn ich das richtig sehe, hast auch bei -Join auch einen Doppelpunkt statt einem Semikolon verwendet.

Ein Problem was bei der Methode entsteht ist, das ich ein Com-Objekt erstellen muss um das Postfach per Powershell anlegen zu können, das aber über Invoke-Command in einen Fehler läuft. Da das Erstellen des Com-Objektes lokal auf der Maschine funktioniert, war die idee ein Script lokal auszuführen.
Du sollst natürlich auch genau das dann mit Invoke-Comand tun -> Skript auf dem Remoterechner ausführen, welches dir die gewünschten Informationen zurück liefert.
Bitte warten ..
Heiß diskutierte Inhalte
Windows Server
Veeam - DCs restore - 0xc00002e2
gelöst Freak-On-SiliconFrageWindows Server22 Kommentare

Servus; Ich hab hier zwei Server 2012R2 DCs auf jeweils einem Hyper-V sitzen. Gesichert wird mit Veeam B&R. JA, ...

CPU, RAM, Mainboards
Hardwareanforderung für Remote Desktop
gelöst Diddi-tbFrageCPU, RAM, Mainboards12 Kommentare

Hallo zusammen, ich brauche mal wieder einen Rat von euch. Mein Chef möchte gerne öfter von zu Hause aus ...

Multimedia & Zubehör
Anforderungen an Telefonanlage
jensgebkenFrageMultimedia & Zubehör10 Kommentare

Hallo Gemeinschaft, bin auf der Suche nach einer Telefonanlage die folgendes können muss: - unterschiedliche Ansagen (z.b. während der ...

LAN, WAN, Wireless
Studentenwohnheim LAN Anschluss mit Router verbinden
SchweisserFrageLAN, WAN, Wireless8 Kommentare

Hallo Leute, ich habe zu dem Thema schon einige Beiträge gelesen, konnte aber für meinen Fall bisher keine funktionierende ...

Humor (lol)
Wir werden alt
Dilbert-MDFrageHumor (lol)7 Kommentare

Themenbereich OT Neulich bei einem IT-Problem: Ein IT-Problem ist kein Problem, wenn man die richtigen Suchbegriffe und Fachwörter in ...

DNS
DNS in AD und pfSense - pfBlockerNG Listen werden nicht beruecksichtigt
DerDummePeterFrageDNS7 Kommentare

Moin, ich bin der Peter und hab mich hier nun doch angemeldet. Ich habe mit IT ueberhaupt nix zu ...

Ähnliche Inhalte
Batch & Shell
Powershell Skript fehlerhaft?
SpeakerSTQuestionBatch & Shell3 Comments

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

Batch & Shell
Powershell CHAT Skript
solved xpxy15QuestionBatch & Shell5 Comments

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
solved paupau90QuestionBatch & Shell1 Comment

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
winlinQuestionWindows Server20 Comments

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

Batch & Shell

Powershell Skript zur Aufgabenüberwachung

solved treshaQuestionBatch & Shell2 Comments

Hallo Leute, Ich versuche ein Skript zu schreiben, der eine bestimmte selbstgeschriebene Aufgabe überwacht und mir bei einer Störung ...

Batch & Shell

Powershell Skript für Abwesendheit

solved Florian961988QuestionBatch & Shell9 Comments

Hallo, ich möchte folgendes realisieren, ein Abwesendheitsskript mit abfrage, zweck ist, hier gehen Leute in Urlaub vergessen Abwesend zu ...