none
Ausführen eines Powershell-Scripts auf einem Remotesystem funktioniert nicht. RRS feed

  • Frage

  • Hallo zusammen,

    ich habe in der Arbeit folgendes Problem. Wir müssen mit unserer Softwareverteilung (Columbus) ein Powershellscript aufrufen, welches eine Remotesitzung zu einem SOFOS (Festplattenverschlüsselung) Server herstellt. Danach wird ein weiteres Powershellscript aufgerufen, welches auf dem Server ein VBS-Script aufruft. Dies muss so funktionieren. Das Tut es aber nicht, wenn es aus Columbus heraus aufgerufen wird. Wenn ich es dagegen auf der Console mit gleichem Account aufrufe, dann klappt es. Anbei sende ich Euch den Inhalt der beiden Powershellscripts.
     Ich weis auch nicht, wie ich sonst ein VB-Script remote auf dem Server ausführen lassen soll. Danke an Euch

    Grüße ,  Andreas


    Script1:

    =====

    param (
     $computer = ${env:computername}
    )

    # Variblen
    #---------
    $remoteServer = "xxxxxxxx1"
    #$remoteServer = "xxxxxxxx2"
    $remoteScript = 'C:\xxxxxx\xxxxxx\Remote.ps1'

    Get-PSSession | Remove-PSSession
    Write-Host ""
    if ($computer -notlike "") {
     Write-Host "Es wird versucht eine Verbindung mit $remoteServer (SafeGuard Enterprise Management Console) aufzubauen..."
     $newSession = new-PSSession -ComputerName $remoteServer -ErrorAction Stop -Authentication Kerberos
     $remoteSession = Get-PSSession | where {$_.ComputerName -like $remoteServer}
     Write-Host "Verbindung zu $remoteServer erfolgreich hergestellt" -ForegroundColor Green
     Write-Host
     Write-Host "Es wird versucht den PC $computer in die Maintenance Gruppe zu verschieben..."
     invoke-command -filepath $remoteScript -ArgumentList $computer -Session $remoteSession -ErrorAction Stop
     Write-Host "PC $computer wurde erfolgreich in die Maintenance Gruppe verschoben" -ForegroundColor Green
    }
    Write-Host ""
    Write-Host "Remote Session wird beendet..."
    Get-PSSession | Remove-PSSession -ErrorAction Stop
    Write-Host "Remote Session erfolgreich beendet" -ForegroundColor Green
    Start-Sleep 5

     

    Script2:

    ======

    param (
     $computer = ""
    )
    C:\xxxxx\xxxxxx\cscript.exe C:\xxxxxxx\xxxxxxx\MoveToMaintenance.vbs $computer


    • Bearbeitet RUAGOP Mittwoch, 17. Januar 2018 12:34
    Samstag, 16. Juli 2011 07:47

Antworten

  • >muss so funktionieren. Das Tut es aber nicht, wenn es aus Columbus heraus aufgerufen wird

    Zum einen hast du leider die wichtigsten Informationen weggelassen:

    - was klappt nicht? Läuft Script 1, 2 oder 3 nicht? Gibt es eine Fehlermeldung?

    Zum anderen ist "Wenn ich es dagegen auf der Console mit gleichem Account aufrufe, dann klappt es" leider der Knackpunkt. Powershellseitig scheint hier alles zu gehen, das Problem scheint viel eher bei deiner Softwareverteilung "Columbus" zu liegen, bzw. beim Aufruf von PoSh aus dieser heraus. Das weitere Vorgehen hängt nun vom konkreten Fehlerbild ab.

    Ich gehe ja mal davon aus das bereits das erste PoSh-Script nicht startet, aber um sicherzugehen füge mal in jedes (Powershell) Skript ein:

    set-content "c:\script_N_gestartet.txt" ""
    

    (N durch 1 oder 2 ersetzen) und in das vbs-script folgendes:

    Set objFSO = CreateObject("scripting.filesystemobject")
    Set logStream = objFSO.createtextfile("c:\script3_gestartet.txt", True)
    
    

    Ganz unabhängig davon, kann man auch zumindest Script 1 und 2 zusammenfassen, aber das ist noch eine andere Baustelle.

    Grüße, Denniver

     


    http://bytecookie.wordpress.com/



    Samstag, 16. Juli 2011 13:06
    Moderator

Alle Antworten

  • >muss so funktionieren. Das Tut es aber nicht, wenn es aus Columbus heraus aufgerufen wird

    Zum einen hast du leider die wichtigsten Informationen weggelassen:

    - was klappt nicht? Läuft Script 1, 2 oder 3 nicht? Gibt es eine Fehlermeldung?

    Zum anderen ist "Wenn ich es dagegen auf der Console mit gleichem Account aufrufe, dann klappt es" leider der Knackpunkt. Powershellseitig scheint hier alles zu gehen, das Problem scheint viel eher bei deiner Softwareverteilung "Columbus" zu liegen, bzw. beim Aufruf von PoSh aus dieser heraus. Das weitere Vorgehen hängt nun vom konkreten Fehlerbild ab.

    Ich gehe ja mal davon aus das bereits das erste PoSh-Script nicht startet, aber um sicherzugehen füge mal in jedes (Powershell) Skript ein:

    set-content "c:\script_N_gestartet.txt" ""
    

    (N durch 1 oder 2 ersetzen) und in das vbs-script folgendes:

    Set objFSO = CreateObject("scripting.filesystemobject")
    Set logStream = objFSO.createtextfile("c:\script3_gestartet.txt", True)
    
    

    Ganz unabhängig davon, kann man auch zumindest Script 1 und 2 zusammenfassen, aber das ist noch eine andere Baustelle.

    Grüße, Denniver

     


    http://bytecookie.wordpress.com/



    Samstag, 16. Juli 2011 13:06
    Moderator
  • Hallo Andreas,

    Euer Columbus läuft doch bestimmt als Dienst. Wahrscheinlich hat dieser Dienst nicht das gleiche Konto wie der Account mit dem Du das Skript aus der

    Console startest.

     

    Gruß

    Armin

    Montag, 18. Juli 2011 14:45
  • > Wenn ich es dagegen auf der Console mit gleichem Account aufrufe, dann klappt es.

    :)

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".
    Montag, 18. Juli 2011 15:06
    Moderator
  • jau, für mich wäre die Frage gewesen angemeldeter Benutzer oder Dienst.

    Sorry

    Vielleicht liegt es auch an der Delegation. Wenn ich die Sache richtig verstanden habe, soll ein PC/Server installiert werden und die Dateien liegen halt auf einem Fileshare.

    Gruß
    Armin

    Dienstag, 19. Juli 2011 09:11