Skip to Content

IT nieuczesane.
category

Category: tips’n’tricks

File Transfer Manager wciąż pokazuje dawno skończony transfer

z jakiś niewiadomych powodów FTM czasem w kółko wyświetla komunikat o transferze, i nawet wybranie opcji ‚delete’ nie powoduje jego trwałego usunięcia. przytrafiło mi się to już kilka razy więc q pamięci:

del "%userprofile%AppDataRoamingMicrosoftFile Transfer ManagerftmTransferList*.*"
rmdir /q /s "%userprofile%AppDataRoamingMicrosoftFile Transfer ManagerRequestQueue"

the task image is corrupt or has been tampered with.mcupdate

in command line:
c:schtasks /query |find /i "mcupdate"
ERROR: The task image is corrupt or has been tampered with.
ERROR: Task cannot be loaded: mcupdate

but /query /tn „mcupdate” nor /delete /tn „mcupdate” can not find the task.

as this task is not necessary:
c:del "%windir%System32TasksMicrosoftWindowsMedia Centermcupdate"

dla programistów

siedzę nad c# zdobywając tytuł ‚master of strings’ bo muszę pisać coś w stylu dziwnego parsera. nauczyłem się regexpów, i dziwnych wynalzków do konwertowania.

i tak a propos stringów

tutaj jest jeszcze kilka fajnych od bartosza:
http://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon

a teraz mała dziwnostka:
oczywiście dotarłem do kłamstwa, nad którym musiałem się sporo nabiedzić. funkcji konwertujących jest w pytkę ale oczywiście jak się ma konkretny pomysł to nic nie działa jak powinno. ot taki świetny link pokazujący potęgę konwersji. jest tam taki opisik:

