esfaueen
Goto Top

Powershell Script in Visual Basic aufrufen

Guten Tag miteinander,

Wie ihr bereits aus dem Titel erahnen könnt dreht sich meine Frage um das öffnen eines Powershell Scripts innerhalb eines VB Scripts.

Ich habe mit Visual Basic 2008 Express Studio eine Form erstellt, in welcher ich nun über einen Button ein Powershell Script aufrufen möchte (Mit Parametern, welche in Textboxen eingegeben werden).

Nur habe ich bisher noch keinen funktioneren Command dafür gefunden.

Könnt Ihr mir evtl. weiterhelfen?

Vielen Dank & freundliche Grüsse

Content-Key: 122951

Url: https://administrator.de/contentid/122951

Printed on: April 19, 2024 at 11:04 o'clock

Member: dog
dog Aug 18, 2009 at 13:34:47 (UTC)
Goto Top
Member: TuXHunt3R
TuXHunt3R Aug 18, 2009 at 13:43:39 (UTC)
Goto Top
Spontan würde ich es mal so probieren:
set objShell = WScript.CreateObject("WScript.Shell")  
objShell.Exec("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command <dein Script>")  

Ist nicht getestet.....
Member: esfaueen
esfaueen Aug 18, 2009 at 13:49:18 (UTC)
Goto Top
Bereits getestet, funktioniert jedoch nicht.

Erkennt weder "WScript.CreateObject("WScript.Shell") " noch "objShell.Exec" ....

Gegoogelt habe ich schon Stunden (Call Powershell in VB / Execute Powershell VB / Visual Basic Script Shell Powershell / etc etc), jedoch auch hier nichts brauchbares gefunden zum Thema .....

Langsam denke ich, dass der Befehl so nicht existiert bzw, zusätzliche Libraries benötigt werden.
Member: dog
dog Aug 18, 2009 at 14:08:31 (UTC)
Goto Top
TuxHunt3Rs Beispiel ist VBScript und funktioniert so natürlich nicht in VB.NET
Das erste Google-Ergebnis beantwortet aber schon deine Frage:
In VB.NET it's really rather simple.
Shell("C:\cat.txt")

Und das zweite gleich nochmal:

Public Sub ShellandWait(ByVal ProcessPath As String)
        Dim objProcess As System.Diagnostics.Process
        Try
            objProcess = New System.Diagnostics.Process()
            objProcess.StartInfo.FileName = ProcessPath
            objProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
            objProcess.Start()

            'Wait until the process passes back an exit code   
            objProcess.WaitForExit()

            'Free resources associated with this process  
            objProcess.Close()
        Catch
            MessageBox.Show("Could not start process " & ProcessPath, "Error")  
        End Try
    End Sub

Und das dritte auch.
Und das vierte ganz ausführlich: http://www.devx.com/dotnet/Article/7914

...
Member: esfaueen
esfaueen Aug 18, 2009 at 14:35:51 (UTC)
Goto Top
heute war wohl nicht mein Tag. Vielen Dank für die Antwort, hätte es wahrscheinlich in 10h noch nicht gefunden face-smile

Scheint die Lösung zu sein