dlaczego Microsoft nie uznaje kalendarza gregoriańskiego?

Tytuł przewrotny ale.. więcej w poniższym linku:

http://www.idg.pl/news/142532.html 

cyt.”Na witrynie Microsoftu ukazała się informacja, że wersja Community Technology Preview SQL Servera 2008 zawiera błąd, który objawia się tym, iż oprogramowanie… nie uruchamia się 29 lutego. Koncern radzi więc, by „nie uruchamiać ani nie instalować CTP 29 lutego”.

Nie wiadomo czy śmiać się czy płakać…

dla małych i średnich

w małych i średnich firmach zawsze są problemy – rozwiązań domowych nie można stosować a korporacyjne są za drogie. wynalazki takie jak SBS często są zbyt mało elastyczne…

i tak ostatnio cabi podesłał linka do bardzo fajnego sprzętu dla SOHO/SMB – rozwiązania NAS dla takiego własnie rynq – proponowane, przez fimrę QNAP. mogąc kupić pełny, niemal bezobsługowy serwer hardware+print server+backup+file server+ftp+WWW+media streaming (xbox, ps3) + kilka innych bajerów w cenie od 1ooo-3ooo PLN – uważam, że rozwiązanie to jest warte uwagi i warte polecenia. pobierznie przejrzałem opinie o tych urządzeniach w necie i wydają się być rewelacyjne.

