Vor einigen Tage habe ich versucht ein PowerShell Script über ein VB.Net Programm zu starten.
Hat mich ein wenig Zeit gekostet :)

Anbei der Code:

Public Function RunCreatePasswordPowerShell(ByVal script As String) As Integer
        Dim execProcess As New System.Diagnostics.Process
        Dim psScriptTextArg = "-Command ""& " + script + " " + "'" + System.Environment.CurrentDirectory + "'" + """"
        execProcess.StartInfo.WorkingDirectory = Environment.SystemDirectory & "\WindowsPowershell\v1.0\"
        execProcess.StartInfo.FileName = "powershell.exe"
        execProcess.StartInfo.Arguments = psScriptTextArg
        execProcess.StartInfo.UseShellExecute = True
        Return execProcess.Start
    End Function

Erklärung:

Die Funktion RunCreatePasswordPowerShell wird mit einer String Variable als Argument aufgerufen (script). Diese String Variable beinhaltet den Pfad zu unserem PowerShell Script.
In meinen speziellen Fall geben ich beim zusammenstellen der Argumente noch die den aktuellen Pfad mit.

Eventuell noch interessant: Dieses PowerShell Script welches ich hier aufrufe erstellt verschlüsselte PasswordFiles, welche dann über die PowerShell weiter verwendet werden können. Anbei der Code dazu:

param(
    [parameter(Mandatory = $true)]
    [string]$CurrentDirectory
)
$PasswdFilename = read-host "Filename"
$Passwd = read-host "Password" -assecurestring | convertfrom-securestring
$PasswdPathFile = $CurrentDirectory + $PasswdFilename + "-Pass.txt"
$Passwd | Out-File $PasswdPathFile

Grüße
dn

This post has been migrated from our earlier blog based on BlogEngine.NET.