Archive

Archive for the ‘Oprogramowanie klienckie’ Category

Skype – złożoność hasła.

August 19th, 2010 No comments

Hmm, ostatnio zbyt często zmieniam hasło w Skype i dziś trochę zwątpiłem. Wpisałem hasło typu @gal20SkypeW@W!002 po czym pojawił się komunikat:

clip_image001

Można się sprzeczać, że hasło posiada nazwę produktu, jednak według mnie jest ono wystarczająco złożone i raczej ciężko będzie je odgadnąć czy złamać za pomocą słownika lub metod siłowych.  Co ciekawe hasło typu Skyp3Poland jest wystarczające mocne i może zostać użyte, chodź prawdopodobieństwo jego odgadnięcia jest już dużo większe:/ Ciekawe na jakie wystąpienia słów jest sprawdzane hasło przed jego zatwierdzeniem. Może tylko Skype?

Categories: Oprogramowanie klienckie Tags:

Instalacja Virtual Server 2005 R2 na Windows 7

May 24th, 2010 4 comments

W Siódemce wprowadzono natywne wsparcie dla obrazów VHD i dodatkowo całkiem ładnie zintegrowano VirtualPC z Explorerem. Niestety domyślnie Windows 7 nie wspiera Virtual Server 2k5 R2:/ Innymi słowy nie za bardzo mamy jak uruchomić nowy laucher dla kursów MOC:/ Podczas instalacji VS2k5 dostaniemy komunikat typu:

image

Mimo komunikatu instalacja zakończy się sukcesem. Niestety po ponownym uruchomieniu komputera system nie będzie mógł podnieść usługi vssrvc.exe, ponieważ zostanie ona uznana za niekompatybilną. Rozwiązanie problemu, które udało mi się znaleźć polega na wyłączeniu, na czas instalacji, części opcji mechanizmu zgodności.

Szybkie Now how:

  1. Na starcie instalujemy IIS, jest do jeden z dodatków systemu, który możemy doinstalować przez dodaj usuń programy.
  2. Po zainstalowaniu IIS odpalamy jako administrator gpedit.msc.
  3. W drzewie polis przechodzimy do Konfiguracja komputera –> Składniki Systemu Windows –> Zgodność aplikacji.
  4. Następnie włączamy odpowiednie ustawienia, nie wszystkie z ustawień są wymagane. Obecnie nie miałem czasu dochodzić, które poza widocznymi na zdjęciu mogą być nie skonfigurowane:image
  5. Po konfiguracji w/w opcji przechodzimy dalej do gałęzi  Konfiguracja komputera –> System –> Rozwiązywanie Problemów i diagnostyka –> Diagnostyka zgodności aplikacji.
  6. Wyłączamy klucze zgodnie z poniższym rysunkiem:image
  7. Zamykamy gpedit.msc
  8. Uruchamiamy wiersz poleceń jako administrator i wpisujemy: gpupdate /force
  9. Restartujemy komputer, czasami gdy komputer nie zostanie zrestartowany Asystent zgodności aplikacji uruchomi się podczas instalacji.
  10. Uruchamiamy instalator Virtual Server 2k5 R2
  11. Po zakończeniu instalacji przechodzimy do katalogu gdzie zainstalowaliśmy VServer (Domyślnie: C:\Program Files\Microsoft Virtual Server\
  12. Zmieniamy nazwę pliku vssrvc.exe na np. vssrvc7.exe
  13. Za pomocą Run As uruchamiamy regedit i modyfikujemy wszystkie klucze rejestru, które zawierają wpis vssrvc.exe na  vssrvc7.exe.
  14. Uruchamiamy ponownie komputer
  15. Cofamy wszystkie zmiany z kroku 4-6

Czy Virtual Server 2005 będzie jeszcze w pełni wspierany przez Windows 7 tego nie wiadomo. Osobiście wydaje mi się, że nie. Wynika to z faktu, że nie jest to usługa dedykowana na desktopy. Poza tym V Server nie posiada niektórych dodatków, które pojawiły się w nowym Virtual PC.

Categories: Windows 7, Środowiska Wirtualne Tags:

VMware Player vs VMware Workstation

March 20th, 2010 1 comment

Główną przyczyną dla której zakupiłem VMware Workstation było dobre wsparcie dla systemów innych niż Windows oraz spore możliwości konfiguracji wirtualnych maszyn i w przeciwieństwie do VMware Player 2.5 pozwalał on tworzyć wirtualne maszyny.  Jednak ostatnio zauważyłem, że Player w wersji 3.0 potrafi tworzyć maszyny wirtualne i w wygodny sposób je edytować. Skoro Player obsługuje w/w funkcje to czy warto płacić dodatkowe 189$ ??

Porównanie:

  • Wielkość pamięci którą możemy przyznać wirtualnej maszynie w przypadku Workstation 7 wynosi 32GB a w przypadku Player 3.0 8GB.
  • Workstation obsługuje możliwość częściowego klonowania maszyny wirtualnej. Tak wykonany klon korzysta z dysku maszyny podstawowej a zmiany zapisuje w dodatkowym dysku różnicowym, co pozwala nam zaoszczędzić przestrzeń dyskową.
  • Workstation pozwala tworzyć i zarządzać migawkami (snapshots).
  • Player nie posiada komponentów umożliwiających integrację z Visual Studio lub Eclipse. Narzędzia integrujące potrafią znacznie przyśpieszyć testowanie aplikacji na maszynach wirtualnych.
  • Player nie posiada możliwości tworzenia grup maszyn wirtualnych (team).
  • Workstation pozwala nagrywać czynności, które wykonujemy na maszynie wirtualnej, przydatne dla trenerów lub osób zajmujących się materiałem e-larningowym.
  • Jeśli wewnątrz maszyny wirtualnej przetrzymujemy ważne dane to możemy je zabezpieczyć poprzez szyfrowanie dysku wirtualnego. Niestety ta opcja nie jest dostępna w VMware Player.

Z cyklu konsola nie gryzie: Gdzie ten ogon.

January 13th, 2010 No comments

Cztery lata używania systemów innych niż Windows odbijają dość mocne znamię :) Szczególnie gdy ktoś przez spory okres czasu bardziej zaprzyjaźniał się z konsolą niż z X-ami. Mimo iż od około trzech lat cały czas zaprzyjaźniam się z “oknami” to nadal zdarza mi się korzystać z wiersza poleceń.

