Totalny w-file tym razem. Tyle, że rozwiązany :)
Problem – zautomatyzować operację dodawania wpisów w BCD, żeby skryptem dodawać Pingwina do boot menu w Windows 7.
Pierwszy krok prosty: dodajemy wpis dla grub4dos - http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial#Booting_GRUB_for_DOS_via_the_Windows_Vista_boot_manager
Teraz wypada by to przenieść na inną maszynę – chwilka przekopywania się przez dokumentację i okazuje się, że BCDEdit umożliwia import i export ustawień. piknie – robić backup i potem go odzyskać na innej maszynie. Niestety nie działa. Z tego prostego powodu, że wpis dla W7 nie ma GUID {current}, tylko jakiś dziwoląg – niestety GUIDy są generowane pseudolosowo. Efekt: pingwin się podnosi, Windows nie ^^
Rozwiązania są dwa:
1. Wykorzystać WMI i BCDProvider (http://msdn.microsoft.com/en-us/library/aa362675(v=VS.85).aspx) i można zrobić tak (wymaga wcześniejszego dodania wpisów):
set args = WScript.Arguments
num = args.Count
if num <> 1 then
WScript.Echo “Usage: CScript \\nologo [Menu Selection]“
WScript.Quit 1
end if
MenuPick=args.Item(0)
Const BcdLibraryString_Description = &h12000004
Const BootMgrId = “{9dea862c-5cdd-4e70-acc1-f32b344d4795}“
Const DefaultType = &h23000003
Const WindowsImages = &h10200003
strComputer = “.“
Set objStoreClass = GetObject(“winmgmts:{(Backup,Restore)}\\“ & _
strComputer & “\root\wmi:BcdStore“)
objStoreClass.OpenStore “”, objStore
objStore.EnumerateObjects WindowsImages, colObjects
For Each objObject in colObjects
objObject.GetElement BcdLibraryString_Description, objElement
If Instr(objElement.String, MenuPick) Then
objStore.OpenObject BootMgrId, objBootMgr
objBootMgr.SetObjectElement DefaultType, objObject.ID
End If
Next
2. wykręcić pętlę w CMD:
for /f “tokens=3“ %%a in (’bcdedit -create -d “PJWSTK Linux“ -application bootsector’) do set guid=%%a
bcdedit /set %guid% device boot
bcdedit /set %guid% path \grldr.mbr
bcdedit /displayorder %guid% /addlast
działa pięknie – po prostu pobiera trzecie słowo z outputu BCDEDIT – to ZAWSZE jest GUID :)
teraz można to wrzucić jako cmd /c “%scriptroot%\bcd.cmd” do Task Sequence w MDT i mamy zautomatyzowane dodawanie pingwinów na W7 :D
PS. warto pamiętać, ze sysprep kasuje zawartość BCD :)
A to w ramach LiveMeeting będą też wasze facjaty …???
będzie to, co sie pokaże (; hehehehe
niestety na żywo mogłem obejrzeć prezentację do połowy (a muszę przyznać, że dość mnie zainteresowała), skąd można ją pobrać? bo była przecież po coś nagrywana ;>
Podobnie jak kolega wysoki - nie widziałem całej - można ją gdzieś zobaczyć?
linki powinny sie pojawic na stronie wss a na pewno domel bedzie wrzucal na http://ms-groups.pl/plgsc/default.aspx
http://grupy.wss.pl/PLGSC
ms-groups się kończy ;)