【Script】Windows Server 2008/R2 にインストールされている役割と機能の一覧表示
以下をメモ帳にコピペして、拡張子vbsで保存してください。
スクリプトギャラリーには、その他のサンプルがたくさん!!
---ここから
strComputer = "."
Set objDic_Name = CreateObject("Scripting.Dictionary")
Set objDic_Parent = CreateObject("Scripting.Dictionary")
Set objDic_Tree = CreateObject("Scripting.Dictionary")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFeatureList = objWMIService.ExecQuery("SELECT * FROM Win32_ServerFeature")
For Each n in colFeatureList
objDic_Name.Add n.ID, n.Name
objDic_Parent.Add n.ID, n.ParentID
'Wscript.Echo n.ID & ":" & n.Name & ":" & n.ParentID
Next
strFunctions = ""
For Each ID in objDic_Name.Keys
ParentID = objDic_Parent(ID)
Name = objDic_Name(ID)
If ParentID = "0" then
objDic_Tree.Add ID , "+"
Else
If objDic_Tree.Exists(ParentID) Then
objDic_Tree.Add ID, objDic_Tree(ParentID) & "+"
End If
End IF
strName_Me = objDic_Tree(ID) & Name
If ParentID = 0 Then
strName_Parent = "N/A"
Else
strName_Parent = objDic_Tree(ParentID) & objDic_Name(ParentID)
End If
If InStr(strFunctions , strName_Parent) Then
strFunctions = Replace(strFunctions, strName_Parent, strName_Parent & "," & strName_Me)
Else
strFunctions = strFunctions & "," & strName_Me
End If
Next
arrName = Split(strFunctions ,",")
For Each n in arrName
Wscript.Echo n
Next