Tak, w systemach Windows jest coś takiego jak wiersz poleceń. Microsoft wypuszczał i wypuszcza masę narzędzi ułatwiających pracę w konsoli. Cześć z tych narzędzi nie jest domyślnie instalowana w systemie dlatego wiele osób nie wie o ich istnieniu.

Ostatnimi czasy spotkałem się z kilkoma pytaniami od studentów i znajomych, które dotyczyły  odpowiednika unixowej komendy tail. W przypadku systemów Windows Server do 2003 i systemów klienckich do Windows XP sprawa była dość prosta. Wystarczyło pobrać  Windows Resource Kit Tools. Po zainstalowaniu i uaktualnieniu ścieżki Path o odpowiednie wpisy można było korzystać z komendy tail.

image

Jedynym minusem tej komendy jest brak możliwości definiowania ilości wierszy, które mają zostać wyświetlone.  Opcja –f działa bardzo dobrze i poprawnie wyświetla informacje dopisywane do pliku.

A co z Windows Server 2008, Vista i 7?

W tych systemach te same czynności możemy wykonać za pomocą powłoki Powershell.

Odpowiednikiem komendy tail –f nazwa_pliku jest Get-Content nazwa_pliku –wait.

image

Co ciekawe da się też wyświetlać określoną ilość linii: Get-Content nazwa_pliku | select -last 2.

clip_image001

Jak widać osoby które lubią konsole wcale nie mogą narzekać na brak poleceń i możliwości jej wykorzystania. Owszem bazowy asortyment poleceń nie jest duży jednak można go rozszerzyć za pomocą dodatkowych paczek, powłok i programików z rożnych stron.

Dlaczego Office 2007/2010 “psuje” pliki ODS.

January 11th, 2010 No comments

Jeśli ktoś planuje instalacje Office 2007 z SP2 dla pełnego wsparcia ODF to polecam dodatkowo zainstalować dodatek Sun’a. Jak na razie Office 2007 jak i 2010 nie wspiera standardu ODF 1.2. Standard ten aktualnie jest w końcowej fazie zatwierdzania przez OASIS.

Z tego co udało mi się wyczytać na blogu Doug’a Mahugh’a Microsoft nie ma planów wprowadzenia obsługi nowej wersji otwartego formatu przed jego ostatecznym zatwierdzeniem. Jest to trochę irytujące dlatego, że ODF 1.0 czy 1.1 nie zawiera wzmianki o tym jak mają wyglądać formuły matematyczne. Czyli tak na chłopski rozum: Jeśli ktoś stworzy sobie jakąś funkcje np. SUM w OpenOffice i będzie próbował ja odczytać w Office 2007/2010 to próba ta zakończy się niepowodzeniem. Btw. żeby nie było podobne problemy są między innymi pakietami biurowymi.

