Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Разбивка диска на T-13, T-12 установки WindowsXP - Критическая ошибка 8004100a WMI

Ответить
Настройки темы
VBS/WSH/JS - Разбивка диска на T-13, T-12 установки WindowsXP - Критическая ошибка 8004100a WMI

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем здравствуйте.

Мучаюсь с проблемой разбиения жесткого диска на T-13, T-12 установки WindowsXP (сетевая установка через RIS/WDS)
Кто-нибудь пробовал запускать vbs-скрипт из CMDLINES.TXT, который обращается к WMI через GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2") ???

При попытке обратиться к любому из классов "Win32_" или "CIM_", например простейший запрос из VBS objService.ExecQuery("SELECT * FROM Win32_DiskDrive )
Почему-то выдает: Критическая ошибка 8004100a swbemobjectset

Может где-то какие-нить права нужно выставить, или что-то запустить, или дополнительно установить на T-13, T-12 установки WindowsXP, чтобы нормально заработал WMI?
Причем интересно, что "SELECT * FROM __namespace" - работает на ура (т.е. минимальные операции выборок WMI можно производить)

Скрипт проверен, в обычной среде (на установленной операционке WindowsXP) работает без проблем, все отрабатывает четко, а вот во время установки на T-13, T-12 не хочет...

Поиски информации особо никчему не привели, нашел на нескольких форумах, где вскользь об этом говорится, но что-конкретно сделать - ничего не сказано:
http://us.generation-nt.com/answer/w...12.html?page=2
http://programming.itags.org/active-server-page/128945/

Отсюда вопрос, возможно ли вообще на T13, T12 обратиться к WMI и если нет, то тогда при помощи чего автоматизрованно можно разбить жесткие диски на паритиции, передвинуть буквы устройств?
diskpart умеет разбивать, передвигать, но для того, чтобы знать что куда двигать и что на компьютере из накопителей есть - нужна логика управления.

Т.е. если на компьютере 1 диск-драйв и на этом диске 1 партиция - сделать так-то. Если два и более диск-драйва - сделать так-то.

Отправлено: 07:19, 10-06-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата dany2k:
возможно ли вообще на T13, T12 обратиться к WMI »
из этой темы следует, что скорее всего нет

Цитата dany2k:
diskpart умеет разбивать, передвигать, но для того, чтобы знать что куда двигать и что на компьютере из накопителей есть - нужна логика управления »
а в чем логика управления?

Отправлено: 09:24, 10-06-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Передвинуть буквы CD-ROM(ов) из пула свободных букв (Z,X,Y,W,V)
Если на компьютере 1 диск-драйв и на этом драйве 1 системная праймари-партиция и есть неразмеченное место - создать Extended партицию.
Если на компьютере 1 диск-драйв и на этом драйве 1 системная праймари-партиция и нет неразмеченного места - ничего не делать
Если два и более диск-драйва - выбрать неразмеченный дискдрайв где нет системной праймари-партиция, создать на выбранном драйве партицию.

Выборка диск-драйвов производится среди подключеных через IDE/SCSI, т.е. отметаем флэш-диски, HDD-USB

Через WMI - все это реализовать можно без проблем (уже есть написанный скрипт), только вот силы как я понял частично потрачены зря....

Через FSO.Drives количество физических диск-драйвов не увидеть, там только вернутся все буквы логических устройств, да и отмести HDD-USB - не получится (определяется как обычный HDD)

Ладно если нельзя на T12,T13 обратитья к WMI, тогда будем через vbs запускать diskpart и анализировать StdOUT, если конечно других вариантов больше нет...
Или есть?


Пробую сейчас анализировать из текстового файла StdOUT diskpart'а, возникли 2 проблемы:

1) не могу поймать перевод строки, чтоб загнать в массив: alines = Split(alines, vbNewline)
Пробовал: VbCrLf, VbCr, chr(13) - не сплитится и все-тут.
2) На T12,T13 - вместо русских букв вылезают кракозябры (как я понял кодировка CP866), как анализировать эти кракозябры??
Быть может тогда имеет смысл использовать diskpart от английской винды, но заработает ли он в русской устанавливаемой WindowsXP ?

Отправлено: 11:05, 10-06-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


1. на Win2003 vbCrLf, на WinXP (RUS) vbLf
2. на WinXP (RUS) работает следующий вызов (на Win2003 не работает):
Код: Выделить весь код
CMD /C "chcp 1251|(echo list disk|diskpart)"

Отправлено: 11:42, 10-06-2010 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


>>на WinXP (RUS) vbLf

С этим разделителем split работает.
Как я понял - это аналог chr(10)


>>CMD /C "chcp 1251|(echo list disk|diskpart)"

Что-то не прокатывает chcp 1251 - все-равно кракозябры выводятся в коносоль...

Отправлено: 11:06, 11-06-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата dany2k:
Что-то не прокатывает chcp 1251 - все-равно кракозябры выводятся в коносоль... »
- для CMD-скриптов никакой перекодировки не требуется, там "родной" является OEM, в ней и выводит diskpart;
- Вами заявлена категория WSH, для которой "родной" является ANSI, поэтому для консольных команд потребуется перекодировка 866->1251, предложенный вызов diskpart делает это ДО передачи в скрипт, пример на VBS:
Код: Выделить весь код
Dim oShell, oExec, sInput
Set oShell = CreateObject("WScript.Shell")

Set oExec = oShell.Exec("CMD /C ""chcp 1251|(echo list disk|diskpart)""")

Do While True
  If oExec.StdOut.AtEndOfStream Then Exit Do
  sInput = sInput & oExec.StdOut.ReadAll()
  WScript.Sleep 100
Loop

WScript.Echo sInput

Отправлено: 05:02, 14-06-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Разбивка диска на T-13, T-12 установки WindowsXP - Критическая ошибка 8004100a WMI

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - Разбивка жесткого диска. zelen Накопители (SSD, HDD, USB Flash) 30 05-05-2010 23:04
Статья - [решено] Разбивка диска. ALLY Microsoft Windows 7 1 03-05-2010 15:55
HDD - Разбивка диска andvict73 Накопители (SSD, HDD, USB Flash) 9 20-03-2009 00:20
Разбивка диска на КД defrag Microsoft Windows NT/2000/2003 4 06-03-2007 15:11
разбивка диска (с прицелом на будущее) mar Общий по Linux 4 29-01-2007 01:49




 
Переход