Przy komputerze trzeba siedzieć prosto. Dość wyświechtany slogan, z którego wszyscy zdajemy sobie sprawę i jednocześnie praktycznie nikt go nie przestrzega. O ergonomii i właściwym miejscu pracy powiedziano wiele i jednocześnie wciąż za mało, to temat na wiele innych artykułów, a może nawet konkurencyjny portal. Problemy z właściwymi miejscem pracy przy komputerze ma każdy, wystarczy przejść się po dowolnym biurze, rehabilitanci dostają zawału na miejscu :-). Co dziwne, w zasadzie potrzeba niewiele, aby zmienić ten stan rzeczy, najczęściej ludzie zwyczajnie nie wiedzą jak to wszystko powinno być ustawione a nadrzędnym celem konfiguracji miejsca pracy, jest taka pozycja monitora, w której nikt nie widzi że oglądasz redtube.com za pieniądze pracodawcy.
Jak ktoś chce się dowiedzieć więcej polecam http://www.zdrowebiuro.pl/ gdzie z zadziwiająco mała ilością marketingu poruszono najważniejsze kwestie.
Do tej pory żyłem w przekonaniu, że tego typu problemy mają “zwyczajni” użytkownicy. Hipoteza legła w gruzach za sprawą… wystawy fotograficznej. Ale po kolei.
Wystawa miała miejsce w warszawskiej Yours Gallery, niestety właśnie została zamknięta. Autor wykazał się nie lada cierpliwością i pomysłem fotografując zawodowych graczy i ich miejsca “pracy”. Sam pomysł i wykonanie bardzo ciekawe, można sobie troszkę poczytać i obejrzeć, o tutaj: http://www.yoursgallery.pl/exhibitions.php?action=details&exh_id=50. Do czego jednak zmierzam?
Można by przyjąć założenie, że młodzi, kreatywni ludzie nałogowo, a w zasadzie zawodowo zajmujący się gamingiem (graniem brzmi jakoś… dziecinnie :-)), zdają sobie chociaż w minimalnym stopniu sprawę z wpływu wysiadywania dziennie godzin przed komputerem w niewłaściwej pozycji… jeśli nie oni, to chociaż ich rodzice. Niestety nie zdają sobie. Po przeanalizowaniu zdjęć z ich “miejsc pracy” 10 na 14 przeczyło wszelkim zasadom ergonomii i zdrowego rozsądku, a idealne nie było żadne. Nieregulowane krzesła, brak podłokietników, nieprawidłowe rozłożenie myszek i klawiatur (na różnych płaszczyznach), czy nawet tak trywialne rzeczy jak nierównoległe ustawienie monitora. Co przy intensywnym wykorzystaniu niemalże gwarantuje trwałe problemy z kręgosłupem i chyba resztą ciała tez. Do końca życia.
Na podanym powyżej linku, widać zdjęcia dwóch “stanowisk pracy” o ile nie wchodzimy w kwestie estetyczną i higienę, to i tak Ci ludzie zdrowi nie będą. Pozostałe zdjęcia, musicie uwierzyć na słowo - przedstawiają identyczną sytuacje. Zastanawiające jest to, że praktycznie wszędzie można zdecydowanie polepszyć sytuacje jedynie poprzez inne ustawienie monitora, czy komputera, nie mówiąc o tym, że na regulowane krzesło dla dziecka dorzucą się prawie wszyscy rodzice, “bo dobre dla syneczka”.
Zastawiam się gdzie jest zatem błąd? Mnie akurat w szkole nauczyli o siedzeniu przy komputerze, pomijając fakt że przerobiłem 4 lata rehabilitacji w Konstancinie i zwyczajnie mam obsesje na tym punkcie. Ale problem musi być gigantyczny, te 14 biurek stanowi przekrój dzisiejszej młodzieży ekstremalnie wykorzystującej komputery. Reszta pewnie siedzi niewiele mniej, tylko zamiast w CS to na fejsbóku. Za 5-10 lat pójdą do pracy (większość już pojedzie - na wózkach inwalidzkich) i zdrowi to oni nie będą. Czy rzeczywiście nikt z tym nic nie robi?
Ergonomio! Gdzie jesteś?
Teoria spisku 2.0
Raz:
Macie picasa 3.5?
http://googleblog.blogspot.com/2009/09/picasa-35-now-with-name-tags-and-more.html
Wśród nowych bajerów rozpoznawanie twarzy - fajny feature. Programik sam skanuje zdjęcia w poszukiwaniu twarzy, a potem automatycznie przyporządkowuje je do konrkentej osoby. Chcecie zobaczyć wszystkie zdjęcia z nexorem? prosze bardzo.
Dwa:
Kojarzycie google street view? Niezle, ulice w stanach można oglądać. A kojarzycie http://www.norc.pl/ Chłopaki chyba z węgier, zrobili tego kilka razy wiecej niż google i moge oglądać na stronie klatke mojego bloku na Targówku, w którym spędziłem sporą cześć życia.
Trzy:
Kto dostał zdjęcie z fotoradaru za przekroczenie prędkości? Ile mamy kamer monitorujących ruch na mieście? Czy ciężko jest zamontować kamerke 360stopni na dachu każdej taksówki czy radiowozu, i przekazywać obraz on-line do jakiegoś centrum danych, po hdspa? wysoka jakośc obrazu na żywo?
Cztery
Łaczymy te opcje: kupujemy od googla czy kogoś tam innego licencje na engine do wyszukiwanie twarzy, zbieramy on-line obraz z kamer z danego miasta + z tych na taksówkach/radiowozach, mielimy to w centrum danych, ktorego sfinasnowanie nie wymaga rezerw NBP, a dwóch, trzech większych firm. Mamy system, który umożliwi nam monitorowanie na bieżąco, praktycznie całej metropolii i znalezienie dowolnej osoby z kilkuminutowym? kilkusendundowym (zależne od mocy przetwarzania) opóźnieniem. Pełna inwigilacja!
Oczywiście to model, choci mi o zwrócenie uwagi na fakt, że mamy w rękach (nie w labolatoriach wojskowych) narzędzia umożliwiające pełną kontrole nad wieloma aspektami naszego życia. Ide o zakład, że coś takiego jak powyżej opisana koncpecja prędzej czy później bedzie (już jest?) w rekach jakiegoś Interpolu czy CIA.
Zaprawde żyjemy w ciekawych czasach.
Ważne: pomysłodawcą całej koncepcji był Wiktor, ja tylko pisałem po zachęcie Nexora :-)
windows backup, bootwanie z vhd i dużo czasu
podczas MTS jedna z osób zapytała się, czy to prawda, że kiedy wykona się backup Windows 7, można z tego backupu uruchomić komputer? dla niewtajemniczonych [są tacy?] jest to złożenie dwóch funkcjonalności, które pojawiły się odpowiednio w Vista i w7:
- Windows Backup w postaci image’u robiony do pliq VHD
- możliwość bootowania w7 z vhd
mówiąc bardzo w skrócie: tak, da się zbootować system z backupu [w7].
rzeczywistość jest mniej przyjemna i walczyłem 3 dni, żeby to udowodnić - przebijanie się głową przez kolejne ściany praw Murphiego jest bolesne. w efekcie osiągnąłem 95% sukcesu.
warunki początkowe
warunkiem aby taka operacja zadziałała jest bootowanie dysq vhd na takim samym [bardzo zbliżonym] kompie. testowałem na maszynie nieco odbiegającej od oryginału, ale w zasadzie ten sam model. z ciekawości odpaliłem ten sam image na sprzęcie w żadnym stopniu nie przypominającym oryginalnego i…. *wstał bez problemów* (SIC!). to pozytywna wiadomość, bo to otwiera drogę do dość prostej migracji komputerów - backup > kopia pliq na drugi komp > odpalanie systemu z vhd > instalacja nowych sterowników.
w końcu znalazłem zastosowanie dla Windows Backup - którego osobiście bardzo nie lubię, i do tej pory wieszałem na nim psy. jak się okazuje - są scenariusze, do których się przydaje [szkoda, że nie jest to po prostu backup (; ].
dla czego 3 dni?
podstawowym problemem zabierający godziny jest czas operacji wykonywanych na dyskach vhd i kopiowania via USB - nie ma to takiego znaczenia, kiedy się bawi 8-1oGB plikami, ale backupowany dysk miał 16oGB. dysk, z którego uruchamia się system musi być typu “FIXED”, backup oczywiście robi “DYNAMIC”. konwersja następuje podczas uruchomienia systemu, a więc trzeba mieć odpowiednią ilość miejsca - w innym wypadq jedyne co się zobaczy to bluescreen.
no i zaczyna się zabawa… w jaki sposób zmniejszyć dysk vhd? zadanie w zasadzie trywialne:
- należy podmountować vhd
- zmniejszyć partycję [shrink]
- użyć vhd resize do zmniejszenia dysq i konwersji na FIXED
każdy z kroków okazał się zabójczo czasochłonny i niósł ze sobą ograniczenia… a każda pomyłka to kilka h w plecy.
punkty 1 i 2 należy wykonać z w7 - vhd mount z virtual servera nie rozumie vhd z w7. nie ma problemu - wystarczy płyta instalacyjna w7. tutaj pojawia się jednak następne ograniczenie - pomimo dużej ilości wolnego miejsca w vhd, dysk da się zmniejszyć tylko o kilka procent… dla czego? pliki są sfragmentowane, a WBackup robi image dysq - a więc odzwierciedla fragmentację wewnątrz vhd. należy więc najpierw zrobić defraga. żeby go zrobić trzeba podmountować vhd jako partycja albo pamiętać o tym przed wykonaniem backupu. żeby podmountować vhd i zrobić defrag trzeba już mieć żywy w7 [na płycie instalacyjnej defraga nie ma ): ], do którego możemy go podpiąć. defrag wykonuje się kolejne kilka h…
zakładając że dysk był zdefragmentowany i możemy pomniejszyć partycję pozostaje zmiana wielkości partycji. być może miałem zbyt mało cierpliwości ale kiedy próbowałem zeshrinkować partycję na dysq dynamicznym - operacja zawieszała się i w efekcie nie dało się potem użyć vhd resize. a więc najpierw trzeba wykonać vhd resize modyfikację do FIXED [ilość miejsca: wielkość backupu + wielkość dysku oryginalnego] - kolejne kilka godzin [zostawiłem na noc q: ]. kiedy miałem już dysk FIXED, bez problemu udało mi się wykonać SHRINK [chociaż też sporo to trwało - koło godziny?]… no i teraz można użyć VHD Resize do zmniejszenia wielkości - znów ładnych parę godzin czekania. fuh.
ale kiedy już po prostu ma się odpowiednie vhd i odpowiednią ilość miejsca cała operacja jest dość prosta q:
a czemu tylko 95% sukcesu? bo dla mnie ostatnia ściana Murphiego okazała się nie do przebicia. całym celem tych wszystkich manewrów było uruchomienie starego lapa, żeby dostać się do książki adresowej outlooka. nie wiedzieć czemu outlook poczęstował mnie komunikatem, że nie ma wszystkich folderów ani połączenia z serwerem i żebym poszedł na szczaw.
na koniec kilka instrukcji
zmniejszenie partycji na dysq vhd
potrzebne: system z w7 lub płyta instalacyjna w7
założenie: vhd jest zdefragmentowany
- jeśli uruchamia się z płyty, wystarczy na pierwszym ekranie nacisnąć shift-F1o i mamy konsolę. jeśli jesteśmy w żywym systemie - cmd.exe [z trybie administratora]
- diskpart
- select vdisk file=”X:\DIR\mojbackup.vhd” - tutaj dwie uwagi. po pierwsze nazwy plików z backupu sa bardzo nieprzyjemne, więc dobrze sobie taką nazwę zmienić na coś zapamiętywalnego, po drugie jeśli mamy owe vhd na dysq USB, to jaką ma literkę? na szczęście konsola - również z płyty instalacyjnej - ma wmic’a: “wmic logicaldisk get caption,description” pomoże sprawdzić literki dysqw
- attach vdisk
- list disk
- select disk 2 - oczywiście numerek sczytany z poprzedniego listingu
- list part
- select partition 1
- shrink querymax - to trwa kilka minut ale będzie wiadomo o ile można pomniejszyć partycję
- shrink desired=60000 minimum=60000 - zmniejszenie o 6oGB… no i teraz czekać, czekać, czekać
- detach vdisk
jak to zrobić spod XP
xp to pasqdztwo. ale cóż - nie miałem wyjścia, więc przy okazji sprawdziłem. podstawowym problemem jest instalacja bootloadera z w7. zastosowałem sposób opisywany tutaj - z żywego w7 skopiowałem katalog \Windows\Boot a potem użyłem EasyBCD. ten totalnie rozwala wpisy [bo jest pisany na viste a nie na xp] a więc w pierwszej kolejności trzeba naprawić wpis dotyczący bootowania XP.
podczas zabawy z bcdedit mam wrażenie, że to działa niedeterministycznie - używanie aliasów ID często kończy się w zupełnie nieprzewidywalny sposób. ciekawe jest też to, że niektóre wpisy nie są pokazywane - np. wpis {ntldr}:
- jeśli wykona się bcdedit /create {ntldr} /d “gowniany XP” - skończy się to komunikatem, że taki wpis już jest - pomimo, że /v go nie pokazuje. no więc najpierw trzeba go usunąć [z opcją force]
- bcdedit /delete {ntldr} /f
- bcdedit /create {ntldr} /d “gowniany XP” - teraz zadziała (;
- bcdedit /set {ntldr} device partition=D: - tutaj to d: jest sporą ciekawostką. w zasadzie to przecież vhd powinno być gdzieś dalej… to jedna z zagadek: ‘czy da się tą wartość deterministycznie wyliczyć?’
- bcdedit /set {ntldr} path \ntldr
- bcdedit /displayorder {ntldr} /addlast - dopiero po tej komendzie, wpis pokazuje się na liście przy parametrze /v
i tyle. xp się uruchamia. oczywiście trzeba jeszcze dodać samo vhd do listy bootowania ale tutaj już sobie wygooglujcie sami q:
wszystko takie proste… w teorii.
n. [w lekkim pośpiechu. sory za tempo ale cały czas braqje mi czasu… mam nadzieję że *cokolwiek* z tego textu jest zrozumiałe. kiedy czytałem go drugi raz sam niewiele zrozumiałem, więc postanowiłem dodać na końcu tegoż-oto disclaimera (; ]
SCCM Console Extensions – WOL nie działa na WS2008
Ostatnio mocno zainteresowałem się rozszerzeniami konsoli SCCMa. Ogólnie polegają one na fajnym wykorzystaniu przestrzeni nazw WMI, którą daje ConfigMgr. Ale żeby nie malować trawy na zielono najpierw zainstalowałem 2 pakiety wtyczek – SCCM Right Click Tools oraz SCCM Console Extensions. Po ich przetestowaniu muszę powiedzieć, że można robić niezłe cuda w MMC przy użyciu hta i vbs ;)
Tyle, że jedna funkcjonalność mi nie działała – Wake On Lan. Wiem, że komputery mają uruchomiony remote wake up i są podłączone do sieci (1 warstwa) mam możliwość directed broadcast (2. warstwa), więc problem musi być z działaniem samej wtyczki. Po kliknięciu tutaj:
Mamy śliczny komunikat, że wszystko się udało.
grzebiąc w kodzie znajdujemy coś takiego:
If errReturn <> 0 Then
LogArea.Value = LogArea.Value & "ERROR!" & vbCrLf
LogArea.Value = LogArea.Value & " " & Err.Description & vbCrLf
LogFile.WriteLine(Date & " " & Time & vbTab & "Send Wakeup: ERROR!" & vbTab & Err.Description)
LogArea.scrollTop = LogArea.scrollHeight
Else
WolSuccess = 1
LogArea.Value = LogArea.Value & "Wakeup sent to " & strMACAddress & vbCrLf
LogArea.scrollTop = LogArea.scrollHeight
LogFile.WriteLine(Date & " " & Time & vbTab & arrComputers(iList) & ": Wakeup sent to " & strMACAddress)
End If
Widać, że to nic innego niż wywołanie wol.exe z katalogu z rozszerzeniami. Sprawdzamy co się dzieje z tym programikiem. Po wpisaniu w CMD – "c:\Program Files\SCCMConsoleExtensions\WOL.exe" 00219B7B80CD też działa… ale ale – brakuje adresu IP i maski do kierunkowego bradcastu. Patrzymy wol.exe /? można podać tylko IP :/ niedobrze. sieci z nie klasowymi maskami odpadają. po chwili szperania w bingu znalazłem narzędzie wolcmd.exe. Usage: wolcmd [mac address] [ipaddress] [subnet mask] [port number]. No i pięknie teraz tylko wrzucić je do odpowiedniego katalogu i podmienić kawałęk skryptu na coś takiego:
For Each instance in colMACAddress
strMACAddress = instance.MACAddress
strWOLAddress = (Replace(instance.MACAddress,":",""))
strIPAddress = instance.IPAddress
LogArea.Value = LogArea.Value & arrComputers(iList) & ": "
LogArea.scrollTop = LogArea.scrollHeight
errReturn = WshShell.Run(chr(34) & strCurrentPath & "wolcmd.exe" & chr(34) & " " & strWOLAddress & " " & strIPAddress & " " & strNetmask & " 7",0)
If errReturn <> 0 Then
LogArea.Value = LogArea.Value & "ERROR!" & vbCrLf
LogArea.Value = LogArea.Value & " " & Err.Description & vbCrLf
LogFile.WriteLine(Date & " " & Time & vbTab & "Send Wakeup: ERROR!" & vbTab & Err.Description)
LogArea.scrollTop = LogArea.scrollHeight
Else
WolSuccess = 1
LogArea.Value = LogArea.Value & "Wakeup sent to " & strMACAddress & "\" & strIPAddress & vbCrLf
LogArea.scrollTop = LogArea.scrollHeight
LogFile.WriteLine(Date & " " & Time & vbTab & arrComputers(iList) & ": Wakeup sent to " & strMACAddress)
End If
Next
No i wtedy działa :) Jeszcze jedna uwaga – w czasie szukania pól do skryptów niezastąpione jest narzędzie WMI CIM Studio. tylko należy pamiętać, żeby wybrać do przeglądania namespace \\Srv1\root\SMS\site_LAB gdzie Srv1 to nazwa serwera SCCM, a LAB to trzyliterowy kod site’u. Najciekawsze klasy są w gałęzi – SMS_Group\SMS_G_System_Current\*
Ciekawe czasy
„Obyś żył w ciekawych czasach” - chińskie przekleństwo, które nie wydaje mi się aż takie złe. Gdy byłem mały, po wielu książkach sf i pierwszych gwiezdnych wojnach w kinie, marzyłem sobie, że w końcu odkryjemy (a w zasadzie zostaniemy odkryci) całe sprzymierzenie kosmicznych ras i włączy ono nas do swojego ugrupowania. Dzięki czemu posiądziemy niewyobrażalną wiedzę, technologię i możliwości i będzie można latać po wszechświecie jak w gwiezdnych wojnach. Choć statystycznie wypada, że gdzieś tam żyją ufoludki, szansa, że ktoś przyleci do nas, i odpali nam w gatisie napęd nadświetlny jest wg mnie stosunkowo nikła. Musimy zatem rozwijać się sami.
Gdy spojrzymy na rozwój technologii IT, choć i tak powstrzymywany usilnie przez marketing (fałszywe prawa Moora itp), to w zasadzie bierzemy udział w giantynczym rozwoju technologicznym. Nie będę nawijał tu o komórkach czy GPS’ie, ale skupmy się chociaż o elektronicznej rozrywce. Gram od ponad 15 lat. Pomijając fakt, że całe granie, które kiedyś było przeznaczone dla dzieci (tak jak komiksy), a teraz stało się gigantycznym rynkiem i biznesem. Powoli przestają dziwić grający dorośli, powoli zaczyna być to traktowane z większa powagą, choć może do uzyskania miana sztuki czeka nas jeszcze trochę czasu (przypomnę, że kiedyś zabraniano młodzieży czytać książek, z uwagi na destrukcyjny – jak to wówczas sądzono - wpływ na młodą psychikę). Każdy z nas widzi rozwój tej branży, każdy pamięta automaty, tetrisa czy boulder dasha. Nie chodzi nawet o kolosalny rozwój grafiki, ale uświadomiłem sobie, że kolejne produkcje, będą tylko lepsze. Lepsze niż niektóre filmy czy książki. Produkcje takie jak „Mass Effect”, czy „Call of duty 4 – Modern Warefare”, biją na głowę większość filmów sensacyjnych, czy kiepskich książek sf. A będzie tego coraz więcej i robionego z większymi budżetami. Zastanawiam się jaki będzie następny krok po takim Modern Warfere 2 (październik 2009), bo że będzie to interaktywny film wojenno – sensacyjny, nie ma żadnych wątpliwości. Nie ma co biadolić nad spadkiem jakości większości produkcji. Tak jak w kinie będzie mainstream dla każuali i hardkorowe produkcje dla hardkorowców. A to że chwilowo wszystkim odbiła szajba na punkcie braku optymalizacji kodów, bo 4GB karty graficzne uciągną wszystko – coż – koszt postepu.
Pozostaje nam czekać, na kolejne epickie produkcje, oraz zastanawiać się, co będzie następne po pseudo 3D. Bo hełmy do VR i “Cretive Smellblaster” (to naprawdę istniało, choć na googlu nie ma nawet zdjęcia!) jakoś się nie przyjęły. Ja na pewno czekam na MW2 i wiem, że nie będzie to gorsze od filmu który ostatnio widziałem.
Krok ku zarządzaniu
Żeby nie było tak całkiem lajcikowo na tym blogu dodam kilka konkretów na temat uporządkowania działu IT. Nie będę rozpisywał się na temat metodologii ani sposobu tworzenia procesów, serwisów itp., opowiem wam tylko, co zrobiłem u siebie i w ogóle po co to komu. To dopiero początek drogi, ale warto go przebrnąć.
W każdej organizacji nadchodzi moment masy krytycznej, czyli takiego momentu kiedy spraw jest tak dużo, że przestajemy nadążać z ich bieżącym załatwianiem a sposób doboru specjalistów na zasadzie “wszyscy wiedzą wszystko” przestaje się sprawdzać. W takich sytuacjach pomocne może być zgłębienie podstaw jakieś metodologii zarządzania procesami IT (np.. ITIL), zakasanie rękawów i zrobienie LISTY. Przykowa lista zanjduję się tutaj.
Lista serwisów
- Nie zrobimy od razu dobrej i kompletnej listy serwisów, a jeśli się to komuś uda, to albo zajmuje się tylko uzupełnianiem tonera w drukarkach, albo jest kolejną implementacją T1000. Sugeruję więc zacząć od spisania wszystkiego, do czego dotyka się dział IT (np.. Meble ustawiam, żarówki wymieniam, komputery instaluje …) Wszystko co nam przyjdzie do głowy. Im tego więcej tym lepiej.
- Kolejny krok to mapowanie listy na konkretne serwisy jakie świadczy dział IT. Serwisy muszą być zorientowane na użytkownika! To najtrudniejsza część, bo musimy się postawić w roli przeciętnego usera. Żaden zarząd, dział księgowy czy inne elementy decyzyjne w firmie nie wie, co znaczy “Modernizacja mechanizmów aktywnych zapór ogniowych, poprzez upgdrade MS ISA Server 2006 oraz GFI 12″, natomiast szybciej znajdzie się kasa na “Zapewnienie bezpiecznego korzystania z internetu i ochorny wrażliwych informacji firmowych…”. Czy coś w tym stylu … Czujecie różnicę. Lista serwisów musi być zrozumiała dla wszystkich. Nie tylko dla IT.
Przykłady:
- Bezpieczny dostęp do Internetu
- Współdzielona przestrzeń dyskowa
- Współdzielony dostęp do drukarek A4
- Widekonferencja pomiędzy siedzibami firmy
- Serwisy należy oczywiście opisać, ale zwróćcie uwagę, że nie używamy tutaj nazw sprzętu, systemów itp.. Taka wiedza jest potrzebna tylko IT, dla pozostałych ma zostać przezroczysta. Informacje techniczne możemy zebrać dla siebie, ułatwi to na pewno pracę i pomoże w optymalnym zarządzaniu procesami.
Co nam to ułatwia?
Zaczynamy rozmawiać u zestawach czynności. Serwis współdzielonego wydruku, to dla usera “drukarna nie działa”, dla nas to bardziej skomplikowany mechanizm, bo to składowa urządzenia, tonera, papieru, kabla sieciowego, swicha, serwera wydruku, sterownika, kolejki, znowu kabla, komputera, stacji roboczej i na końcu interfejsu białkowego. Nie ucieszymy użytkownika stwierdzeniem “… to coś z VLANem drukarek”, drukarka ma działać! Więc potrzebujemy opiekuna serwisu, by to wszystko ogarnął.
- Potrzebujemy odpowiedzialnej osoby, a jak takiej nie znajdziemy, to musimy wyznaczyć osobę odpowiedzialną ;). Osoba opowiedziana za serwis, nie musi oczywiście samodzielnie wykonywać wszystkich zadań, ale ma być interfejsem, opiekunem i koordynatorem prac, nad przywróceniem działania serwisu (np.. Może wezwać serwis, przeprowadzić testy i poinformować o tym, że awaria została usunięta). Taka osoba musi mieć oczywiście backup na wypadek chociażby urlopu lub innej alokacji.
Mamy już podstawowe elementy listy, teraz możemy ją rozbudowywać o kolejne elementy, wedle własnych potrzeb. W przykładowym pliku, dołączyłem elementy, jakie są przydatne dla mnie, opiszę je w dużym skrócie:
- Service Level - Czyli określenie, czy dany serwis należy się każdemu, czy jest świadczony ale za dodatkową “opłatą”
- Service Scope - przy kilku biurach, są serwisy globalne (np.. Tylko w centrali) oraz lokalne (tylko w oddziale) np.. Dostęp WiFi
Na tym oczywiście lista się nie kończy, ale aby nie zaciemniać obrazu, na tym poprzestanę. Kolejnymi krokami może być oczywiście dopisanie dostępności serwisów (SLA) i wielu innych rzeczy o które chcemy rozbudować swoją listę. Mój przykład wygląda tak … nie chce mi się tego tłumaczyć, więc pozostaje w lengłydżu.
Daro powraca - troche żółci nie zaszkodzi
Nie ma to jak wylać swoje żale publicznie, ku uciesze gawiedzi. Zapraszam na głośny powrót.
http://www.w-files.pl/coztymit/
AD DS Recycle Bin – poprawione
technetowy art dotyczący AD DS Recycle Bin został znacznie poprawiony i rozszerzony o sposób wykorzystania z “GUI” czyli ldp.exe. o dziwo opcja z commandline jest dużo prostsza – i należy się zacząć przyzwyczajać do takiego podejścia w nowych produkcjach emesa (;
n.
regexp – wyrażenia regularne na prostym przykładzie
odkąd poświęciłem kilka godzin na przegryzienie się przez regexpy zakochałem się w tym wynalzq. możliwość matematycznej reprezentacji zapisu słownego – taki revers języków formalnych – to potężna rzecz.
teraz też się przydało. zadanko: jak z sieczki generowanej przez net view wyciągnąć dyski i literki tak, żeby łatwo było potem je obrabiać?
set re = new RegExp
re.pattern="^([a-zA-Z]:) (\\\\(?:[a-zA-Z0-9.]+\\?)+)"
re.ignoreCase=true
to najważniejsza część całego rozwiązania – regexp definiujący zapis typu “X: \\server\jakas\sciezka a potem cokolwiek”. to “cokolwiek” to dopisywaliśmy jako komentarz do pliq, bo nie przywidywaliśmy, że będzie potrzeba późniejszej modyfikacji/sczytywania. geniusz regexpa polega m.in. na tym, że kiedy coś znajdzie, łatwo to wyciągnąć. wyjaśnienie:
^([a-zA-Z]:)[spacja](\\\\(?:[a-zA-Z0-9.]+\\?)+) – każdy znak ma znaczenie:
- ^ [dash] – oznacza początek linii. jeśli komentarze dawalibyśmy również na początq – wystarczy usunąć
- () [nawiasy okrągłe]- oznaczają, że to co będzie pasowało do wyrażenia, zostanie zwrócone jako zmienna, z którą można coś później zrobić. w tym przykładzie będzie to literka dysku z dwukropkiem, która będzie przechowywana – dzięki temu mogę to potem wypisać ją lub przerobić jak chcę [np. zamienić na inną]
- [] [nawiasy kwadratowe] – oznaczają że chodzi o znak z określonego zakresu. tutaj zakresem jest…
- a-zA-Z – czyli dowolna litera mała lub duża z zakresu a-z
- : [dwukropek]– po prostu znak. w sumie całe wyrażenie oznacza dowolny ciąg typu “a:”, “M:” itepe
- [spacja] – podobnie jak w przypadq dwukropka – wszystko co nie jest poprzedzone znakiem specjalnym jest po prostu tym, czym jest – znakiem. a więc spacja to spacja – ta “[spacja]” z przykaładu
- () – znów nawias, który oznacza, że będzie zwrócona kolejna zmienna [aka $2] – jak się z nich korzysta będzie później
- \\\\ [4 backslashe] – backslash to znak specjalny, który eliminuje specjalność znaków specjalnych (; jeśli np. “+” jest znakiem specjalnym ale chodzi nam o znak a nie o jego funkcję, to trzeba poprzedzić go backslashem “\+” – i nie będzie interpretowany. znakiem specjalnym jest również backslash, a więc 4 bcks oznacza ciąg “\\”
- (?:) [pytajnik i dwukropek w nawiasach okrągłych] – potem są znów nawiasy, ale tym razem od razu po nawiasie jest pytajnik i dwukropek. zmiennych zwracanych z regexpa może być 9. przy skomplikowanych dopasowaniach może się okazać, że po prostu chcemy coś zgrupować [np,. po to, żeby powiedzieć, że dany ciąg ma wystąpić X razy] ale nie interesuje nas wynik - nie będzie przydatny do późniejszej obróbki [ma wyłącznie charakter dopasowania]. wtedy dodaje się “?:” oznaczające “nie zapamiętuj tego dopasowania”
- [a-zA-Z0-9.]+ – część w nawiasie oznacza dowolny znak z zakresu a-z lub A-Z lub 0-9 lub kropkę. plusik na końcu oznacza od 1 do więcej powtórzeń a więc przykładami dopasowania byłyby “aaa”, “10.20.30”, “asd.kjs.d00.00”
- \\? [2backslashe pytajnik] – jak widać z wcześniejszego przykładu, tak i tutaj znak sterujący jest na końcu – tak to jakoś właśnie w regexpach jest. pytajnik oznacza zero lub jedno wystąpienie tego, co stoi przed nim. a przed nim są 2 backslashe, co oznacza ciąg “\” który może być albo nie. a to dla tego że w ścieżce dysq jest: “\\server12\share” – co odpowiada regexpowi, który można by przeczytać “dwa slashe, potem jedno lub więcej wystąpień ciągu składającego się ze ze znaków alfabetu, cyfr lub kropek, po którym jest lub nie pojedyńczy slash”. no tak jest – jedno wystąpienie “server12\” i drugie “share”.
teraz jak to wykorzystać w kodzie:
set file=fso.OpenTextFile(file)
fileBody=split(file.ReadAll,VBCrLf)
for each line in fileBody
if re.test(line) then
set matches = re.execute(line)
‘ for each match in matches
‘ wscript.echo match.value
‘ next
‘ same-same but different (:
wscript.echo matches(0).submatches(0)&" "&matches(0).submatches(1)
end if
next
zmienna ‘file’ to gdzieś tam zdefiniowana nazwa pliq – nieważne. generalnie otwierany jest plik, powstały przy pomocy ‘net view >> somefile.log’, wczytywany do tablicy, w której kolejny wiersz to linia pliq. no i teraz zaczyna się wykorzystanie wyrażeń regularnych.
- re.test(line) zwraca true/false – czyli czy znalazł dopasowanie czy nie. a więc jeśli linia zaczyna się ciągiem typu “x: \\server\share” to o to chodziło. jak nie – olej.
- set matches = re.execute(line) - sam test niewiele daje. dla tego tworzony jest obiekt, do którego przypisywany jest wynik [kolekcja] z faktycznego ‘uruchomienia’ wyrażenia – trochę to redundantne bo niby sam test to już zrobił, ale trochę konieczne – to takie zabezpieczenie w stylu ochroną przed dzieleniem przez zero. można nie robić testu i po prostu wykonać execute i zobaczyć co zwraca matches.count – czyli ile jest trafień. do wyboru, do koloru
- potem jest kilka wykomentowanych linijek, a to dla tego, że dalsza część kodu robi to samo, tylko bardziej uniwersalnie. ale zostawiłem, ponieważ to dwa sposoby wyświetlenia wyników – pierwszy ogólny:
- for each match in matches – jak pisałem, zwracana jest kolekcja, a więc ‘dla każdego dopasowania w kolekcji’
- wscript.echo match.value – match.value to wartość dopasowania – całego – i dla tego ciężko coś z tym zrobić później.
- wscript.echo matches(0).submatches(0)&" "&matches(0).submatches(1) – w tym konkretnym przypadq wynik na ekranie będzie dokładnie taki sam, ale możliwości są zupełnie inne. wyjaśnia się też tajemnica ‘zapamiętywanych zmiennych’ – które wyszuqje się za pomocą nawiasów (). w przykładzie w nawiasach były dwa dopasowania – litera dysku z dwukropkiem oraz sama ścieżka. i dokładnie to jest wypisywane – matches(0), ponieważ to pierwszy element kolekcji [i w tym przypadq jedyny – dokładnie ten, który był w powyżej wypisany jako całość] – a potem występuje ‘submatches(X)’ – co jest adekwatne do $1, $2 etc – oznacza numer ‘zapamiętaj zmiennej’ liczony od zera. a więc submatches(0) to np. ‘M:’ a submatches(1) to np. “\\server\share” dzięki temu można je wykorzystać w dowolnym momencie – choćby zamienić ich kolejność, wykonać operację na jednym z nich [np. uppercase]
regexpy mają wiele fajnych zastosowań – wszędzie tam, gdzie trzebaby w kodzie zrobić pierdylion if’ów, case’ów i innych wynalazków – które średnio się nadają do operacji na niezbyt przewidywalnych stringach. dzięki wyrażeniom regularnym można zdefiniować to w ludzkim języq.. chociaż wygląda totalnie nieludzko i mało podobnie do języka (; przykładem zastosowania są zasady normalizacji numerów telefonów – czy ktoś wpisze +48 czy 22 czy +4822 czy tylko numer telefonu, a może potem jest jakiś numer wewnętrzny? a jak firma jest w kilq lokalizacjach to prefixy będą inne, a czy numer telefonu ktoś wpisał jako 345-67-89 czy może 3456789 a może ze spacjami?… i tak dalej. a na wyjściu musi zawsze być znormalizowany numer telefonu dla danej lokalizacji. zapisuje się to bardzo prostymi wyrażeniami regularnymi w stylu “^((00|+)48)?(\d{3}.?\d{2}.?\d{2})(\d{4})?” q: pisząc to mam na myśli OCS, i tak na prawdę to wygląda tam dużo prościej.
reasumując – niewiarygodnie wygodne narzędzie, które może nie przydaje się na co dzień ale kiedy jest dla niego zastosowanie, robienie tego innymi metodami jest strzałem w kolana.
linki
- validate ip
- regexp howto (Microsoft)
- more usage (Microsoft)
ps. czemu nie w powerShell? bo siedzę tam, gdzie się teren jeszcze renderuje, i musiałem skleić coś na szybko. ale uh… trzeba będzie usiąść i do poweshella
n.
MDT
jutro będę prezentował MDT – pierwsza część prezentacji jest już dostępna w postaci artykułu (:
n.
UAC vs RunAs
w UAC dla w7 wprowadzono kilka zmian, które powodują, że na prawdę jest bardziej przyjazny [czyt. mniej wqrzający] – wyświetla dużo mniej komunikatów, dzięki czemu da się z nim lepiej żyć. osobiście, na swoim systemie i tak nie przekonałem się do tego mechanizmu, ale wynika to ze specyfiki tego, co na nim robię. na komputerze domowym, na którym pracuje end-user [ (; ] UAC jest włączony [Vista] i przy “normalnej” pracy fatycznie nie jest zbyt częstym gościem na ekranie.
UAC vs Run As
od zarania dziejów mam sporo pretensji do Microsoft o kilka decyzji – imho kluczowych, dotyczących kilku mechanizmów, które mogły być wprowadzone wraz wersją w2k – kiedy wprowadzane były tak drastyczne zmiany w całej koncepcji systemu. jedną z takich decyzji jest to, iż pierwszy zakładany użytkownik standardowo dodawany jest do grupy administratorów. pomimo wielkiego halo wokół bezpieczeństwa, zmiany myślenia przez emes i tak dalej… nie zmieniło się to w Vista [gdzie znów była szansa to zmienić] ani nie zmieni się to w w7. drogi były [co najmniej] dwie:
- pierwszy użytkownik jest zwykłym userem, interfejs powinien być zmodyfikowany tak, aby tak gdzie dziś pojawia się “run as administrator” był faktycznie tym, co znaczy – linkiem do ‘run as’ z parametrem aplikacji. dzięki temu każdy użytkownik byłby standardowo wyizolowany, a niezbędne aplikacje uruchamiałyby się we własnym środowisku z maksymalnymi uprawnieniami dla komputera lokalnego
- drugim scenariuszem jest wprowadzenie User Account Control. pokrótce czym jest UAC: mechanizm ten dodaje w całym systemie dodatkowy poziom bezpieczeństwa tzw. “integrity level” – zarówno dla plików, kluczy rejestrów czy procesów. dzięki temu dodawany jest dodatkowy poziom zabezpieczenia – poza autoryzacją niezbędny jest odpowiedni poziom integralności. pomimo, że poziomów takich jest więcej, wykorzystywane są 3 podstawowe – low,midim,high. System – pliki i procesy działają w “high”, użytkownik w “mid” a część aplikacji [np. przeglądarka w trybie IESC] w “low”. dzięki prostej zasadzie “nie masz praw do kogoś nadrzędnego” użytkownik – pomimo, że ma odpowiednie uprawnienia bo należy do grupy administratorów [a co za tym idzie – aplikacje z których korzysta], nie ma możliwości interakcji bezpośrednio z procesami/plikami systemowymi. jeśli proces próbuje się do nich dostać – pojawia się komunikat UAC z prośbą o autoryzację.
to tak w dużym skrócie, bo artów na temat UAC jest całkiem sporo – chociaż jeszcze kilka kwestii technicznych będę próbował poruszyć. pozostaje pytanie – które rozwiązanie jest lepsze, i dla czego emes zdecydował się na UAC?
Zalety i Wady RunAs
podstawową zaletą jest to, że nie wymagałoby to ingerencji w architekturę systemu – wykorzystanie tego mechanizmu sprowadzałoby się do dobrego zaprojektowania interfejsu [np. dodania możliwości zapamiętywania hasła, wygodnego zarządzania które aplikacje można tak uruchomić etc]. drugą zaletą – bardzo istotną ze względu na ogólne bezpieczeństwo jest fakt, że użytkownicy byliby realnie zmuszeni do wpisania jakiegoś hasła. z jednej strony mało wygodne, z drugiej strony dzięki temu każdy realnie by odczuł, że nie powinien czegoś robić, i musi wpisać jakieś hasło, a więc jest to faktycznie “coś niebezpiecznego”.
Wadą takiego rozwiązania jest trochę skomplikowania życia użytkownikowi – np. podczas instalacji systemu jest proszony o wprowadzenie hasła, a potem o założenie jeszcze jednego użytkownika. to jednak kwestia edukacji, odpowiedniej informacji i propagandy – która imho w przypadq UAC jest dużo trudniejsza i jak się okazuje – stała się jednym z bardziej znaczących gwoździ w trumnie dogorywającej “vista”.
jak się jednak okazuje poważniejszym problemem były same aplikacje. niestety liczna rzesza developerów nie dba o to dla kogo pisze aplikacje i nie jest świadoma faktu, iż od dawien dawna z komputera korzysta wielu userów, czy że system wprowadza pewne ograniczenia ze względu na bezpieczeństwo samego siebie – jak np. zakaz zapisywania w katalogu systemowym czy w program files. wiele aplikacji po prostu nie chce działać “na drugim” koncie. problemem w przeważającej mierze jest konieczność powtórnego uwierzytelnienia, działanie na innym tokenie, a w przypadq aplikacji np. wymagającej uprawnień w domenie, powstaje problem przekazania tokena zalogowanego usera. w końcu ‘run as’ to uruchomienie równoległej sesji, de facto zalogowanie się na innego użytkownika z innymi uprawnieniami – w tym przypadq, administratora lokalnego. tego aplikacje przeważnie nie przeżywają. żeby dobić ten pomysł pozostaje jeszcze fakt, iż podczas wykonywania ‘run as’ nie jest to dokładnie to samo, co zalogowanie się obok – nie jest ładowany/generowany pełny profil użytkownika, w kontekście którego uruchomiona zostanie aplikacja, i tego również część aplikacji nie przeżywa.
Zalety i Wady UAC
podstawową wadą UAC jest jego mała skuteczność - UAC wyświetla krótkie pytanie tak/nie i w zasadzie obserwując userów i rozmawiając z nimi – większość kieruje się zasadą “pozbądź się tego przerażającego okienka z pytaniem jak najszybciej” – co ono oznacza, o co pytało, o czym informowało? mało kogo obchodzi. użytkownicy i tak będą zatwierdzać “byle szybciej zniknęło”. jaki to daje poziom bezpieczeństwa?
pozostawiając jednak dylematy psychologiczne osobom, które się tym zajmują i prowadzą na pewno jakieś statystyki [których niestety nie znam – mogę tylko oceniać to, co sam obserwuję], warto się zastanowić nad potęgą jaką od strony technicznej, czyli przynajmniej teoretycznie, daje UAC.
podstawową działania mechanizmu jest przyznanie użytkownikowi dwóch tokenów – jego własnego, oraz administracyjnego. oczywiście dzieje się tak jeśli:
- użytkownik należy do grupy administratorów
- jest włączony UAC
dzięki temu user może pracować w poziomie integracyjnym “mid”, gdzie wszystko spokojnie działa i nie może nic popsuć w systemie, który “jest piętro wyżej”. jeśli natomiast uruchamia się coś, co w system musi zaingerować – np. źle napisana aplikacja, która próbuje coś pisać w katalogu systemowym, rejestruje jakieś biblioteki etc – wyświetla się okno z prośbą o świadome potwierdzenie, że aplikacja ta ma do tego prawo. po wyrażeniu zgody, przekazywany jest aplikacji token administracyjny, dzięki któremu może uruchomić się na wyższym poziomie integracyjnym. dzięki temu obchodzi się problem podwójnego uwierzytelnienia, ponieważ aplikacja de facto będzie mieć uprawnienia użytkownika ORAZ uprawnienia administratora lokalnego. do tego nie będzie generowany dodatkowy profil, nie będzie dodatkowego logowania w systemie.
aby zabezpieczyć się przed takimi aplikacjami, mechanizm wprowadza dodatkowe zabezpieczenie, które jest częścią UAC – wirtualizacja kluczy rejestru oraz aplikacji. jeśli aplikacja uruchamia się z podwyższonymi uprawnieniami, nie oznacza to, że może robić niedozwolone rzeczy, do których należy pisanie po kluczach HKLM, katalogu “program files” czy systemowym “windows”. dla tego system automatycznie przekierowuje takie żądania do wirtualnych odpowiedników – aplikacja myśli, że zapisała tam, gdzie chciała, dane są przechowywane obok – “wilk syty i owca cała”:
- dla rejestru jest to klucz “HKEY_USERS\< User SID >_Classes\VirtualStore\”
- dla systemu jest to katalog "$env:USERPROFILE\appdata\Local\VirtualStore”
uwaga! trzeba pamiętać, że po wyłączeniu UAC aplikacje znów będą pisać/czytać z realnych katalogów i kluczy – może się więc okazać, że skonfigurowana i działająca aplikacja po włączeniu/wyłączeniu nagle jest ‘zresestowana’. należy wtedy ręcznie przenieść konfigurację ze/do wskazanych miejsc.
Dodatkowo “konto administratora” jest traktowane inaczej niż “konto z uprawnieniami administratora” – dzięki czemu po zalogowaniu się na administratora, ekrany UAC nie zatruwają pracy. zachowanie mechanizmu UAC można skonfigurować za pomocą GPO.
Płaszczyzna działania
ponieważ UAC był pod bardzo mocnym ostrzałem warto zastanowić się, jaki jest realny target tego mechanizmu, czyli “dla kogo ten pomysł”:
- dotyczy to kont z uprawnieniami administratora a więc standardowo stacji domowych, nie należących do domeny
- mechanizm ten jest łatwo wyłączyć jeśli przeszkadza – na prawdę nie rozumiem czemu duża część ludzi tak agresywnie reagowała. nie pasuje – wyłącz.
- w kontekście sieci korporacyjnej jego zastosowanie jest dość niszowe – w końcu jeśli jakaś aplikacja bussiness-critical nie chce działać, wtedy można dodać usera do grupy administratorów lokalnych. czy to dobrze, że w ogóle można pozostaje kwestią sporną – z punktu widzenia bezpieczeństwa i wszelkich best-practices, to developer/firma powinna w swoim dobrym interesie aplikację poprawić. rzeczywistość jednak zmusza do kompromisów.
o co więc ten raban? cóż… nowości bolą, no i fajnie jest kopnąć giganta w kostkę q:
whoami
poziom integralności w jakim się działa, można sprawdzić wykorzystując polecenie “whoami /groups”. przy wyłączonym UAC lub po uruchomieniu konsoli ‘as administrator’ na liście pojawi się:
Mandatory Label\High Mandatory Level Label S-1-16-12288
jeśli zaloguje się jako zwykły user, lub należący do grupy administracyjnej z włączonym UAC:
Mandatory Label\Medium Mandatory Level S-1-16-8192
jeśli użytkownik zaloguje się jako “power user”:
<brak nazwy> S-1-16-8448
to właśnie jest różnica pomiędzy tokenami. jakie prawa systemowe ma user można sprawdzić przy pomocy “whoami /priv”.
ps. w Vista doszła jeszcze jedna zmiana – każda usługa ma własny SID dzięki czemu jest identyfikowalna w systemie. żeby sprawdzić SID usługi należy wykonać polecenie “sc showsid <service_name>”. bardzo ciekawie polecenie zachowuje się, kiedy poda się złą/nieistniejącą nazwę…
n.
Songbird
Jako posiadasz kilkudziesięciu gigabajtów muzyki na swoim dysku od dawna szukałem programu/biblioteki/odtwarzacza który pomoże mi tym wszystkim zarządzać. Testowałem sporo aplikacji (aimp2, winamp, foobar, jetplayer) i żadna nie przypadła mi do gustu pod względem zarządzania multimediami. Głównym powododem jest pewnie fakt, że powyższe aplikacje są/były pisane w pierwszej kolejności jako “grajki” z dodaną funkcją biblioteki. A ja potrzebowałem dokładnie czegoś odwrotnego.
Najbliższą aplikacją ideałowi był dla mnie Itunes (używam na Macu na PC nie testowałem) ze względu na prostotę, łatwość odnajdywania tego czego się chce oraz kwestię podejścia do multimediów. Niestety Itunes ma swoje wady a głowną z nich jest “siłowa” integracja z własnym sklepem.
Tak oto trafiłem na wyrób “itunsopodobny” czyli Songbird zrobiony przez ekipę Mozilla ze wsparciem byłych twórców Winampa.

Jak daje się od razu zauważyć cały interfejs jest wręcz klonem Itunsa (co jest zaletą) z możliwością rozszerzania możliwości programu za pomocą addonów (jak to w produktach Mozilli). I od razu muszę napisać, że to jest to czego szukałem - czyli w pierwszej kolejności jest to biblioteka plików audio a później player do nich.
Oczywiście przy korzystaniu z takiego programu trzeba zmienić zupełnie podejście do swojej kolekcji audio (przynajmniej ja musiałem zmienić) - wcześniej operowałem na katalogach a teraz na tagach - i muszę przyznać, że po około dwóch miesiącach używania nie wyobrażam sobie jak mógłbym już wrócić do archaicznego poruszania się po katalogach zamiast tagach.
Kilka słów o addonach:
Tak jak w przypadku Firefoxa tak i Songbird w “gołej” postaci oferuje podstawową funkcjonalność. Z addonów które wg mnie należy posiadać to:
Customize Filter Pane - do dodawania dodatkowych filtrów w głownym oknie (np chcemy przesortować tylko minimale które wyszły np. w 2009)
More of the Same - słuchamy jakiegoś pojedynczego kawałka który nam się podoba - prawy klik i wybieramy czy chcemy “więcej tego samego” z punktu widzenia płyty, artysty itp.
ShoutCast Radio - rewelacja! jak dla mnie nie można tego lepiej zrobić - cały shoutcast jest zorganizowany jak reszta biblioteki (wybieramy gatunek z listy i voila!)
Te trzy powyższe są wg mnie obowiązkowe - jest mnóstwo innych pluginów które można używać wg własnch potrzeb.
Oczywiście Songbird nie jest programem bez wad - główną wadą dla mnie jest brak globalnej normalizacji - można tylko z punktu widzenia albumu bądź pliku - nie ma globalnej. Kolejną wadą jest brak odczytu plików .cue - można jeszcze parę mniej istotnych wad wymienić ale i tak ogólny obraz jest taki, że dla mnie jest to obecnie najlepszy program stworzony dokładnie do tego czego potrzebuję.
urzędzenia niemobilne
jakiś miesiąc temu dostałem HTC compact IV – czyli MDA z Ery, zrobione na HTC diamond przez T-Mobile. bardziej po ludzq: dostałem swój pierwszy PocketPC na Windows Mobile. do tej pory moja znajomość takich urządzeń sprowadzała się do konfiguracji ActiveSync i Outlook – bo to było mi potrzebne do projektów Exchange/UC. wcześniej używałem Nokii N7o na Symbianie i przez ostatnie 2 lata twierdziłem, że to najgorszy telefon jaki miałem w życiu – trudno sobie wyobrazić coś wolniejszego, głupio zaprojektowanego [nieergonomiczny interfejs pełen niedociągnięć] i częściej zawieszającego się – bo ta Nokia to prawdziwa porażka pod każdym względem. po otrzymaniu HTC musiałem zrewidować swoją opinię – jak się okazało nie jeden raz w ciągu tego miesiąca. nie przypominam sobie żebym kiedykolwiek tyle klął, co przez pierwsze dwa tygodnie używania HTC z WMobile. już miałem oddać urządzenie i wziąć starego soniacza ale… zabrakło mi czasu na przeniesienie kontaktów, potem się zawziąłem i nakierowany przez jenixa i wasyla przestudiowałem trochę xda-devels doprowadzając to urządzenie do jako-takiego działania.
początkowo miałem ochotę usiąść do w-files i wylać to z siebie, ale jenix to zrobił tu oraz tu i na pewno dużo qlturalniej niż ja byłbym w stanie to napisać – zwłaszcza w tym okresie. w związq z tym postanowiłem zrobić odwrotnie - aby oszczędzić kilq osobom trochę nerwów, czasu a być może i pieniędzy, postanowiłem skrobnąć kilka słów dla mobile-noobów, do których się do niedawna zaliczałem. taki quick-start do windows mobile.
Art można znaleźć w sekcji Artykuły i wkrótce powinny się tam pojawić jeszcze dwa odcinki – paula pisze o sieciowości w WM a jenix o różnych toolach, trickach etc. mam nadzieję, że wkrótce będą dostępne, bo sam jeszcze trochę muszę się w tym temacie podszkolić (:
krótka opinia: windows mobile to najgorsze dziecko z rodziny windows, które nawiązuje do najniechlubniejszych tradycji microsoftu z wczesnych lat 9o’. podobno jeden z w-filesowców wyrzucił telefon przez okno a ja byłem bliski tego. a więc – jeśli nie miałeś wcześniej do czynienia z WM – najpierw zapoznaj się z tym artem.
n.
IIS FTP 7.5
Miałem okazję bawić się wersją 7.o jeszcze w becie w2k8. Potem jakoś długo nie miałem potrzeby do niego siadać, aż w końcu dostałem zadanie konfiguracji w produkcji. realne scenariusze są zawsze dobrym testem i ten ftp go nie przeszedł. niewątpliwie nie ma porównania z tym czymś, co było do wersji w2k8 [oficjalnie – bo 7.o trzeba było zassać z iis.net]. wersja 7.5 nie zmieniła wiele, ale jak można przeczytać – podstawową zmianą jest rozszerzalność [extensibility], więc może powstaną jakieś sensowne modyfikacje.
jest FTPS. jest nowy interfejs spójny z całym IIS [i działa appcmd]. jest możliwość skorzystania z kont asp.net. i nie ma nic z tego, co od lat pamiętam z opensourcowych serwerów typu proFTPd czy glFTPd. ta usługa zawsze była totalnie zaniedbana i taka nadal pozostała.
Czego braqje:
- najmniej ważny szczegół – przy ustawieniu listingu unix-style zawsze zwracane jest “rwxrwxrwx” – bez względu na realne uprawnienia
- izolacja użytkowników jest, ale dla wszystkich lub nikogo – totalna głupota
- nie ma możliwości zdefiniowania katalogu domowego użytkownika – jest to na sztywno localuser\%username%
- brak możliwości definiowana katalogu domowego dla grupy
- dodatkowy poziom zabezpieczeń w konfiguracji FTP [poza NTFS] niewiarygodnie granularny: są uprawnienia read i write lol O_o.
- i setek parametrów typu komunikat per user, bandwith control, ratio i tak dalej… ale to szczegóły (;
tyle ile rzuciło mi się przez kilka godzin, które spędziłem na wymyślaniu obejścia tych niedogodności. Scenariusz:
jest sobie jakaś struktura katalogów jeszcze z ftp na wersji 2k, dość złożona, dodatkowo share’y – generalnie klient nie za bardzo chciałby to restrukturyzować, ograniczony czas blablabla.. komputer nie jest w domenie z różnych względów i część użytkowników musi mieć dostęp tylko do własnego katalogu. piqś. jak się okazuje nie dla iis bo izolację kiedy się włączy, to jest dla wszystkich no i nazwa katalogu domowego jest niedefiniowalna. początkowo obejście było dość proste:
- obok istniejącej struktury katalogów założyłem nowy katalog - “extFTP” a w nim bez-sensu-obligatoryjny “localUser”
- w ftp włączyłem izolację
- pozakładałem katalogi virtualne dla userów [bez-sensu-z-taką-samą-nazwą-jak-user]
so far so good. ponieważ userzy są wyizolowani nie widzą, że zmieniły im się nazwy katalogów. problemem jest teraz zrobienie dostępu dla użytkowników .. powiedzmy superusers, którzy mają mieć dostęp do całej struktury. ponieważ nie ma możliwości ustawienia katalogu domowego dla grupy są dwa wyjścia – albo dodatkowy ftp [inny port/inne ip/inny header], albo zakładać katalogi dla wszystkich userów. pierwsza opcja w tym przypadq nie mogła być wykonana [niemożna zarejestrować nazw/jedno ip/nie może być innego portu], pozostaje tylko zakładanie katalogów. w tym przypadq miałem szczęście bo userów było niewielu, ale przy bardziej złożonych scenariuszach… no generalnie co za kretynizm z tymi katalogami domowymi… uff.. no i ta wymuszona ścieżka – mam nadzieję, że jest na to jakiś hack i da się to jakoś zmienić, ale nie udało mi się takiej informacji póki co znaleźć. dzięki katalogom wirtualnym, superuserzy widzą całą strukturę tak, jak dotychczas – homedir każdego z nich był vdirem wskazującym na starty rootftp. w uproszczeniu struktura wygląda teraz tak:
no i te dziwne uprawnienia – oczywiście najfajniejsze w ftp windowsowym było zawsze to, że dostęp ustawia się za pomocą uprawnień NTFS. proste, jasne, granularne, dobrze znane, spójne z całym systemem. w nowym ftp pojawia się dodatkowy poziom – FTP Authorization, w którym można zdefiniować usera/grupę i nadać mu [allow] lub odebrać [deny] jedno z dwóch uprawnień – read lub/i write. wprowadza to niejasność i w sumie podszedłem to tego tak, jak z shareami – full dla wszystkich na udziale i przycinanie uprawnień na poziomie NTFS. domyślam się, że nadawanie z poziomu ftp przydaje się, kiedy używa się ról/userów asp.net bo w takim przypadq NTFS nie jest w stanie odróżnić kto jest kto – ale nie podoba mi się jak to zostało zaprojektowane [np, taka opcja mogłaby być tylko wtedy, kiedy z takich userów się korzysta]. no i podczas wpisywania nazw grup/userów nie ma opcji ‘browse’ więc trzeba uważać na literówki – jakby trudno było zrobić dodatkowy guziczek…
nie miałem czasu rozglądać się czy są jakieś rozszerzenia do FTP 7.5 – być może da się z tym zrobić coś więcej. to co oferuje standardowo pozostawia sporo do życzenia.
n.
Nowości w Windows Server 2008 R2 – AD DS:Managed Service Accounts
Windows Server 2008 – System State Backup
*updated
Windows 2008
Wraz z system Vista/w2k8 pojawił się nowy backup – dość kontrowersyjny, ze względu na totalnie inną ideę działania, którą opisywałem wcześniej - artykuł dość wiekowy, ale większość informacji pozostaje prawdziwe. Jedną z poważniejszych ograniczeń, jakie ma backup z vista to brak System State Backup – to zawsze był szybki sposób zbackupowania najważniejszych danych. W w2k8 również nie ma takiego backupu… w interfejsie – jeśli jednak zajrzy się do parametrów wbadmin, okazuje się, że SSB jednak jest:
Żeby nie było za pięknie, to polecenie ma bardzo specyficzne wymagania dot. parametrów. Zacznę od wymagań co do miejsca, gdzie backup można wykonać:
- podobnie jak w przypadku całego mechanizmu winbackup musi to być *oddzielny dysk*.
- nie może to być dysk sieciowy
Ograniczenie to da się częściowo obejść, modyfikując wpis w rejestrze [gałąź ‘SystemStateBackup’ trzeba będzie najprawdopodobniej założyć]:
HKLM\SYSTEM\CurrentControlSet\Services\wbengine\SystemStateBackup\AllowSSBToAnyVolume
Type=DWORD
0= Prevent storing systemstate backup on source volume
1= Allow storing systemstate backup on source volume
Po wpisaniu jedynki możemy wykonać SystemState na tym samym dysku – a nawet na tej samej partycji [np. C:].
Teraz można wywołać polecenie:
c:\>wbadmin start systemstatebackup –backuptarget:c:
Niestety nie jest to szybka operacja, jaką pamiętamy z ntbackup ): Wykonanie takiej kopii to [oczywiście zależnie od maszyny] od 3o-6o minut.
Sporo do życzenia pozostawia również sam wbadmin. Z interfejsu SSB nie będzie widoczny, więc jedynym sposobem pozostaje sprawdzenie dostępnych kopii przy jego pomocy, a oto co można sprawdzić:
Niewiele ):
Windows 2008 R2
W Windows 2008 R2 sytuacja uległa dość znacznej poprawie – funkcjonalność backupu została mocno poprawiona. Pojawiają się takie nowości:
- możliwość ustawienia kalendarza kopii z wykorzystaniem dysku sieciowego. Niestety nadal bez opcji ‘incremental’ – plik będzie zastępowany najnowszą wersją
- możliwość backupu wybranych katalogów
- możliwość zrobienia backupu System State Backup z interfejsu
Żeby nie być gołosłownym, jak wygląda backup w R2:
Oczywiście nadal pozostaje możliwość skorzystania z wbadmina choć to narzędzie niewiele się zmieniło. Informacje dot. ograniczenia robienia backupu na dysku systemowym są aktualne dla R2 – podobnie jak i wpis w rejestrze, który je znosi. Informacje dot. ograniczenia robienia backupu na dysku, który się backupuje pozostaje aktualne dla R2 – co więcej, wedle testów wydaje się, że prezentowane wyżej ustawienie w rejestrze nie działa dla tej wersji.
Przy okazji chyba znalazłem buga w wersji beta: backup ‘systemstatebackup’ nie działa, jeśli system uruchamiany jest z dysku wirtualnego VHD jeśli wykonywany jest na sieć. wywala się z błędem, że nie udaje się wykonać kopii VSS. Ciekawe jest również to, że na koniec pojawia się komunikat mniej-wiecej:
log zapisany jest do pliq c:\windows\system32\backup\backup-2009-04-16-15-42.log
problem polega na tym, że tam są tylko pliki etl.
n.
Nowości w Windows Server 2008 R2 – AD DS: bezpołączeniowe dołączanie do domeny (Offline domain join)
art jak w temacie (:
n.
Nowości w Windows 2008 R2 – AD DS Recycle Bin oraz skrypty PowerShell dla AD
ostatnio na newsy nie wiele mam czasu ): za to zmobilizowałem się do skrobnięcia kilq bardziej konkretnych artów – pierwszy z nich jest już dostępny.
n.
Logowanie do domeny – Vista/w7
Komu podoba się nowy ekran logowania w Vista? imho idea stojąca za ekranem aż do wersji XP/2k3 jest bardziej przejrzysta i wprowadza mniej zamieszania… ale być może jestem dinozaurem IT, który żyje przyzwyczajeniami*…
De gustibus non est disputandum a fakty są faktami i trzeba sobie z nimi radzić. A przecież są dostępne polisy GPO, które proces logowania pozwalają ładnie dostosować [dla przyzwyczajonych do slangu – scustomizować (; ]. Niektóre opcje dostępne są od czasów w2k – a przecież sporo się zmieniło. Oto krótki przewodnik [guide], sugerujący które opcje warte są ustawienia, a których lepiej nie używać:
Warte uwagi:
Assign a default domain for logon: pozwala uniknąć wpisywania użytkownika w postaci domena/user czy user@domena.com upewniając się, że użytkownik nie będzie miał dylematów czemu raz na jakiś czas nie może się zalogować [bo próbuje to zrobić do stacji lokalnej]
Do not process the run once list: opcja jest tak na prawdę od jakiegoś czasu, ale od pojawienia się Vista, totalnie zmienia się idea zarządzania uruchamianymi podczas startu procesami. w jaki sposób? nowy scheduler jest mechanizmem na tyle potężnym i rozbudowanym, że klucze run i runonce mogłyby [imho – powinny, i to ASAP] zostać usunięte. ponieważ sporo malware’u i spyware’u i innych ‘miłych dodatków systemowych’ używa ich jako opcji autostartu – jest wbrew pozorom całkiem ważna opcja ze względu na bezpieczeństwo.
Pomimo, że problem jaki stanowi duża liczba miejsc, w których programy mogą dodać się do uruchamianych podczas startu/logowania, jest znany od dawna – nikt nie stara się tego zmienić [co mnie trochę dziwi]. oczywiście narzędzie ‘autoruns’ z sysinternals pomaga problem okiełznać – ale czy nie lepiej problemowi przeciwdziałać, zmiast go potem eliminować? jeśli zabroni się edycji katalogu ‘startup’ oraz kluczy run i runonce – znacząco zredukuje to platformę potencjalnego podszycia się jakiejś niechcianej aplikacji ale również znacząco uprości administrację – bo w końcu wszystko będzie w jednym miejscu. Miejscem tym imho powinien być właśnie scheduler.
Nie używać:
Always Use Classic Logon: w sumie informacja jest raczej jako ciekawostka niż wskazówka – konfiguracja tej opcji jest po prostu bezsensowna, ponieważ:
służy tylko dla windows XP-
tylko przy stacji poza domeną… a kto konfiguruje stacje lokalne via GPO? [przyznam się, że mój domowy staruszek jest mocno skonfigurowany via GPO… ale to zboczenie zawodowe (; ]
Run these programs at user logon: można tak. Ale jak mawia stare powiedzenie “y use windows since there is door?” (; lepiej używać mechanizmów specjalnie po to pomyślanych – czyli np. skryptów logowania. A więc jeśli Twoim celem nie jest ‘skamuflowanie’ jakiejś aplikacji – co może w przyszłości zostać zapomniane i powodować jakieś problemy – warto przyjąć, że opcja ta ma status ‘obsolete’ – czyli jest tu przez zasiedzenie od czasów dinozaurów – a przecież “trzeba iść z czasem, z postępem, z osiągnięciami” q:
reasumując: używajcie schedulera!
ps. na blogu masakry pojawił się właśnie bardzo fajny link do strony oficjalnych tłumaczeń z angielskiego na ‘nasze’. a więc pomimo, że doedukowałem się i teraz już wiem, że scheduler to “harmonogram zdań”, pozwolę sobie w texcie zostawić angielski odpowiednik – żeby trochę podrażnić purystów językowych (;
*takim strasznym dinozaurem nie jestem. moim marzeniem jest świat bez haseł – wszystko oparte o certyfikaty. o ileż wszystkie procesy byłyby łatwiejsze i bezpieczniejsze…
n.
Windows Mobile 6.1
Stałem się ostatnio szcześliwym posiadaczem telefonu z systemem WM. Wcześniej na swoim PDA używałem już WM jednak nigdy na telefonie.
Pierwsze wrażenie: dramat
Żeby coś szybko zrobić w trybie telefonu na WM trzeba się przeklikać przez tyle opcji, ustawień itp rzeczy, że zapomina się co chciało się zrobić. Co rzuca się w oczy to niekonsekwentny interfejs - brakuje tak jak w systemach komórkowych opcji umieszczonych w jednym miejscu - na WM by coś ustawić np w opcji telefonu trzeba latać po całym systemie.
Poza tym, żeby dojść przykładowo jak ustawić “potwierdzanie dostarczenia wiadomości sms dla wszystkich wiadomości” to trzeba być niezłym geekiem - gdyby nie internet to długo by mi zajęło dojście do tego jak to ustawić.
I teraz na boga jak zwykły user (looser) który nie zna WM ma używać takiego telefonu kiedy wszystko jest takie nieintuicyjne?
Mnóstwo rzeczy już ustawiłem (dzięki internetowi) jednakże z kilkoma nie mogę sobie dać rady, mianowicie:
jak ustawić na WM by podczas rozmowy przychodzącej sygnał był narastający i wibrował? Nie ma takiej opcji:) może albo wibrować albo dzwonić i wibrować. Narastająco już nie;)
Poza tym budzik - nie ma budzika:) Co to za telefon bez budzika? Są alarmy ale budzika niet. Co więcej w alarmach nie mogę ustawić (albo nie wiem gdzie to się ustawia) jaką melodyjką ma dzwonić. Prozaiczna rzecz a nie można tego zrobić albo ja nie wiem jak.
Następna sprawa: galerie aparatu - zapomnijcie o tagach do zdjęć;) na moim zwykłym Sony Ericssonie można było zdjęcia przeglądać z poziomu tych które ostatnio zostały zrobione, z podziałem na datę itp. W WM nie ma takiej opcji:) Są wszystkie zdjęcia jak leci i znajdz sobie teraz człowieku te zdjęcie które przykładowo zrobiłeś w lipcu 2008:)
Minutnik - nie ma minutnika oczywiście równiez:) np gotuję ryż chce sobie ustawić minutnik kiedy go mam wyłaczyć - od 12 lat jak używam telefonu ustawiałem sobie to w telefonie - w 2009 roku na WM 6.1 nie ma jeszcze tej opcji;)
Można by długo opisywać i podawać przykłady - polecam każdemu by pobawił się przez chwilę WM na telefonie - wrażenie jest niezapomniane - jak bardzo można zamotać cały system by z intuicją nie miał nic wspólnego:)
Oczywiście są zewnętrzne aplikacje (płatne i bezpłatne) które można zainstalować - ale na boga - człowiek kupuje telefon to chce żeby był telefonem ze wszystkimi standardowymi opcjami do których jest przyzwyczajony od lat i które są standardem.
Ahhh jeszcze jedna rzecz mi się przypomniała - wydawało by się, że WM to system biznesowy więc logi powinny być super i piękne tak żeby było sobie można wszystko sprawdzić. Otóż chce sobie sprawdzić ile trwały moje ostatnie połaczenia z poszczególnymi osobami - i co? I nic - nie ma:) Jest tylko czas ostatniego połączenia i czas sumaryczny i to wszystko. Tak było pod koniec lat 90;) O liczniku SMSów oczywiście należy zapomnieć:)
Jeszcze słowo o kontaktach - generalnie cały system kontaktów opiera się na tym znanym z Outlooka. Trochę naiwnie myślałem, że jak np wejdę w jakiś kontakt to będę miał dostęp do historii np połączeń telefonicznych z daną osobą bądź z poziomu kontaktu przejdę do smsów wysłanych przez daną osobę. Byłem naiwny tak myśląc:) Nie jest to w ogóle połączone ze sobą;) Dramat…
Reasumując: ktoś kto chce przesiąść się ze zwykłej komórki na telefon z WM przeżyje dramat. Ja go przeżywam mimo, że znam dość dobrze WM -wole nie myśleć o zwykłych userach którzy nigdy z tym systemem nie mieli do czynienia;)
a to? http://technow.pl/zrelaksuj-sie-na-swoim-super-krzesle chociaż nic nie rozumiem z filmu to chyba jest wygodne :)
O, Daro, to ja mam pytanie — czy wiesz gdzie można kupić dobre, mocne porządne, ergonomiczne krzesło nie wydając na to dwóch czy trzech wypłat? Bo szukam, i nie mogę znaleźć nic sensownego — a kręgi już piszczą błagalnie o ulżenie im w cierpieniu… :)
@mwd
A jak duzą masz wyplate??? Ja coś tam sobie zakupiłem … fakt ze troche kosztowalo … ale coz, w cos trzeba zainwestowac.
No to ja załatwiam to bezkosztowo … z pozycji “siadam tylko na chwilke” zmieniłem na “jestem patyczakiem” zmieniająć co chwila na “eee mam to wszysko w dupie”… w sumie to nawet wygodnie ;)