Pozostaje mieć tylko nadzieję, że zatwierdzenie ODF 1.2 nie zostanie przesunięte a Microsoft w miarę szybko wdroży pełne wsparcie dla nowej wersji standardu.

Swoją drogą taka ciekawostka: Jedne firmy wdrażają do swoich produktów standardy, które są jeszcze w tak zwanej formie “draft” (Cisco i draft 802.11n) a inne czekają do finalnej publikacji standardu. Nie wiem jak wy ale ja osobiście wolałbym mieć wsparcie niegotowego standardu niż wykorzystywać wtyczki firm trzecich.

PS. Oczywiście Office nie psuje plików w formacie ODF. Po prostu nie jest dostosowany do odczytywania informacji dorzuconych przez inne programy biurowe.

Windows XP mode cd.

September 17th, 2009 No comments

Parę miesięcy temu wspominałem o Windows XP Mode. Trochę wtedy ponarzekałem na ten dodatek. Jednak jak się okazało nie jestem jedyną osobą, która ma zastrzeżenia do XP Mode. Wczoraj przypadkiem trafiłem na wpis Richarda Jacobsa dot. problemów z bezpieczeństwem tego dodatku.

Na różnych portalach ludzie są tym dodatkiem zachwyceni. Ja podobnie jak Pan Jacobs uważam, że MS zapomniał o narzędziach. Narzędziach,  które pomogłyby użytkownikom w łatwym zabezpieczeniu XP Mode. W sumie przydałby się bardziej rozbudowany kreator konfiguracji wirtualnej maszyny. Duże firmy lub korporacje wdrożyły lub wrażają VDI więc one z XP Mode raczej nie skorzystają. Jednak małe firmy, które nie mogą sobie pozwolić na takie inwestycję, z miłą chęcią sięgną po XP Mode, tak samo jak użytkownicy domowi:( Niestety istnieje duże ryzyko, że spora część tych osób nie będzie miała bladego pojęcia jak i po co zabezpieczyć nowy ficzer.

Przeglądarki a mobilność.

September 15th, 2009 3 comments

Wielu z nas pracuje na note/netbookach paręnaście godzin dziennie. Ostatnio serwis LifeHacker opublikował ciekawy wpis dotyczący przeglądarek i ich powiązania z czasem jaki możemy pracować na baterii. Z jednej strony można spekulować, że IE prowadziło bo jest mocno zintegrowane z systemem. Z drugiej strony można zobaczyć, że FF i Chrome są całkiem nieźle przystosowane do  systemu Windows. Ciekawi mnie tylko dlaczego Opera wypadła tak słabo? Niby jest mniej zasobożerna od FF a mimo to mocno odbiega od czołówki.

Dystrybucja kilku wersji pakietów Office na jeden sprzęt.

September 1st, 2009 3 comments

Jak to zwykle bywa w wakacje nadchodzi taki czas kiedy trzeba uaktualnić oprogramowanie. W wielu przypadkach operacja jest dość prosta:

  • ponowna instalacja
  • uaktualnienie

Czasem jednak poza uaktualnieniem oprogramowania wymagane jest utrzymanie starszej wersji aplikacji. W przypadku Office jest to jak najbardziej możliwe. Według MS wystarczy postępować zgodnie z KB928091. Dziś przekonałem się, że w tym dokumencie brakuje opisu sytuacji, w której:

  • chcemy zachować Office 2003
  • chcemy zainstalować Office 2007 Std
  • chcemy doinstalować Access 2007

Jeśli robimy to ręcznie to nie mam problemu; podczas instalacji Office 2007 i Access 2007 mamy pytanie czy nadpisać starsza wersje, doinstalować nowsza, nadpisać tylko wybrane. Jednak jeśli wykorzystujemy do dystrybucji SCCM lub GPO to musimy pamiętać by:

  • Podczas tworzenia pliku MSP zaznaczyć co chcemy nadpisać a czego nie,
  • podczas instalacji zachować odpowiednia kolejność (Office 2k3, 2k7, Access 2k7).

Jeśli wrzucimy instalacje (np. Task sequence w SCCM ) w kolejności Office 2k3, Access 2k7, Office 2k7 to:

  • instalator Access 2007 pozostawi nam na dysku Access 2003 i pozostałe komponenty Office 2003
  • instalator Office 2007 usunie nam z dysku World, PowerPointa, Excela 2k3 a Access 2003 pozostawi bez zmian.

 

Według MS dzieje się tak, ponieważ instalator pakietu Office  sprawdza co ma pozostawić tylko w przypadku pierwszej instalacji.  Co ciekawe podczas instalacji w odwrotnej kolejności instalator mimo wszystko sprawdza co usunąć a co zostawić.

Categories: Komercja, Oprogramowanie klienckie Tags:

Pobieranie nazwy hosta z dhcp.

August 26th, 2009 6 comments

Jakiś tydzień temu zabrałem się za kończenie nowych obrazów dla komputerów na salach laboratoryjnych. Poza drobnymi zmianami (dystrybucja lekkich aplikacji via SCCM) chciałem zminimalizować czas jaki poświęcałem na zmianę nazw komputerów po klonowaniu. Kilka lat temu przyjęliśmy, że komputery na salach będą się nazywać KompXXX-YY. Gdzie XXX to numer sali a YY to komputer na miejscu YY licząc od prawej strony sali. W systemach Linux rozwiązanie było proste :) Dorzuciliśmy opcję 12 do DHCP i systemy pobierały sobie odpowiednią nazwę z serwera DHCP. W przypadku Windows sprawa się komplikuje i dobrze by było nazwy zmienić na samym początku by nie robić sobie bałaganu. Nazwę można pobrać czy wygenerować na kilka sposobów:

  • pobranie nazwy z DNS – wszystko fajnie, tylko jak nazwy nie mam w DNS bo pojawi się po dodaniu Windowsa do domeny
  • wykorzystanie Sysprepa do generowania nazwy Komp400-XX – Muszę mieć kilka plików unattend do Sysprepa :/
  • przeparsowanie otrzymanego Adresu IP i wygenerowanie nazwy komputera.  – Czasem od naszej reguły nazewnictwa zdarzają się wyjątki:)
  • pobranie nazwy z DHCP – idealne rozwiązanie.

 

Skoro miałem wszystkie nazwy w DHCP to teraz wystarczyło pobrać odpowiednią opcje i zamienić nazwę stanowiska:) Jak sie okazało otrzymanie nazwy komputera z DHCP i wrzucenie jej do jakieś zmiennej nie jest takie proste. Jedyne dostępne API dla Windowsowego klienta DHCP jest napisane w C++:/  Opcje z DHCP pobieramy za pomocą funkcji DHCPRequestParams, która przyjmuje na wejściu kilka parametrów. Między innymi wymagane jest podanie nazwy interfejsu sieciowego. TUTAJ UWAGA nazwa interfejsu jest rozumiana jako identyfikator urządzenia a nie jako np. “Połączenie lokalne”. Identyfikator również możemy sobie wyciągnąć za pomocą API do interfejsów sieciowych.  Przyznam się, że stworzenie działającej aplikacji, która pobiera identyfikator pierwszego interfejsu a następnie wyciąga z DHCP odpowiednią nazwę zepsuł mi trochę krwi. Najpierw musiałem sobie przypomnieć pewne podstawy Visual C++, potem musiałem załapać, że w nazwie interfejsu mam podać identyfikator. Następnie musiałem rozgryźć jak dynamicznie wyszukać ten identyfikator. Koniec końców udało mi się napisać mały programik w VC++, który pobiera odpowiednią opcje z DHCP i za pomocą newsida zmienia nazwę i SID. Poniżej kod, który pobiera id pierwszego interfejsu i następnie wyciąga z DHCP nazwę stacji.  Przypominam iż z zawodu nie jestem programistą i na samym początku dążę do tego by kod działał wedle moich oczekiwaniami. Następnie jak mam czas to staram się go upiększać. W kodzie częściowo starałem się wykorzystać przykłady dostępne na stronach MSDN.

#include < winsock2.h>
#include < iphlpapi.h >
#include < stdio.h >
#include < stdlib.h >
#include < windows.h >
#include < dhcpcsdk.h >
#include < string >
#include < wchar.h >
#pragma comment( lib, "dhcpcsvc.lib" )
#pragma comment(lib, "IPHLPAPI.lib")
#define MALLOC(x) HeapAlloc(GetProcessHeap(), 0, (x))
#define FREE(x) HeapFree(GetProcessHeap(), 0, (x))

