none
System.Diagnostics.Process.Start() RRS feed

  • Frage

  • Hallo zusammen.

     

    $proc = New-Object system.Diagnostics.Process
    $proc.StartInfo.FileName = "C:\Program Files (x86)\Programm\Runtime\DieExe.exe"
    
    function startEngine([string] $startEngine)
    {
    	$secureString = ConvertTo-SecureString "Passwort" -AsPlainText -Force
    	$proc.StartInfo.UserName = "User"
    	$proc.StartInfo.UseShellExecute = $false
    	$proc.StartInfo.Password = $secureString
    	$proc.StartInfo.Arguments = "/INI=$startEngine /USER=BATCH"
    	
    	$proc.Start()
    }
    

     


    Ich habe das oben stehende Script auf einer Kundenumgebung eingerichtet und es funktioniert wunderbar. Wenn ich das gleiche Script auf einer anderen Kundenumgebung starten will, erhalte ich unten stehende Fehlermeldung:

    Exeption Calling "Start" with "0" argument(s): "The Stub received bad data"
    at C:\Program Files (x86)\OM\Runtime\Powershell\functions.ps1:19 char:13
    +      $proc.Start   <<<<<<< ()
        + Category Info : Not Specified:    (:)   [], MethodInvocationException
        + FullyQualifiedErrorId: DotNetMethodException

     

    Hat jemand von euch eine Idee wo das Problem liegt?

    Besten Dank und freundliche Grüsse

    Reto

     

     



    Montag, 31. Oktober 2011 15:54

Antworten

  • Hey,

    bei mir kommt dieser Fehler nur wenn ich den User ohne Domaine angebe, vielleicht hilft es ja wenn du dein Script um diese Zeile erweiterst!

    $proc.StartInfo.Domain = "great.local"
    

    Gruss

    • Als Antwort markiert Alex Pitulice Mittwoch, 7. Dezember 2011 09:03
    Donnerstag, 17. November 2011 16:02

Alle Antworten

  • Hört sich nicht nach nem Powershell Problem an. Tritt das nur auf einer einzigen Maschine auf?

    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".
    Dienstag, 1. November 2011 17:49
    Moderator
  • Hallo Denniver Reinning

    Ich habe dieses Script bis jetzt erst auf einer Maschine laufen. Dort funktioniert es.
    Auf einer anderen Maschine funktioniert es nun eben mit dieser Fehlermeldung nicht.

    Habe noch andere Kundenumgebungen wo ich das Script installieren muss.
    Werde das dort einrichten und anschliessend hier posten, ob es dort funktioniert.

    Habe bereits ziemlich intensiv nach diesem Fehler gegoogelt. Es gibt dort gewisse Meldungen und
    Bugfixes von Microsoft zu dieser Meldung. Allerdings denke ich, dass es sich dort um einen anderen
    Kontext handelt.

    Grüsse, Reto

    Dienstag, 1. November 2011 19:00
  • Hallo Reto,

     

    bist du hier schon weitergekommen?

     

    Viele Grüße

    Alex

    Freitag, 4. November 2011 13:36
  • Hi Alex

     

    Nein, bin noch nicht weitergekommen. Bzw., noch nicht dazugekommen das Problem nochmals anzugehen.

     

    Melde mich sobald als möglich wieder.

     

    LG, Reto

    Mittwoch, 9. November 2011 10:42
  • Hallo Reto,

    Ok, dann warten wir auf Dein Feedback :)

    Danke und Gruss,

    Alex

    Mittwoch, 9. November 2011 10:55
  • Hallo Alle

    Habe es jetzt noch auf einer zweiten Umgebung versucht zu installieren. Lustigerweise tritt genau derselbe Effekt auf. Ich habe es von der funktionierenden Umgebung kopiert und die notwendingen Angaben (Authentifizierung, etc) angepasst. Kommt aber genau diesselbe Fehlermeldung.

     

    Gruss, Reto

    Donnerstag, 17. November 2011 14:08
  • Hallo Reto,

    ist der User mit dem du den Prozess starten willst ein DomainenBenutzer? Wenn ja musst du den User ev. so angeben!

    $proc.StartInfo.UserName = "user@domain"
    

     Gruss

     



    • Bearbeitet Schlieng Donnerstag, 17. November 2011 15:34
    Donnerstag, 17. November 2011 14:47
  • Hi Schlieng

     

    Es scheint prinzipiell schon ein Domain-User zu sein. Mometan wird die Arbeit, die mein PS-Script übernehmen soll, von einem Service ausgeführt. Dieser wird mit dem User "service.agent@great.local" ausgeführt.

    Wenn ich den UserName aber wie von dir beschrieben, in diesem Format angebe, erhalte ich die Fehlermeldung:

    "unknown user name or bad password"

    Wenn ich den Username auf service.agent lasse, funktioniert die Anmeldung (das schliesse ich daraus, dass die oben stehende Meldung nicht angezeigt wird). Allerdings erhalte ich dann die Meldung, the stub received bad data ...

    Gruss, Reto

     

    P.S.: Ich denke ihr braucht euch hier an dieser Stelle keine weiteren Gedanken mehr zu machen. Ich werde wohl noch einge Zeit versuchen müssen. Evtl. gibt es noch andere Möglichkeiten dies zu erledigen. Z.B. Start-Process ...

     

    Donnerstag, 17. November 2011 15:21
  • Hey,

    bei mir kommt dieser Fehler nur wenn ich den User ohne Domaine angebe, vielleicht hilft es ja wenn du dein Script um diese Zeile erweiterst!

    $proc.StartInfo.Domain = "great.local"
    

    Gruss

    • Als Antwort markiert Alex Pitulice Mittwoch, 7. Dezember 2011 09:03
    Donnerstag, 17. November 2011 16:02
  • Hi Schlieng

    Ich habe mich jetzt nochmals dahinter gemacht und den Fehler entdeckt. Ich habe
    $proc.StartInfo.Domain = "great.local" ergänzt. Dies würde theoretisch zur Lösung führen.
    Sobald ich herausgefunden habe wo ich deine Antwort als Lösung markieren kann, mach ich's.

    Leider gab es ein weiteres Problem. Aus Datenschutzgründen wollte ich das Passwort nicht posten,
    hätte ich es getan, hätte ich von euch sicherlich früher eine Lösung bekommen.

    Im Passwort kommt nämlich ein $-Zeichen vor. Powershell interpretiert alles dahinter als Variable.
    Weil es die Variable nicht gibt, wird alles hinter dem $-Zeichen abgeschnitten.

    Gibt es eine Möglichkeit dies zu unterbinden oder muss ich das Passwort ändern?

    Entschuldigt bitte die unnötigen Umtriebe und besten Dank für die Hilfestellung zur Lösung
    des Problems.

    P.S.: Bin halt relativ neu mit Powershell unterwegs ...

    Reto


    • Bearbeitet Reto SG Mittwoch, 7. Dezember 2011 08:00
    Mittwoch, 7. Dezember 2011 07:56