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