Centrum skryptów - Systemy operacyjne

Jak sprawdzić właściwość Subject pliku .MSI?

Udostępnij na: Facebook

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

Jak sprawdzić właściwość Subject pliku .MSI?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! Jak sprawdzić właściwość Subject pliku .MSI?

-- J L-G

Cześć Skrypciarze! Odpowiedź

Cześć, J L-G. Zanim zapytasz – Skrypciarz piszący te słowa nie ma nic do powiedzenia w sprawie meczu futbolowego Floryda kontra Ohio z ósmego stycznia. Głównie dlatego, że Skrypciarz odmawia uznania „Bowl Championship Series” za coś innego, niż parę zwykłych meczy. Mistrzostwa? Bez play-offów? Nie ma mowy.

Poza tym, Skrypciarz piszący te słowa nie lubi ani Florydy, ani Ohio. Oglądał mecz tylko dlatego, że uważa, iż oglądanie meczy to jedyne co można robić wieczorami.

Co takiego? Czytanie książek, sprzątanie, spędzanie czasu z rodziną? Bez żartów. To my tu jesteśmy od żartów!

Może jednak nie mówmy już o futbolu, mam inny, równie ciekawy temat – chociaż dużo krótszy:

Set objInstaller = CreateObject("WindowsInstaller.Installer") 

Set objProduct = objInstaller.SummaryInformation("C:\Scripts\FP11.MSI")



Wscript.Echo "Subject: " & objProduct.Property(3)

Jak mówiliśmy, temat jest krótki. Tworzymy wystąpienie obiektu WindowsInstaller.Installer; jest to obiekt, który może się połączyć z plikami .MSI i pobrać z nich informacje. Następnie za pomocą poniższego wiersza kodu sprawdzamy wartość SummaryInformation (czyli podsumowania) pliku C:\Scripts\FP11.MSI:

Set objProduct = objInstaller.SummaryInformation("C:\Scripts\FP11.MSI")

Teraz po prostu wyświetlamy wartość właściwości nr 3, czyli właśnie Subject (temat):

Wscript.Echo "Subject: " & objProduct.Property(3)

Uzyskamy coś w tym rodzaju:

Subject: Microsoft Office FrontPage 2003

Używając obiektu WindowsInstaller.Installer możemy też pobierać inne informacje o obiekcie WindowsInstaller.Installer:

Set objInstaller = CreateObject("WindowsInstaller.Installer") 

Set objProduct = objInstaller.SummaryInformation("C:\Scripts\FP11.MSI")



Wscript.Echo "Code page: " &objProduct.Property(1)

Wscript.Echo "Title: " & objProduct.Property(2)

Wscript.Echo "Subject: " & objProduct.Property(3)

Wscript.Echo "Author: " & objProduct.Property(4)

Wscript.Echo "Keywords: " & objProduct.Property(5)

Wscript.Echo "Comment: " & objProduct.Property(6)

Wscript.Echo "Template: " & objProduct.Property(7)

Wscript.Echo "Last Author: " & objProduct.Property(8)

Wscript.Echo "Revision number: " & objProduct.Property(9)

Wscript.Echo "Edit Time: " & objProduct.Property(10)

Wscript.Echo "Last Printed: " & objProduct.Property(11)

Wscript.Echo "Creation Date: " & objProduct.Property(12)

Wscript.Echo "Last Saved: " & objProduct.Property(13)

Wscript.Echo "Page Count: " & objProduct.Property(14)

Wscript.Echo "Word Count: " & objProduct.Property(15)

Wscript.Echo "Character Count: " & objProduct.Property(16)

Wscript.Echo "Application Name: " & objProduct.Property(18)

Wscript.Echo "Security: " & objProduct.Property(19)

Zwróćmy jeszcze uwagę na dwie rzeczy. Po pierwsze, skrypt ten zadziała wyłącznie z plikami .MSI; nie można używać go np. w stosunku do plików .JPG. (Jak pobrać informacje z podsumowania pliku .JPG? Można o tym przeczytać tutaj.) Po drugie, niektóre nazwy właściwości mogą być mylące; np. Word Count (statystyka wyrazów) tak naprawdę odnosi się do typu źródłowego pliku obrazu z którym pracujemy i nie ma nic wspólnego z liczbą słów w pliku .MSI. Wiecej informacji na ten temat można znaleźć w dokumentacji instalatora Windows (j.ang.) na stronach MSDN.

I jeszcze jedno – obiekt WindowsInstaller. Installer działa tylko na komputerze lokalnym i nie można utworzyć jego wystąpienia zdalnie.

Przy czym to byliśmy? Aha, przy meczu Floryda-Ohio. Był on raczej nudny – z początku trochę się działo, ale Ohio wkrótce właściwie zniknęło. Jedyną rozrywką było, kiedy w czasie reklam na jednej ze stacji lokalnych nadano: „NIEZWYKŁE OPADY ŚNIEGU!!!!! WIATR W PORYWACH DO 65 KM/H!!!! ARKTYCZNE MROZY!!!!! WSZYSCY ZGINIEMY!!!!!”

Chyba zbliża się Apokalipsa…

Jak się okazuje, możemy się w Seattle spodziewać silnych wiatrów, ale nie tak silnych, jak wielogodzinne wichury sprzed paru tygodni. A kiedy przestanie wiać, być może spadnie śnieg. Co zaś się tyczy arktycznych mrozów – to prawda, o ile w Arktyce jest od -1 do -5 stopni. Miejmy nadzieję, że na Seattle nie spadnie nigdy prawdziwa klęska żywiołowa. Nasz lokalny kanał informacyjny zamiast informować będzie pewnie zachęcał do plądrowania sklepów i udziału w zamieszkach: „KAŻDY DBA TYLKO O SIEBIE!!!!! MORDUJ, JEŚLI NIE CHCESZ ZOSTAĆ ZAMORDOWANY!!!!! NATYCHMIAST WPADNIJ W PANIKĘ!!!!!”

Ale z drugiej strony, przetrwaliśmy już protesty w czasie konferencji WTO w 1999 r., więc zamieszki i plądrowanie nie są nam straszne.

 Do początku strony Do początku strony

Centrum skryptów - Systemy operacyjne