Magia w Remote Apps

Magia w Remote Apps

  • Comments 5
  • Likes

Dzisiaj będzie o konkretnym przypadku. Otóż była sobie aplikacja. Własnego wyrobu (w sensie, że firma miała dostęp do kodu, programistów itp.), absolutnie krytyczna dla biznesu i używająca CPU w sposób dość specyficzny. Otóż najważniejsze operacje bardzo mocno obciążały procesor na kilkanaście sekund, po których aplikacja była gotowa do użytku i procesora nie obciążała już tak wyraźnie przez kolejne kilka albo i kilkanaście minut. Trudno się dziwić, że pojawiła się koncepcja pilotażowego scentralizowania jej poprzez przeniesienie do usług terminalowych. Na silnym, wieloprocesorowym serwerze, mocne chwilowe obciążenia ładnie rozkładały się pomiędzy wielu użytkowników, a równocześnie czas oczekiwania na tę jedną operację znacząco się skrócił. Generalnie, wszystko działało jak trzeba, więc pojawił się pomysł, żeby pójść dalej. Zamiast udostępniać przez usługi terminalowe pełne pulpity, z Menu Start itp., lepiej przecież "wyterminalować" jedną aplikację. Poza elegancją takiego rozwiązania, Remote Apps mają ogromną zaletę, że przy porównaniu do aplikacji zainstalowanych lokalnie, nie zmienia się znacząco to, co użytkownik widzi na ekranie. W sytuacji, gdy z aplikacją pracują setki osób to ma naprawdę ogromne znaczenie, ponieważ łączny czas zaoszczędzony na szkoleniach i zmianie nawyków sumuje się do niemałej wartości.

Została przygotowana nowa platforma (całkiem spora szafa pełna serwerów) i wykonano testy. Wszystko było dobrze, choć odwlekane w nieskończoność aktualizacje ServicePacków na WindowsXP nabrały tempa, bo Remote Apps wymagało aktualizacji klienta RDP. ServicePack 3 pozwolił na normalną pracę. Po aktualizacji wyterminalowano kilka systemowych aplikacji, bo ludziom z IT łatwiej poruszać się po notepadzie, kalkulatorze czy menedżerze zadań niż po aplikacji biznesowej. Ta uruchamiała się poprawnie, więc uznano że w codziennych pracach również działa tak, jak trzeba. Było to o tyle uzasadnione, że w realiach udostępniania pełnego pulpitu pracowała już w kilku miejscach produkcyjnie i bez zastrzeżeń. Można było przejść do pilota. I tu zaczęły się schody.

Po uruchomieniu kilku instancji aplikacji przez jednego użytkownika, przy bardzo szczególnych operacjach okazywało się, że dane wpisywane w jednym oknie pojawiają się w zupełnie innym. Czysta magia. Problem był prosty do powtórzenia i dawał się dzięki temu dość prosto diagnozować. Szybko okazało się, że pojawia się tylko przy Remote Apps. Udostępnienie na tym samym serwerze całego pulpitu i uruchamianie aplikacji spod explorer.exe powodowało, że problem znikał. Po wielu godzinach dłubania w konfiguracji farmy (a tak naprawdę szukania natchnienia co by tu mogło być powodem problemów) po dyskusjach z programistami (kto programował, ten wie jak radosne może być szukanie przyczyny w takim scenariuszu) pojawiła się jeszcze jedna myśl: A co na to Windows 7? Okazało się, że w Windows 7 problem nie występuje. Dalej było już z górki, mimo że szybka zmiana systemu na stacjach klienckich nie wchodziła w grę. Wystarczyła instalacja klienta RDP 7.0 na XP (miło z jej strony, że nie wymaga restartu), testy i okazało się, że klawiatura działa tak, jak trzeba. Pozostało zautomatyzowanie instalacji (WSUS+skrypty tam, gdzie WSUS był zbyt powolny) i wykrywanie gdzie jeszcze problem istnieje. Gdyby ktoś kiedyś potrzebował się dowiedzieć o wersję klienta RDP na zdalnej stacji, to z wiersza poleceń można tak:

wmic /node:nazwakomputera datafile where "name='c:\\windows\\system32\\mstsc.exe'" get version

Warto pamiętać o podwójnych backslashach wymaganych przez składnię WMIC.

Autor: Grzegorz Tworek [MVP]

Comments
  • Spróbowałam wydac tą komendę na swoim systemie Windows 7 i nie zadziałała. Miała prawo? Czy to tylko działa w środoisku domenowym?

  • Rozumiem, że chodzi o polecenie "WMIC..." Powinno działać niezależnie od środowiska, jeżeli tylko na docelowym komputerze masz odpowiednie uprawnienia.

    Możesz napisać jak dokładnie kończy się próba użycia?

  • Tak, dokładnie o to polecenie.

    Uruchomiłam wiersz poleceń z uprawnieniami administracyjnymi i po wydaniu komendy otrzymuję komunikat; "Invalid Global Switch"

  • Sprawdziłem i działa poprawnie... można ze strony skopiować i wkleić, też będzie ok.

  • Anno: Twoja nazwa komputera zapewne ma myślnik "-" w nazwie, musisz wziąć ją w pojedyncze apostrofy 'nazwa-komputera' i wszystko będzie OK :-)

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment