Sprawdzenie wersji Microsoft SharePoint 2007 (MOSS – Microsoft Office SharePoint Server 2007) nie jest tak błahe jak można byłoby się tego spodziewać. W większości aplikacji informacja o wersji jest dostępna z poziomu Help -> About czy podobnie. Wersja MOSS’a przydaje się w sytuacji, kiedy chcemy zainstalować poprawki, które wymagają innych poprawek, które wymagają innych poprawek. A każda z tych poprawek sprawdza wymaganą minimalną wersję produktu. Btw, wersja produktu jest ustalana na podstawie wersji bazy danych SharePoint (content database version).

Można sprawdzić wersję MOSS’a na co najmniej 4 sposoby:

1) IIS header. Metoda nie polecana, ale praktykowana. Dane tam zawarte są prawdziwe do momentu, w którym administrator zechce zmienić sposób w jaki IIS wita się z klientami.

Jak to znaleźć? Internet Information Services (IIS) Manager -> Websites -> prawy klik np. na SharePoint Central Administration v3 -> Properties -> HTT Headers -> sekcja Custom HTTP headers

2) Sposób najprostszy – strona serwera Sharepoint -> Site Actions -> Site Settings

3) Metoda, którą lubię najbardziej – SQL script

Łączymy się z serwerem SQL obsługującym SharePoint i uruchamiamy następującą komendę:

SELECT * FROM [SharePoint_Config].[dbo].[Versions]
WHERE VersionId = '00000000-0000-0000-0000-000000000000'
ORDER BY Id DESC

W wyniku wykonania powyższego otrzymamy w kolumnie Version spodziewaną wartość – numer wersji naszego oprogramowania.

4) Metoda na PowerShell. Zrzut ekranu tutaj.

(get-item “hklm:software\microsoft\shared tools\web server extensions\12.0″).getvalue(“version”)

Sprawdzane na wersji 1.0 PowerShell dostępnej na Windows Vista, Windows XP czy Windows Server 2003/2008.

Wersje MOSS’a zmieniały się wraz z wypuszczanymi poprawkami. Poniżej znajduje się lista wersji, wraz z poprawkami:

Wiele osób pyta mnie jak to się dzieje, że przy zmianie sprzętu zachodzi potrzeba reaktywacji Windows Vista (czy Windows Server 2008). Przy każdej zmianie sprzętu Windows sprawdza, jakie komponenty uległy zmianie i dla każdej konfiguracji liczy sumę kontrolną biorąc pod uwagę poniższe wartości.

1 – CD-ROM/CD-RW/DVD-ROM
1 – karta grafiki
1 – wielkość pamięci RAM
2 – karta dźwiękowa
2 – adres MAC karty sieciowej
2 – kontroler SCSI
3 – kontroler IDE
3 – procesor
9 – identyfikator BIOS
11 – numer seryjny dysku twardego z zainstalowanym systemem Windows

Jeśli suma przekroczy 25 system poprosi o reaktywację lub zmianę klucza seryjnego. Czyli przykładowo, jeśli zmienimy dysk, na którym zainstalowaliśmy system (11), BIOS (9), procesor (3) i kontroler IDE (3), to suma wyniesie 26, co automatycznie uruchomi proces reaktywacji.

Ten algorytm został zaimplementowany w Windows Vista i Windows Server 2008.

Innym powodem do reaktywacji może być sytuacja opisana w dokumencie KB931573.

I was a PC, now I'm a Server

1 Październik 2008

I was a PC, now I’m a Server

Nie, to nie jest reklamówka Microsoftu. To opis na firmowym komunikatorze jednego z członków grupy PM’ow Windows Hyper-V Server.

Podczas instalacji SQL 2008, a dokładniej jednego z wymaganych komponentów – .Net Framework 3.5 SP1, natknąłem się na taki oto obrazek – “Download complete. You can now disconnect from the Internet”.

Przez chwilę zastanawiałem się, co autor tego komunikatu miał na myśli. Mamy przecież rok 2008, XXI wiek pełną gębą, powszechny dostęp do Internetu na łączach szerokopasmowych czy nawet przez komórkę… A tu, taki komunikat! I to nawet pisane z “the Internet”.

Staramy się równać w dół czy mieć ambicje do tworzenia standardów?

Hyper-V import tool

19 Wrzesień 2008

Jeśli chciałbyś przenieść swoje wirtualne maszyny z Virtual Server 2005 lub VirtualPC 2007 do Hyper-V, Matthijs ten Seldam ma dla Ciebie doskonałe narzędzie: VMC to Hyper-V Import Tool.

Funkcje programu (EN):

  • Import of VMC files of both VS2005 and VPC2007
  • Creation of VM on local Hyper-V host
  • Creation of VM on remote Hyper-V host
  • Validation of virtual disk and ISO files in local scenario
  • Editing of virtual drive image paths (vhd, vfd, iso)
  • Swapping of the first SCSI disk with the first IDE disk
  • Specification of static MAC addresses
  • Specification of either legacy (emulated) or enhanced network adapter
  • Specification of # of virtual processors and resource control
  • Specification of management settings
  • Specification of COM ports
  • Specification of device boot order
  • Specification of alternate Virtual Machine path
  • Built-in help in CHM file
  • Support for both x86 and x64 Vista and Server 2008

Więcej na stronie VMC to Hyper-V Import Tool Available

Kup sobie superkomputer

16 Wrzesień 2008

Za $25,000 każdy może sobie nabyć superkomputer firmy Cray z Windows HPC Server 2008 na pokładzie. Niemożliwe? A może jeszcze chciałbyś taki superkomputer kupić poprzez web i zapłacić kartą kredytową, prawie jak w sklepie amazon.com?

Nie ma problemu! Dzisiaj o 0800AM PDT Microsoft ogłosi porozumienie z Cray Inc., na podstawie którego superkomputer Cray CX1 trafi do sprzedaży.

Więcej szczegółów tutaj.

Update: strona Cray’a o nowym CX1

W poprzedniej notce na ten temat wspomniałem o “podstępnym” pomyśle wykorzystania pól Notes w Project Professional 2007/Project Server 2007 by mogły być wykorzystywane przy tworzeniu raportów w SQL Reporting Services.

Jednak opisany przeze mnie sposób mógł u niektórych osób powodować pojawienie się błędu w miejsce spodziewanego tekstu z pola Notes. Oto błąd, jaki mógł się pokazać po uruchomieniu reportu na serwerze Reporting Services:

Request for the permission of type 'System.Security.Permissions.UIPermission,
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Raport uruchamiany lokalnie w Visual Studio 2005 nie pokazywał tego rodzaju błędu.

Do bardzo długich poszukiwaniach, konsultowaniu problemu z Christophem Fiessingerem, jego kolegą Samem Brooksem (który wymyślił tę metodę) udało mi się nawiązać kontakt z programistami SQL Reporting Services 2005. To właśnie z ich pomocą udało mi się ten problem rozwiązać.

Rozwiązaniem była poniższa modyfikacja pliku rssrvpolicy.config. Linie, które prezentuje zostały dodane do pliku, jaki miałem w systemie.

<SecurityClass
Name="UIPermission"
Description="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0,
             Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</SecurityClasses>

[...]
<PermissionSet class="NamedPermissionSet" version="1" Name="UIP">
<IPermission class="SecurityPermission" version="1" Flags="Execution" />
<IPermission class="UIPermission" version="1" Unrestricted="true" />
</PermissionSet>

W domyślnej konfiguracji pliku rssrvpolicy.config można znaleźć definicję CodeGroup Report_Expressions_Default_Permissions. Tę grupę należy nakierować na wykorzystywanie nowego PermissionSetName o nazwie UIP, czyli dodajemy:

PermissionSetName="UIP"

do taga <CodeGroup>.

Specjalne podziękowania dla Jamie Warner’a za pomoc.

…czyli sagi o Microsoft EPM część dalsza.

W Project Server 2007 (fragmencie układanki EPM z Microsoft) raportowanie nie jest dane wprost z pudełka. By zbudować raporty zgodne z oczekiwaniami menedżerów projektów i biznesu należy wykorzystać własne umiejętności, doświadczenie, odrobinę intuicji i sporą dawkę dokumentacji.

Ja do konstrukcji raportów dla projektów na platformie SQL Reporting Services 2005 wykorzystałem pola Notes (Notatki) z zadań.

Następnie utworzyłem Enterprise Custom Field dla zadania, by rozróżniać zwykłe notatki od tych, które mają ukazywać się w raportach.

Następnie wykorzystując poniższy kawałek kodu SQL i VB (dostępny z bloga Chris’a F.):

SELECT ProjectName,TaskName,TaskFinishDate,TRTF.TASK_RTF_NOTES
FROM MSP_EpmTask_UserView AS T
INNER JOIN MSP_EpmProject_UserView AS P
ON P.ProjectUID=T.ProjectUID
INNER JOIN ProjectServer_Published.dbo.MSP_TASKS AS TRTF
ON TRTF.TASK_UID=T.TaskUID
WHERE TaskIsProjectSummary=0
AND TRTF.TASK_RTF_NOTES is not null
and P.ProjectName = @ProjectName
and t.[Reporting: General Status Update]='Yes'
and t.taskfinishdate > getdate()-5
ORDER BY P.ProjectName, T.TaskFinishDate desc

Otrzymałem raport, który następnie użyłem w konstrukcji większego raportu.

Jeśli ktoś potrzebuje dokładniejszych wytycznych jak wykorzystać powyższą metodę do raportowania – proszę o komentarz bądź kontakt.