Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Servus Zusammen,

 

ich hab bereits einige Skripte geschrieben, die meisten jedoch immer lokal auf den Geräten bzw. über die Aufgabenplanung ausgeführt.....

Jetzt hätte ich ein Skript, welches an mehreren Computern ausgeführt werden muss.

 

Fall 1:

ich möchte über Invoke-command an einem Remote Rechner was ausführen

$DK = New-PSSession (read-host)
Invoke-Command -Session $DK {Start-Process "C:\temp\eSetup-1209.exe"}

dabei sollte er mir das Installationsfenster am Remote Rechner öffnen, dies macht er leider jedoch nicht...... wisst ihr wie es funktioniert, dass er am Remote Rechner das Setup in einem Fenster öffnet?

 

Fall 2:

ich möchte in einem Skript mehrere Server ansprechen. Nacheinander, mit unterschiedlichen Aufgaben.
Ich habe es mit der PS-Session versucht, jedoch funktioniert diese nicht so ganz wie sie soll.....
Auf Server 45 soll bsp powershell gestartet werden und Excel geschlossen, sobald dies abgeschlossen ist soll er auf Server 44 Powershell eine andere Datei starten....

beispielsweise ca. folgend:

Enter-PSSession Server45
start-process powershell "C:\temp\PS122.ps1"
stop-service -name excel
Remove-PSSession (exit)

Enter-PSSession Server44
start-process powershell "C:\temp\NEU.ps1"
Remove-PSSession (exit)
 

Habt Ihr hierzu Ideen bzw. Lösungen?

 

Vielen Dank! 


Besten Gruß

Systemer

Moin!

Ich bin Unixer, daher sind Angaben mit Vorsicht zu genießen 🙂

zu Fall 1) ich hab' mal etwas ähnliches unter Windows versucht und musste dann feststellen, dass das ohne signierte Scripte nicht funktioniert. Dann habe ich aufgegeben und es einem Kollegen aufgedrückt 🙂

zu Fall 2)
das riecht ja nach einem Script, welches nach und nach abgearbeitet wird. Zur Not musst du etwas basteln, dass, bevor der Teil mit dem Server44 beginnt, beim Server45 angefragt wird, ob er fertig ist mit seinem Job ... gegenenfalls mit 'ner kleinen Endlosschleife (mit Notausstieg nach 5 min), die das einfach abfragt und erst danach mit Server44 weitermacht.

Fall 1) geht nicht. Du kannst remote Commands ausführen, aber eine GUI bekommst du dann nicht zurückgemeldet.
Probiere die Installation mit einer .msi Datei. Das sollte funktionieren.

Fall 2)
Test deine Scripte erstmal lokal.. wenn es lokal klappt, dann sollte es auch remote kein Problem sein.
 

  • Autor
Am 2.3.2023 um 16:42 schrieb mylurid:

Fall 1) geht nicht. Du kannst remote Commands ausführen, aber eine GUI bekommst du dann nicht zurückgemeldet.
Probiere die Installation mit einer .msi Datei. Das sollte funktionieren.

Fall 2)
Test deine Scripte erstmal lokal.. wenn es lokal klappt, dann sollte es auch remote kein Problem sein.
 

Hi,
danke dir für deine Antwort.

Funktioniert lokal, das Problem ist, dass er nicht richtig aus der Session rauskommt und versucht über die "alte" Session eine weitere aufzubauen, was eben nicht funktioniert.

 

Problem ist hier, dass ich wsl die Commands für die Session falsch nutze...

1.) mit invoke command gestartete prozesse bekommen keine GUI. Invoke Command macht eine neue Usersitzung auf der Remote maschine auf und diese wird eben ohne GUI gestartet.

 

2.) wie mylurid schreibt. da du einen start process machst musst du zwischen server 45 und 44 prüfen ob der prozess auch fertig ist.

oder du startest den prozess mit -wait und fängst dann hinterher den ExitCode ab und schaust ob der prozess fehlerfrei gelaufen ist.

z.b. so:

# ExitCode is available when using -Wait...
Write-Host "Starting Notepad with -Wait - return code will be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru -Wait)
Write-Host "Process finished with return code: "
$process.ExitCode

 

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.