28. Dim objWMIResult
Dim objLocator
Dim objService
Dim objWMIClass
Dim strPCName
ローカルのホスト名取得
VBS スクリプト
'ローカルコンピュータに接続しクエリを実行する
objLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
objService = objLocator.ConnectServer
objWMIResult = objService.ExecQuery("Select * From Win32_ComputerSystem")
‘結果の取得
For Each objWMIClass In objWMIResult
strPCName = objWMIClass.Name
Next
Get-WmiObject Win32_ComputerSystem | select Name
ローカルのホスト名取得
PS スクリプト
29. Imports System.Activities
Imports System.Management
Public Class WMIComputerSystem
Inherits CodeActivity(Of String)
Protected Overrides Function Execute(context As CodeActivityContext) As String
Dim result = ""
Dim wmScope As New ManagementScope("¥¥" + My.Computer.Name + "¥root¥cimv2")
wmScope.Connect
Dim wmQuery As New ObjectQuery("SELECT * FROM Win32_ComputerSystem")
Using searcher As New ManagementObjectSearcher(wmScope, wmQuery)
Using queryCollection = searcher.Get()
For Each wmResult In queryCollection
result = wmResult("Name").ToString
Exit For
Next
End Using
End Using
Return result
End Function
End Class
ローカルのホスト名取得
WF4 アクティビティ
37. Imports System.Management.Instrumentation
Imports System.ComponentModel
''' <summary>WMI プロバイダインストーラクラス</summary>
<RunInstaller(True)>
Public Class SampleWMIProviderInstaller
Inherits DefaultManagementInstaller
End Class
インストーラクラス
Imports System.Management.Instrumentation
Public Class Form1
Private wmiProvider As New SampleWMIProvider(Diagnostics.Process.GetCurrentProcess.Id)
Private executeTimer As System.Threading.Timer = Nothing
Private Sub Closed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
InstrumentationManager.Revoke(wmiProvider)
End Sub
Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
'タイマーにて1秒ごとにテキストボックスの内容を出力
executeTimer = New Timer(New TimerCallback(AddressOf OutputData), Nothing, 0, 1000)
' WMI プロバイダの公開
InstrumentationManager.Publish(wmiProvider)
End Sub
Private Sub OutputData()
wmiProvider.DisplayText = TextBox1.Text
End Sub
End Class
入力用フォーム
38. Imports System.Management.Instrumentation
WMI プロバイダ
' アセンブリに対しての WMI 設定指定
<Assembly: WmiConfiguration("root/clrh",
HostingModel:=ManagementHostingModel.Decoupled,
IdentifyLevel:=False)>
<ManagementEntity(name:="clrh")>
<ManagementQualifier("Description", Value:="サンプル WMI プロバイダで誰でも利用可能です")>
Public Class SampleWMIProvider
#Region "プロパティ定義"
<ManagementKey()>
<ManagementQualifier("Description", value:="プロセス Id を取得します")>
Public Property Id As Integer
<ManagementConfiguration()>
<ManagementQualifier("Description", value:="表示されている文字列を取得します")>
Public Property DisplayText As String
#End Region
#Region "コンストラクタ"
Public Sub New(ByVal Id As Integer)
Me.Id = Id
End Sub
#End Region
End Class
43. Appendix
The Activity Designer
(http://blogs.msdn.com/b/tilovell/)
AppFabric Team Blog(旧 The .NET EndPoint)
(http://blogs.msdn.com/b/appfabric/)
MS 松崎さん Blog
(http://blogs.msdn.com/b/tsmatsuz/)
てすとぶろぐ
(http://blogahf.blogspot.com/)
恐らく退職などでもう更新されていない MSDN Blog
Matt W's Windows Workflow Place
(http://blogs.msdn.com/b/mwinkle/)
Go with the Flow
(http://blogs.msdn.com/b/flow/)
Cathy Dumas’s Blog
(http://blogs.msdn.com/b/cathyk/)
Kushal Shah – Workflows
(http://blogs.msdn.com/b/kushals/)