Итак, я следовал инструкциям, сделанным онлайн, которые демонстрируют, как запустить скрипт powershell из приложения Windows Form с помощью VB.Net.Однако я продолжаю сталкиваться с этой проблемой, которую я не могу на всю жизнь найти ответ или что-нибудь близкое, чтобы привести меня к ответу.
Dim myRunSpace As Runspace = RunspaceFactory.CreateRunspace
myRunSpace.Open()
Dim mypipeline As Pipeline = myRunSpace.CreatePipeline()
Dim command As String = " .'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; get-mailbox -recipienttypedetails UserMailbox | select-object DisplayName,RecipientTypeDetails,PrimarySmtpAddress"
mypipeline.Commands.AddScript(command)
mypipeline.Commands.Add("Out-String")
Dim outputs As Collection(Of PSObject) = mypipeline.Invoke()
'myRunSpace.Close()
Dim MyStringBuiler As New StringBuilder()
For Each result As PSObject In outputs
MyStringBuiler.AppendLine(result.ToString())
Next
MessageBox.Show(MyStringBuiler.ToString)
' ReadExchangeCSVFile()
Это мой код, и он близко следует тому, что делает пример,Тем не менее, я получаю эту ошибку:
{"Cannot load Windows PowerShell snap-in Microsoft.PowerShell.Diagnostics because of the following error: Could not load file or assembly 'Microsoft.PowerShell.Commands' or one of its dependencies.The system cannot find the file specified."}Source : System.Management.Automation
Из исследований, которые я до сих пор собирал, это может не соответствовать версиям библиотек, которые я импортирую, и версии powershell, установленной на машине.
Строка с ошибками является первой в приведенном выше фрагменте кода.Поэтому при создании пространства выполнения он показывает ошибку при отладке.