Every object has a method called ToString that returns a string representation of the object. The ToString method can accept a string parameter, which tells the object how to format itself – in the String.Format call, the formatting string is passed after the position, for example, “{0:##}”


no i qpa. problem: skonwertować liczbę zmiennoprzecinkową tak, aby była wyrównana do prawej, z dokładnością do dwóch znaków po przecinq w zapisie amerykańskim [‚.’ oddziela część dziesiętną]. no więc można byłoby tak:

float flt=-1234,289F;
string out= flt.ToString("{0,15:0.00}");

co oczywiście nie zadziałało. taka konwersja działa w ogóle bardzo dziwnie – wszystkie znaczki { , : etc – traktowane są jak część liczby i wychodzi z tego:

-{1 2315:4,29}

a więc trochę jakby nie to. ponieważ występuje w zdaniu ‚formatuje sam siebię’ a więc można pominąć {0} bo wiadomo, że to o niego chodzi. Ciekawie traktowany jest minus – zupełnie jakby liczba składała się z liczby i z minusa:

string out=flt.ToString(" 0.00");

co powinno pokazać liczbę przesuniętą o klika spacji w prawo. wynik:

- 1234,29

wygląda na to, że ToString z przeciążenia na liczbie nie przyjmuje parametrów formatowania. finalnie trzeba było skomplikować:

string out=string.Format("{0,15}",flt.ToString("0.00",new System.Globalization.ClutureInfo("en-US")));

ufff.. niuanse językowe…

WSUS – uwaga kłamie!

Uruchamiamy interfejs WSUS 3.o i wchodzimy do logu synchronizacji. Wszędzie piękne zielone qleczki, które kojąco wpływają na samopoczucie przy porannej kawie. Zboczenie zawodowe każe zajrzeć do logu systemowego/aplikacji a tam:
Event Type: Error
Event Source: Windows Server Update Services
Event Category: Core
Event ID: 10012
Date: 2008-10-10
Time: 08:16:08
User: N/A
Computer: XXXXXXX
Description:
The permissions on directory X:WSUSUpdates are incorrect.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Oczywiście szybko znalazłem linka
http://technet.microsoft.com/en-us/library/cc708545.aspx
oraz
http://technet.microsoft.com/en-us/library/cc708487.aspx
ale jakby nic z tego… no więc wymusiłem ręczną synchronizację i mała zmiana w logu:
Event Type: Error
Event Source: Windows Server Update Services
Event Category: Synchronization
Event ID: 364
Date: 2008-10-10
Time: 12:03:44
User: N/A
Computer: XXXXXXXX
Description:
Content file download failed. Reason: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) Source File: /msdownload/update/software/secu/2008/07/ie7-windowsxp-kb938127-v2-x86-enu_b99f2a4e5971b67a399604bab143f20b0f26bf76.exe Destination File: X:WSUSUpdatesWsusContent76B99F2A4E5971B67A399604BAB143F20B0F26BF76.exe.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

czasem zaskaqje sam siebie bo od razu mnie natchnęło żeby zajrzeć czy admin nie włączył quoty… qłączył. Oczywiście quota dla NT AuthorityNetwork Service była przekroczona dawno, dawno temu i 1o.ooo%.

a więc drogi microsofcie – czemuż to, ach czemuż tak okłamujesz biednych adminków? (;

Vista tcp/ip patch

Niestety MS w Viscie nie zmienił ilości „half-open connection” i jest ich tylko 25 (vista ultimate) co przy dużym natężeniu ruchu skutkuje błędami w event viewerze.

Co więcej paczowanie visty jest trudniejsze niż to było w xp i mniej więcej wygląda tak jak jest to opisane:

http://www.mydigitallife.info/2007/04/09/windows-vista-tcpipsys-connection-limit-patch-for-event-id-4226/

Na szczęście niezastąpieni rosjanie ostatnio napisali programik służący  do zmiany tego parametru tak, że teraz można mieć 100 otwartych takich połączeń – poniżej link:

http://half-open.com/home_en.htm

tworzenie website certSrv

jeśli zainstaluje się rolę Server Certificate nie mając IIS – site ten nie jest później generowany automatycznie. Jakoś ciężko było wygooglać w jaki sposób go odtworzyć, więc w związku z tym:

certutil -vroot

trywialne, he? (: niestety nie przyjmuje żadnych parametrów, a więc jeśli chce się np. aby site działał na niestandardowym porcie, trzeba całość zrobić ręcznie:

  • załóż nowy site na wybranym porcie, fizycznie wskazujący na pusty katalog. potem można tam umieścić plik przekierowania na /certsrv
  • załóż wewnątrz tego siteu katalog wirtualny, wskazujący na %windir%system32certsrv . katalog musi mieć możliwość odpalania skryptów (script only).
  • załóż pulę aplikacyjną dla tego katalogu (powinna się pojawić .netowa ikonka, że to aplikacja)
  • załóż dwa site’y virtualne dla katalogów %windir%system32certsrvcertEnroll i %windir%system32certsrvcertControl (nie powinny być jako aplikacja)

et voila!

zabawa w labie…

postanowiłem przetestować kilka opcji w labie, z czego wyniknęły bardzo ciekawe przypadki – jak to zwykle w takich nuke-testach bywa.

co zrobiłem:
– był sobie kontroler domeny na w2k3 R2
– dostawiłem drugi DC na w2k8
– zshutdownowałem w2k3
– wszedłem do ADUaC i bezczelnie zrobiłem ‚delete’ na obiekcie starego DC.

kiedyś takie rzeczy kończyły się brakiem FSMO oraz śmieciami w metadanych AD. Interfejs został poprawiony już w w2k3 R2 ale nigdy nie miałem odwagi przetestować – ale od czego jest lab? (: no więc interfejs zapytał mnie czy na pewno nie uda mi się odzyskać starego DC, i czy w związq z tym przenieść role FSMO na nowy kontroler. Odpowiedziałem tak – i voila! po kilq sekundach miałem wszystko ślicznie…

a więc pierwszy test wypadł rewelacyjnie. jednak jakoś nie pomyślałem, że jak DC stoi ledwie kilka minut to może nie zreplikował jeszcze wszystkiego. I za chwilę okazało się, że kiedy próbuję odpalić ADUaC to wszystko niby działa, ale toole typu ‚site and services’ czy ‚domains and trust’ odmawiają posłuszeństwa. Zrobiłem podstawowe testy czy AD na pewno stoi prawidłowo… i oczywiście SYSVOL i NETLOGON nie zdążyły się zreplikować. W związq z tym share’y się nie utworzyły i domena działa.. ale nie do końca.

miałem już kiedyś takie przypadki, więc wiedziałem czego szukać: BurFlags. parametr w rejestrze, który wymusza informację, że sysvol się zreplikował. pełny opis zmiany można znaleźć w kb315457.

kolejny problem: sysvol się pojawił, ale jest pusty! no bo przecież nic nie zdążyło się zreplikować. i tutaj znów coś na co kiedyś trafiłem przypadkiem – a o czym o dziwo emes nie chwali się głośno – jak odbudować polisy domenowe? pamiętałem tylko, że ma coś ‚fix’ w nazwie, więc szybkie:
c:>dir /s *fix*.*
i zaraz widać ‚dcgpofix.exe‚.
ten milutki tool odbudowuje standardowe polisy Default Domain Policy i Default Domain Controller Policy. Potrzebowałem kiedyś tego, bo namieszałem w tych polisach i nie wiedziałem jak je zresetować.
i wszystko działa (:

z innych ciekawostek, które przy takich okazjach wychodzą:
– jak z linii poleceń uczynić DC Global Catalogiem? poleceniem dsmod, gdzie parametrem jest distinguished name servera w partycji konfiguracji:
dsmod server "cn=server,cn=Servers,cn=Default-First-Site-Name,cn=Sites,cn=Configuration,dc=domena,dc=ad"
– przy podobnym scenariuszu, ale poprawnym usunięciu pierwszego DC (w2k3) czyli za pomocą dcpromo… zniknęły strefy DNS!! Podczas degradacji faktycznie pojawiała się jakaś informacja o braq replikacji partycji domenowej czy coś w ten deseń… no i okazuje się, że bardziej poprawnie wcale nie musi oznaczać łatwiej. Trzeba było odtworzyć DNS czyli:

  • założyć strefę o nazwie nazwa.domeny
  • założyć strefę o nazwie _msdcs.nazwa.domeny
  • zrestartować kompa

z dziwnych zachowań: restart netlogon nie pomógł – musiał być restart. Jeśli nie założy się zony _msdcs, to zostanie założona jak w w2k – wewnątrz zony domenowej. Zdaje się że trzeba pousuwać, założyć sterfę i restarcik. proste i skuteczne (:

trivial SSO for Windows

a raczej pseudo-SSO ale działa jak marzenie. Trick, który zaraz przedstawię jest tak trywialny, że jak aż jest mi głupio jak mogłem na to sam nie wpaść dawno temu. A wszystko przez to, że sądziłem, że działa to inaczej… eh. Człowiek uczy się całe życie (:

Problem:
Stacja stand-alone (workgroup). Komputer mobilny, działający głównie w kilq sieciach – niech to będzie np. domena „firma.com” oraz domowa sieć. Dostając się do udziałów sieciowych, portali intranetowych, ISA SecureClient, czy innych aplikacji wymagających uwierzytelnienia NTLM – pojawia się ramka prosząca o user/pass do logowania. I tego chciałoby się pozbyć. O dziwo po zahaczeniu ‚zapamiętaj’ i tak wyskaqje za każdym razem – grrrrr…

Rozwiązanie:
dla większości typów logowanie wystarczy utworzyć token credentials z użytkownikiem i hasłem. Dla opisanej powyżej sytuacji potrzebny będzie pojedynczy dla domeny i zależnie od systemu/ustawień albo jeden , albo jeden dla każdego kompa w domu (za chwilę szczegóły). Zarówno w XP jak i w Vista dodaje się hasełka przez control panel -> users. W Vista jest opcja ‚manage your network passwords’ na pasku zadań.
Manage Your Network Passwords
użytkownika oczywiście należy wpisać w postaci domainuser dla domeny lub .. no właśnie – do przetestowania: dla vista hostnameuser dla stacji lokalnej. XP powinien być bardziej wyrozumiały i wpisanie po prostu nazwy użytkownika i hasła powinno wystarczyć, dzięki czemu w sieci domowej jeśli wszędzie jest ten sam user z takim samym hasłem – powinno zahulać.
Najmilszą informacją jest fakt, iż można wpisywać hasła dla hostów, używając wildcardów, a więc dla domeny wystarczy w polu ‚logon to:’ podać nazwę postaci *.firma.com.
PassManager-logon2
To rozwiązuje większość problemów – pozostaje jeszcze kwestia dostępu do stron w Intranecie – jeśli nadal wyskaqje okienko logowania, to najprawdopodobniej adres strony nie jest dodany do ‚local intranet’ ponieważ standardowo dla stron w tej grupie przesyłane jest hasło.
PassManager-localIntranet

Et voila!
Koniec pytań o hasło… no prawie – niestety metoda nie działa dla Outlook w RPCoHTTPs ):

PS: Workgroup
Zawsze lubiłem osobom na qrsie zadawać pytanie: ‚Co to jest domena?’ – najprostsze pytania bywają najtrudniejsze. Na to pytanie, opisowo, jakoś daje się wybrnąć. Na pytanie ‚a co to jest workgroup?’ – w zasadzie nigdy nie uzyskałem prawidłowej odpowiedzi. Odpowiedź ta jest dość trywialna – nie ma czegoś takiego jak ‚workgroup’ – to po prostu string będący filtrem, używanym przy narzędziach GUI do wyświetlenia komputerów, które też mają taki string q: w czasach WINSów i wszechobecnego NetBIOSa wpis o takiej nazwie był rejestrowany w tejże dupnej usłudze. artefakty typu ‚net view’ jeszcze z takich rzeczy korzystają – ale spłaszczając mechanizm do efektu, można powiedzieć że ‚workgroup’ to po prostu filtr.

Trochę o zastosowaniu komend AT

temat rzadko poruszany – i dla tego (przynajmniej w moim przypadq) – unikany. Teoretycznie z modemami da się gadać za pomocą AT – tylko kto zna tej język? kilka tipsów z praktycznego zastosowania opisuje GT na blogu technetowym.

Synchronizacja dowolnego kalendarza z Google Calendar

Bardzo fajna sprawa, nie testowałem jeszcze, ale pewnie się pobawię bo miałem klienta który pytał o taką możliwość.

Dokładnie chciał Nokie synchronizować z Kalendarzem Google.

http://www.google.com/support/calendar/bin/answer.py?answer=99355

%d bloggers like this: