1

Тема: VBS: Список Включенных компонентов Windows (Dism)

Здравствуйте уважаемые знатоки!
Задача такова: Есть куча Win 7 (рус), необходимо вывести список Включенных компонентов Windows по средствам
выполнения команды Dism /online /Get-Features. Если выполняю штатным образом руками по средствам вызовов этой команды через cmd, то вижу читаемый список, но как только пытаюсь завернуть команду в vbs скрипт, то получаю на выходе не читаемый  текст (проблема с кодировкой). Помогите пожалуйста добить скрипт, чтобы выводил читаемый текст. Заранее благодарю за содействие.


Dim WshShell : Set WshShell = CreateObject("WScript.Shell")

GetNetFeatureStatus

msgbox "Finish"

Sub GetNetFeatureStatus
Dim objShell,objExecObject,Flag,strText,returnValue,Result


Set WshExec = WshShell.Exec("cmd")
With WshExec.StdIn
	.WriteLine "CLS"
	.WriteLine "chcp 1251"
	.WriteLine "Dism /online /Get-Features"

End With


'	Set objExecObject = WshExec.Exec("Dism /online /Get-Features")

strText = vbNullString

Do While Not WshExec.StdOut.AtEndOfStream
'Do While Not objExecObject.StdOut.AtEndOfStream
	strText = WshExec.StdOut.ReadLine()
	msgbox strText
	returnValue = InStr(strText,"Включен")
Loop


End Sub

2

Re: VBS: Список Включенных компонентов Windows (Dism)

With CreateObject("ADODB.Stream")
	.Open : .Charset = "windows-1251" : .WriteText _
	CreateObject("WScript.Shell").Exec("Dism /online /Get-Features").StdOut.ReadAll
	.Position = 0 : .Charset = "CP866"
	Do: Str = Trim(.ReadText(-2))
		If Str <> "" Then MsgBox Str
	Loop Until .EOS : .Close
End With

3

Re: VBS: Список Включенных компонентов Windows (Dism)

Flasher
Огромное спасибо уважаемый! То что надо.