w ciekawych okolicznościach – bo mając okazję prowadzić prezentacje na HHH, spotkałem się z przedstawicielem firmy DCS. okazuje się, żę firma ta proponuje coś, o czym zastanawiałem się juz jakiś czas temu – czy na polskim rynq jest hosting usług exchange? ponieważ nie musiałem to nie szukałem a rozwiązanie przyszło samo (: hostedexchange to właśnie propozycja dla rynq SOHO/SMB – gdzieś, gdzie nie stać na zakup i samodzielne utrzymanie platformy exchange.

Tydzień exchanga

Przed wami kolejna wstrząsająca relacja z awarii…

Średnia firma. Mieszcząca się w willi. Poważna awaria prądu wykańcza UPS’y. Padają serwery. Administrator podnosi to wszystko w nocy.
Rano pracując zdalnie administrator nie może dostać się do exchanga – restartuje go. System
wciąż jest niedostępny. Na miejscu okazuje się że:
CPQ ML530, 3 zasilacze, 6U w szafie, jego kontroler smart array 5300 zgubił informacje o dyskach logicznych. (Były dwie partycje logiczne: RAID1 na system i RAID5 na dane). Popularnie mówiąc – nie ma niczego. Procedura recovery nie przewidziała takiego psikusa ze strony kontrolera RAID. Wszystko wskazuje na to, że dyski i kontroler działają, ale nie mają informacji o dyskach logicznych. Skanowanie ACU, przekładanie dysków pomiędzy slotami i do innych serwerów nie pomaga.
Przybyły na miejsce tragedii technik rozkłada bezradnie ręce. Infolinia HP, jak zawsze profesjonalnie i lakonicznie stwierdza, że serwer już po gwarancji i wizyta odpłatna, owszem, ale o niższym priorytecie, – czyli realnie za dwa tygodnie albo dwa lata – dla nas nie ma różnicy.
Cóż – jedziemy z pełnym odzyskiwaniem serwera. Nowy serwer, w2k sp + exchange + Backup exec i odzyskujemy. Niestety nie było to wystarczająco dobrze przećwiczone. Administrator po kilku godzinach poddaje się. Ściągamy meksykańska specgrupe od rozwałki.
Spec nr 1 ds. systemów windows przybywa na miejsce tragedii o godzinie 16:00. Stawianie serwera od początku, exchange, backup exec – i znów odbijamy sie od ściany. Kolejny telefon – chwila napięcia i okazuje się, ze spec nr 2 ds. backup exec’a jest dostępny i przyjedzie.
Dociera na miejsce ok 19: 30. Godzina wytężonej walki z backup execkiem przynosi rezultaty. Rusza odzyskiwanie z backupu – później okazuje się, że 25 GB storów i folerów publicznych zostanie odciągnięte z streamera LTO3 w rekordowym kurwa mać czasie 2 godziny 40 minut.
Spędziliśmy go omawiając obecną sytuacje gospodarczą, polityczną i techniczną wszystkich znanych krajów, nie oszczędzając filmików z YouTub’a.
Gdy po 23:00 mózgi powoli zaczynały kąpać nam na klawiaturę backup radośnie kończy się pełnym sukcesem i równie radośnie, zgodnie z terminarzem backupu, a przy naszym pełnym zaskoczeniu rusza standardowy backup Overwrite ustawiony na godzinie 23:00, który znów zgodnie z planem i przy naszym już absolutnie pełnym zaskoczeniu nadpisuje taśmę, z której właśnie skończyliśmy odzyskiwać dane. Dobrze, że nie w odwrotnej kolejności.
Niezrażeni tą porażką sprawdzamy konsystencje storów, która odbiega trochę od ideału, i wymaga naprawy. Przed naprawą obowiązkowy backup jedynej kopi storów, która ostała się w organizacji. Niestety przy naszym kolejnym zaskoczeniu 25GB baz kopiuje się z partycji na partycje serwera klasy HP DL380 G6 (dyski SAS) w kolejnym rekordowym czasie 40 minut (ma sterowniki! Stawiany ze smartstartu). Mózg z klawiatur zaczyna skapywać na podłogę, ale dajemy rade.
Naprawa storów zakończona sukcesem. Maile działają. Ludzie mają do nich dostep, dochodzi 02:00. Jeszcze kilkanaście minut walki z backup execkiem i jego nienormalną konfiguracją użytkownika, który ma prawo odzyskiwać skrzynki trybie brick level. Pakujemy plecaczki i nieco wykończona specgrupa od rozwałki opuszcza miejsce zdarzenia.
Straty:
• maile organizacji z jednego dnia (backup nie wykonał się z środy na czwartek, – bo padł prąd)
Wnioski:
• Rekonfiguracja backup execka wymagana, w szczególności ochrony mediów przed nadpisaniem.
• Rekonfiguracja procedur backupu również.
• Regularne ćwiczenie scenariusza pełnego recovery excheng’a – obowiązkowe.
• Dla dociekliwych: co zrobił ten pieprzony kontroler, że zgubił te dyski oraz dlaczego nowy serwer z pełnym zestawem sterowników tak zajebiście szybko kopiuje pliki?

exchange mixed to native button grayed out

czyli wyszazony guzik podczas proby zupgradeowania exchange z trybu mixed to native. mialem tak aqrat w srodowisq, ktore przygotowujemy do migracji do ex2k7 a tryb native jest dla tego systemu wymaganiem. wymagany skill:
– umiejetnosc poslugiwania sie ldp.exe
– znajomosc adsiedit.msc
– znajomosc wpisow exchange na partycji konfiguracji.
…lub po prostu SbS z kb260781

jest nawet jak jak recznie przestawic tryb mixed na native – banal (:

Active Directory i Smartphony

Właśnie przeczytałem o integracji smartphonów z AD w przyszłej wersji serwera M$.Bardzo fajnie!

Produkt będzie się nazywał System Centre Mobile Device Manager 2008 (MDM) i pozwoli na pełną integracje i zarządzanie z poziomu AD korporacyjnymi komórkami, zarządzanie VPNami i dostępem do zasobów informatycznych firmy.


Wreszcie będziemy wiedzieli gdzie i kiedy dzwonią, o czym SMS-ują nasi współpracownicy ;-) hehe

NoMas tool

u jednego z klientow jest bardzo dziwny objaw z exchange+antigen – w pewnym momencie system zaczyna generowac tysiace bledow EventID 9548 – no external associate account. o ile blad jest dosc standardowy [i nigdy nie zrozumiem czemu tego nie poprawia] o tyle nigdy w tych ilosciach!
nie udalo mi sie poki co znalesc procesu, ktory go az tam mnozy, za to udalo mi sie znalesc 'zywy link’ do nomas tool, ktory 'naprawia’ konta (zeby nie trzeba bylo recznie wyklikiwac i szukac):
NoMas Tool

SMTP isAlive timeout

„SMTP Virtual Server Instance 1 (EVS1): The IsAlive check for this resource failed.”
o dziwo informacji wygooglac mozna malo, a wszystkie, na ktore trafilem byly nietrafne. nikt, ale to zupelnie nikt nie podal najprostrzego z mozliwych scenariuszy – a jak wiadomo najciemniej jest pod latarnia.
scenariusz:
– rozgrzebany cluster
– czerwony event log
– po 3h walki eventlog zrobil sie bialy poza tym jednym wpisem – SMTP isAlive check failed.

rozwiazanie: okazalo sie, ze ktos w ustawieniach protokolu SMTP ustawil opcje 'deny all except list below’ a lista zostala pusta. no i cluster myslal, ze smtp jest martwe.

export kontaktow outlook express do AD

trafil sie ostatnio taki problem – wdrozylismy AD+EX i klient poprosil o pomoc przy przeniesieniu kontatkow z outlook do AD. generalnie nic trudnego – mozna zalatwic to prostym skryptem, jest jednak pewien myk. oto kilka uwag dotyczacych takiej operacji:

najpierw sam skrypt. przy pelnym exportcie kontatow z outlooka dostaje sie plik excelowy z gigantyczna iloscia kolumn. najpier wiec definicja pol:

const X_SALUTATION=1
const X_GN=2
const X_SN=4
CONST X_COMPANY=6
CONST X_DEPT=7
CONST X_TITLE=8
CONST X_ADDR=9
CONST X_CITY=12
CONST X_STATE=13
CONST X_ZIP=14
CONST X_COUNTRY=15
CONST X_ASSISTANT=30
const X_FAX=31
CONST X_TEL=32
CONST X_TEL2=33
CONST X_MOBILE=41
CONST X_TEL3=43
CONST X_PAGER=44
CONST X_EMAIL=49
CONST X_ENAME=51
CONST X_NOTES=73
CONST X_WEBPAGE=85

skrypt jest dosc prymitywny – na szybko – zalozeniem jest wiec, ze jedno z pol – tu 'nazwisko’ – jest zawsze niepuste. skrypt bedzie przetwarzal arqsz excela az trafi na wiersz z pusta kolumna 'nazwisko’. przed przypisaniem kazdej wartosci do AD trzeba sprawdzic czy nie jest ona przypadkiem pusta:


Set objRoot = GetObject("LDAP://rootDSE")
strDNS = objRoot.Get("defaultNamingContext")
Set objDomain = GetObject("LDAP://" & strDNS)
Set objOU = GetObject("LDAP://OU=contacts," & strDNS)
set oExcel=createobject("Excel.Application")
oExcel.workbooks.open(left( WScript.ScriptFullname, instrRev(WScript.ScriptFullname,"") )&"kontakty-import.xls")

i=2
with oExcel.ActiveSheet
While .Cells(i,X_SN) <> ""
wscript.echo vbcrlf&"przetwazam wiersz: "&cstr(i)

tu jeszcze informacja – podczas importu kontaktow, trzeba pamietac o tym, ze aby pojawily sie one w ksiazce adresowej, musza byc uzupelnione wszystkie pola wymagane przez exchange – inaczej utworzonego contactu nie bedzie w GALach. czesc z atrybutow uzupelnia sie sama, ale czesc trzeba przypisac recznie – to jest glownie cn oraz mailnickname:


surname=.cells(i,X_SN).Value
givenname=.cells(i,X_GN).value
if not isNull(givenname) and not isEmpty(givenname) then
contactname=givenname&" "&surname
else
contactname=surname
end if
wscript.echo contactname

Set objContact = objOU.Create("contact", "cn="&contactname)

wscript.echo "nazwisko: "&.cells(i,X_SN).Value
objContact.put "sn",.cells(i,X_SN).Value
objContact.put "mailNickName", contactname
if not isNull(.cells(i,X_GN).Value) and not isEmpty(.cells(i,X_GN).Value) then
wscript.echo "imie: "&.cells(i,X_GN).Value
objContact.put "givenName",.cells(i,X_GN).Value
end if
if not isNull(.cells(i,X_SALUTATION).Value) and not isEmpty(.cells(i,X_SALUTATION).Value) then
wscript.echo "salut/desc: "&.cells(i,X_SALUTATION).Value
objContact.put "description",.cells(i,X_SALUTATION).Value
end if
if not isNull(.cells(i,X_COMPANY).Value) and not isEmpty(.cells(i,X_COMPANY).Value) then
wscript.echo "company: "&.cells(i,X_COMPANY).Value
objContact.put "company", .cells(i,X_COMPANY).Value
end if
if not isNull(.cells(i,X_DEPT).Value) and not isEmpty(.cells(i,X_DEPT).Value) then
wscript.echo "department: "&.cells(i,X_DEPT).Value
objContact.put "department", .cells(i,X_DEPT).Value
end if
if not isNull(.cells(i,X_TITLE).Value) and not isEmpty(.cells(i,X_TITLE).Value) then
wscript.echo "title: "&.cells(i,X_TITLE).Value
objContact.put "title", .cells(i,X_TITLE).Value
end if
if not isNull(.cells(i,X_ADDR).Value ) and not isEmpty(.cells(i,X_ADDR).Value ) then
wscript.echo "street: "&.cells(i,X_ADDR).Value
objContact.put "street",.cells(i,X_ADDR).Value
end if
if not isNull(.cells(i,X_CITY).Value ) and not isEmpty(.cells(i,X_CITY).Value ) then
wscript.echo "city: "&.cells(i,X_CITY).Value
objContact.put "l",.cells(i,X_CITY).Value
end if
if not isNull(.cells(i,X_STATE).Value ) and not isEmpty(.cells(i,X_STATE).Value ) then
wscript.echo "state: "&.cells(i,X_STATE).Value
objContact.put "st",.cells(i,X_STATE).Value
end if
if not isNull(.cells(i,X_ZIP).Value) and not isEmpty(.cells(i,X_ZIP).Value) then
wscript.echo "postal: "&.cells(i,X_ZIP).Value
objContact.put "postalCode",.cells(i,X_ZIP).Value
end if
'if not isNull(.cells(i,X_COUNTRY).Value) and not isEmpty(.cells(i,X_COUNTRY).Value) then
' wscript.echo .cells(i,X_COUNTRY).Value
' objContact.put "",
'end if
if not isNull(.cells(i,X_ASSISTANT).Value ) and not isEmpty(.cells(i,X_ASSISTANT).Value ) then
wscript.echo "asist/info: "&.cells(i,X_ASSISTANT).Value
info="telefon do asystenta: "&.cells(i,X_ASSISTANT).Value
end if
if not isNull(.cells(i,X_FAX).Value) and not isEmpty(.cells(i,X_FAX).Value) then
wscript.echo "fax: "&.cells(i,X_FAX).Value
objContact.put "facsimileTelephoneNumber",.cells(i,X_FAX).Value
end if
if not isNull(.cells(i,X_TEL).Value ) and not isEmpty(.cells(i,X_TEL).Value ) then
wscript.echo "telefon: "&.cells(i,X_TEL).Value
objContact.put "telephoneNumber",.cells(i,X_TEL).Value
end if
if not isNull(.cells(i,X_TEL2).Value) and not isEmpty(.cells(i,X_TEL2).Value) then
wscript.echo "othertel1: "&.cells(i,X_TEL2).Value
othel=.cells(i,X_TEL2).Value
end if
if not isNull(.cells(i,X_MOBILE).Value) and not isEmpty(.cells(i,X_MOBILE).Value) then
wscript.echo "mobile: "&.cells(i,X_MOBILE).Value
objContact.put "mobile",.cells(i,X_MOBILE).Value
end if
if not isNull(.cells(i,X_TEL3).Value) and not isEmpty(.cells(i,X_TEL3).Value) then
wscript.echo "othertel2: "&.cells(i,X_TEL3).Value
if isNull(othel) or isEmpty(othel) then
othel=.cells(i,X_TEL3).Value
else
othel=othel&","&.cells(i,X_TEL3).Value
end if
end if
if not isNull(.cells(i,X_PAGER).Value) and not isEmpty(.cells(i,X_PAGER).Value) then
wscript.echo "pager: "&.cells(i,X_PAGER).Value
objContact.put "pager",.cells(i,X_PAGER).Value
end if
if not isNull(.cells(i,X_EMAIL).Value) and not isEmpty(.cells(i,X_EMAIL).Value) and instr(.cells(i,X_EMAIL).Value,"@")>1 then
wscript.echo "email: "&.cells(i,X_EMAIL).Value
objContact.put "mail",.cells(i,X_EMAIL).Value
end if
if not isNull(.cells(i,X_ENAME).Value) and not isEmpty(.cells(i,X_ENAME).Value) then
wscript.echo "enote: "&.cells(i,X_ENAME).Value
'objContact.put "",
end if
if not isNull(.cells(i,X_NOTES).Value ) and not isEmpty(.cells(i,X_NOTES).Value ) then
wscript.echo "notes: "&.cells(i,X_NOTES).Value
info=info & vbCrLf & .cells(i,X_NOTES).Value
end if
if not isNull(.cells(i,X_WEBPAGE).Value) and not isEmpty(.cells(i,X_WEBPAGE).Value) then
wscript.echo "www: "&.cells(i,X_WEBPAGE).Value
objContact.put "wwwHomePage",.cells(i,X_WEBPAGE).Value
end if

if not isNull(info) and not isEmpty(info) then
objContact.put "info", info
end if
if not isNull(othel) and not isEmpty(othel) then
objContact.putex 2,"otherTelephone",split(othel,",")
end if
on error resume next
objContact.setInfo
if err.number<>0 then
wscript.echo "blad zakladania usera: "&contactname&" "&err.description
err.clear
else
wscript.echo "DONE."
end if
i=i+1
wend
end with

oExcel.Quit

czesc dotyc
zaca kraju zostala wyremowana, poniewaz kraj opisuje sie w AD countrycode wg numerkow ISO 3166 wiec trzba by stworzyc tabele realicji. nie przy tak prywmitywnym skrypciq.

to nie jest jednak koniec problemow – podczas importu kontaktow, RUS [recipient update service], automatycznie zaktualizajuje wszystkie kontakty. w rezultacie swierzo zaimportowane kontakty beda mialy maile.. firmowe. aby RUS nie podmienil kontkaktow mozna skorzystac z tego opisu lub z narzedzia admodify w zakladce ’email addr’ zaznaczajac jeden z dwoch checkboxow przy 'update recipient policy ….’. mozna tez, korzystajac z artykulu z ms dodac do skryptu update dodatkowego pola w AD:


objContact.put "msExchPoliciesExcluded","{3B6813EC-CE89-42BA-9442-D87D4AA30DBC}"

tego jednak nie testowalem, a w innym artykule podana jest nieco inna wartosc: „{26491CFC-9E50-4857-861B-0CB8DF22B5D7}” – taka tez wartosc znalazlem w AD po skorzystaniu z ADModify.

jesli zdarzy sie koniecznosc ponownego importu, na pewno to przetestuje q:

RSS
Follow by Email
LinkedIn
Share
Reddit