Runspace02 サンプルの VB.NET ソース コードを次に示します。 このサンプルでは、System.Management.Automation.RunspaceInvoke クラスを使用して、Get-Process
コマンドレットを同期的に実行します。 その後、Windows フォームとデータ バインディングを使用して、DataGridView コントロールに結果を表示します。
コード サンプル
Imports System
Imports System.Collections
Imports System.Collections.ObjectModel
Imports System.Windows.Forms
Imports System.Management.Automation.Runspaces
Imports System.Management.Automation
Namespace Microsoft.Samples.PowerShell.Runspaces
Class Runspace02
Shared Sub CreateForm()
Dim form As New Form()
Dim grid As New DataGridView()
form.Controls.Add(grid)
grid.Dock = DockStyle.Fill
' Create an instance of the RunspaceInvoke class.
' This takes care of all building all of the other
' data structures needed...
Dim invoker As New RunspaceInvoke()
Dim results As Collection(Of PSObject) = _
invoker.Invoke("Get-Process | Sort-Object ID")
' The generic collection needs to be re-wrapped in an ArrayList
' for data-binding to work...
Dim objects As New ArrayList()
objects.AddRange(results)
' The DataGridView will use the PSObjectTypeDescriptor type
' to retrieve the properties.
grid.DataSource = objects
form.ShowDialog()
End Sub 'CreateForm
''' <summary>
''' This sample uses the RunspaceInvoke class to execute
''' the Get-Process cmdlet synchronously. Windows Forms and data
''' binding are then used to display the results in a
''' DataGridView control.
''' </summary>
''' <param name="args">Unused</param>
''' <remarks>
''' This sample demonstrates the following:
''' 1. Creating an instance of the RunspaceInvoke class.
''' 2. Using this instance to invoke a PowerShell command.
''' 3. Using the output of RunspaceInvoke in a DataGridView
''' in a Windows Forms application
''' </remarks
Shared Sub Main(ByVal args() As String)
Runspace02.CreateForm()
End Sub 'Main
End Class 'Runspace02
End Namespace
こちらもご覧ください
Windows PowerShell SDK の
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
PowerShell