int __cdecl main()
{
	CONST int iAdapterIDLenght= 260;
	CONST int iHostnameLenght=60;
	int dw;
	CHAR pszHostNameBuf[iHostnameLenght];
	DWORD dwError, dwSize;
	CHAR TmpBuffer[iHostnameLenght];
	WCHAR wcAdapterName[iAdapterIDLenght];
    PIP_ADAPTER_INFO pAdapterInfo;
    PIP_ADAPTER_INFO pAdapter = NULL;
    DWORD dwRetVal = 0;
	ULONG ulOutBufLen = sizeof (IP_ADAPTER_INFO);

    pAdapterInfo = (IP_ADAPTER_INFO *) MALLOC(sizeof (IP_ADAPTER_INFO));
    if (pAdapterInfo == NULL)
	{
        printf("Error allocating memory needed to call GetAdaptersinfo\n");
        return 1;
    }
    if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
	{
        FREE(pAdapterInfo);
        pAdapterInfo = (IP_ADAPTER_INFO *) MALLOC(ulOutBufLen);
        if (pAdapterInfo == NULL)
		{
            printf("Error allocating memory needed to call GetAdaptersinfo\n");
            return 1;
        }
    }

    if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
	{
        pAdapter = pAdapterInfo;
		dw = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, pAdapter->AdapterName, -1, wcAdapterName, 0);
		MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, pAdapter->AdapterName, -1, wcAdapterName, dw);

		DHCPCAPI_PARAMS DhcpApiHostNameParams = {
				0,                // Flags
				OPTION_HOST_NAME, // OptionId
				FALSE,            // vendor specific?
				NULL,             // data filled in on return
				0                 // nBytes
			};
		DHCPCAPI_PARAMS_ARRAY RequestParams = {
            1,  // only one option to request
            &DhcpApiHostNameParams
        };

		DHCPCAPI_PARAMS_ARRAY SendParams = {0,NULL};

		dwSize = sizeof(TmpBuffer);
		dwError = DhcpRequestParams(
            DHCPCAPI_REQUEST_SYNCHRONOUS, // Flags
            NULL,                         // Reserved
            wcAdapterName,					// Adapter Name
            NULL,                         // not using class id
	           SendParams,		          // sent parameters
            RequestParams,                // requesting params
            (PBYTE) TmpBuffer,            // buffer
            &dwSize,                      // buffer size
            NULL                          // Request ID
        );

		if( ERROR_MORE_DATA == dwError )
		{
			printf("Error: %s",dwError);
		}

		if( NO_ERROR == dwError )
		{

            if( DhcpApiHostNameParams.nBytesData )
            {

                CopyMemory(pszHostNameBuf, DhcpApiHostNameParams.Data,DhcpApiHostNameParams.nBytesData);
                pszHostNameBuf[DhcpApiHostNameParams.nBytesData] = '\0';
				printf("(12) DHCP Host Name: %s\n",pszHostNameBuf);
                return 0;
            }
		}
		else
		{
			printf("Error: %u",dwError);
		}

	}
	else
	{
        printf("GetAdaptersInfo failed with error: %d\n", dwRetVal);

    }
    if (pAdapterInfo)
        FREE(pAdapterInfo);
	getchar();
    return 0;
} 

W wolnej chwili postaram się napisać małą bibliotekę do podpięcia pod C#, tak bym mógł pobrać dowolne opcje z DHCP.

Categories: C / C++, Oprogramowanie klienckie Tags:

VMware Workstation & Windows 7.

May 31st, 2009 No comments

Po instalacji nowego VMware na win7 mogą wystąpić problemy łączności maszyn wirtualnych z światem za pośrednictwem połączenia mostkowanego z automatycznym wykrywaniem odpowiedniego interfejsu. Aby rozwiązać ten problem wystarczy wejść na hoście w Network and Sharing Center –> Change adapter settings i w właściwościach wykorzystanego połączenia odznaczyć i zaznaczyć  VMware Bridge Protocol (1).

image

Tak przy okazji nie wiem czy ktoś zauważył ale zapewnienie maszyną wirtualnym wyjścia na świat sprawia chyba najwięcej problemów niezależnie od wirtualizatora. Jeszcze pół biedy jak próbujemy wyjść z tej samej rodziny systemów. Jednak jak  się komuś zamarzy Linux na Windows lub odwrotnie to zawsze występują mniejsze lub większe problemy z połączeniem sieciowym.