Skip to Content

IT nieuczesane.
category

Category: tips’n’tricks

SharePoint nie pyta czy edytować dokument

Taki dziwny objaw: podczas otwierania pliq SP nie zadaje pytania czy plik ma być do edycji czy do odczytu – po prostu go otwiera. za chwilę oczywiście pokazuje się komunikat informujący, że plik jest tylko do odczytu i naciśnij guzik aby go edytować

wsserr01 

obrazek jest dla excela ale ten sam objaw jest dla czegokolwiek. po naciśnięciu ‘edit’ pojawia się ‘spadaj szczawiu’:

wsserr02

po długim googlaniu i bezefektywnych próbach wdrożenia najdziwniejszych konfiguracji w końcu udało mi się ustalić, któryż to z moich najulubieńszych programów jest winny – jak zwykle jest to IE. przez tyle lat i na prawdę ogarnięcie zasad działania tej aplikacji pozostaje dla mnie niemożliwe. rozwiązaniem jest… usunięcie site’u z ‘Trusted Sites’

wsserr03

nie chce mi się spędzać czasu nad netmonem i innymi wynalazkami, żeby dojść *czemu* tak się dzieje… ważne, że w końcu działa i póki co zachowuje się deterministycznie q: […póki co…]

eN.

WebDav – Sharepoint na w2k8R2

Ponieważ już drugi raz zapomniałem – czas to sobie zapisać [*zapamiętać*]:

sharepoint nie korzysta z WebDav dostarczanego przez IIS – ma wbudowany własny mechanizm. w związq z tym nie trzeba instalować tego komponentu. co więcej – dla wersji x64, niewolno go instalować, ponieważ nawet jeśli jest wyłączony dla poszczególnych siteów, nie będzie działał komponent SP.

z emesowego Whitepaper – Understanding and Troubleshooting the SharePoint Explorer View:

WebDAV, IIS, and SharePoint

Many people are under the misconception that SharePoint uses the WebDAV functionality provided by IIS 6.0. Actually, SharePoint provides its own WebDAV implementation using the Stsfilt.dll ISAPI filter that is installed with both Windows SharePoint Services and SharePoint Portal Server. Enabling or disabling the WebDAV extension in IIS 6.0 has no effect on SharePoint functionality.

*UPDATE*

jest jeszcze jedna zabawa sprawa – jeśli site skonfigurowany jest *tylko* z SSL [require SSL] to przy próbie zmapowania dostaje się błąd ‘acc denied’. jeśli jest skonfigurowane jest dodatkowe dowiązanie [nie musi to być port 8o – ja wstawiłem 8o8] i odhaczy się ‘require SSL’ to polecenie “net use * https://sharepoint…” działa normalnie. gr8.

eN.

jak czytać błędy

przypadkiem trafiłem na ciekawe wyjaśnienie numerków błędów. jeden z programów sypnął numerkiem ‘2147944309’ – co on oznacza? problem polega na tym, że niektóre programy podają w hexach inne w dzisiętnym. standardowo większość opisów posługuje się szesnastkowym. ten numerek przypomina dzisiętny, więc go przekonwertujmy:

2147944309 = 0x80070775

i taki błąd zaczyna przypominać coś, co się zna. ‘8007’ oznacza standardowy błąd Win32, pozostaje więc info dot. błedu ‘0775’. i pomimo, że winda posługuje się standardowo szesnastkowym, to narzędzie jakie jest w systemie wymaga podania dziesiętnego zapisu, a więc kolejne przeliczenie:

0x775 = 1909

no i pozostaje wykorzystać starego, ‚dobrego’ neta:

PS C:>net helpmsg 1909
The referenced account is currently locked out and may not be logged on to.

eN.

jak usunąć SRP?

SRP czyli w świecie sp/vista – Software Restriction Policy (w w7 pojawił się AppLocker) służą do nakładania pewnych ograniczeń dla aplikacji – głównie co może/nie może się uruchomić. jest to część GPO i można je usunąć w prosty sposób – klikając PGM na kontenerze ‘software restrictions’ i po prostu usnąć:

image 

jest tylko jedno małe ‘ale’… tego menu w GPO nie ma, jeśli GPMC/GPEdit uruchomiony jest na XP! a więc jeśli chce się usunąć SRP admintoolsy nie pomogą – trzeba się pofatygować na serwer.

eN.

Dodawanie zaufanych adresów email do Safe Senders List w Outlook 2007 via GPO

Pewnie każdy w firmie ma jakieś wewnętrzne systemy, które co jakiś czas spamują userów różnego rodzaju informacjami, przypomnieniami itp.. Składnia tych maili jest czasami tak pokraczna, że outlook kwalifikuje te wiadomości jako spam i wrzuca je sobie do junk mails.

 

Rozwiązanie problemu wygląda banalnie:  Za pomocą GPO dodać  własną safe senders list i wyeksportować ją do użytkowników.

 

A więc tworzymy nowe GPO, ładujemy templatke Outlk12.adm i przechodzimy do:

User Configuration->Policies->Administrative Templates-> Microsoft Office Outlook 2007->Tools | Options…->Preferences->Junk E-mail

Wybieramy Specify path to Safe Senders list, po czym wskazujemy lokalizacje pliku w którym będziemy trzymać ową listę, np.:\domena.corpNETLOGONoutlooksafesenderslist.txt

Owa lista to nic innego jak plik tekstowy, w którym w wierszach są wpisane zaufane adresy mailowe, np:

adres@domena.com

adres2@domena.corp

 

Warto się jeszcze zastanowić nad opcją: Overwrite or Append Junk Mail Import List,

która ustawia czy nasza lista ma nadpisać listę użytkownika, czy zostać dopisana do już istniejącej.

 

Podpinamy jeszcze tylko nasze GPO do odpowiednich OU i szczęśliwi, że udało się szybko rozwiązać zadanie zaczynamy je testować.

 

No i dupa. Okazuje się, że do poprawnego działania tego mechanizmu, należy jeszcze zmienić wartość rejestru na stacjach klienckich.

 

Do klucza:

HKey_Current_UserSoftwareMicrosoftOffice12.0OutlookOptionsMail

należy dodać wartość DWORD

JunkMailImportLists=1

 

Po wprowadzeniu tej modyfikacji rejestru, wszystko pięknie działa.

 

Samą modyfikację rejestru oczywiście najszybciej i najwygodniej zrobić za pomocą GPO.

Tutaj przydaje się  Windows 2008 i Group Policy Preferences, które w znaczny sposób ułatwiają  modyfikacje rejestru na końcówkach.

BOOTMGR is missing: smutny żart microsoftu

podczas przenoszenie konfiguracji z pojedynczego dysq na RAID przywitał mnie taki śliczny komunikat: “BOOTMGR is missing”. z podobnymi problemami borykałem się wiele razy, więc pomyślałem sobie “jakiś to problem”… szybko okazało się, że problem jest całkiem niebłahy, a inżynierowie eMeSa zrobili chyba wszystko, żeby to utrudnić.

jak wiadomo od visty/w2k8 zmienił się sposób obsługi startu systemu – zupełnie nowy bootmanager, obsługa GPT itp itd… w moim przypadq był to server w2k8 R2. podstawą jest oczywiście płyta instalacyjna serwera, odpalamy i… upsss…nie ma na płycie serwera opcji reperacji – to pierwsza miła niespodzianka. najwyraźniej ktoś wyszedł z założenia, że serwer się nie psuje albo że admin jako geek poradzi sobie z linii poleceń. no i co ma sobie nie poradzić? przecież wszystkie polecenia znam dobrze:

  • shift-F10 do konsoli
  • sprawdziłem katalog boot [nie ma]
  • skopiowałem pliki z CD do c:boot
  • bootrec /reinstallbcd

ślicznie. tylko nie działa. no to następnym razem jeszcze /fixmgr oraz /fixboot [z bootrec].. nie działa… google, fora no i w sumie wszyscy podają takie same rozwiązania, i co by nie zrobić nic nie działa – wciąż wita mnie ten sam milusi komunikat. była nawet taka jedna podpowiedź “weź płytę z klientem, odpal, użyj opcji ‘repair startup problems’” – co za lamerka, no ale dobra. spróbowałem… i nadal nie działa.

aż nie trafiłem na tą instrukcję:

    1. Boot from your Windows Server 2008 R2 x64 DVD.
    2. Repair
    3. Command Prompt
    Note: I only had one drive and that drive was set for C: as  the boot so the setup was fairly basic… if your setup is more complex you may want to consider this a bit more… but it should still work.
    4. rename c:bootBCD bcd.old : this will backup your bcd file just in case you want it.
    5. Delete c:bootbcd
    6. Restart your computer
    7. Remove your WS2008R2 DVD and insert the W7x64 DVD.
    8. Boot from the DVD and do a repair.
    9. It will offer to repair automatically accept.
    10. Reboot and this is the "trick" boot the DVD again and do a repair.  Keep doing this process until it does not find anything wrong.
    11. Your server should boot again.

“wykonuj ten proces póty, póki nie wykryje więcej błędów” – WTF? to jakiś smutny dowcip? no ale kiedy nie ma się nic do stracenia [czasu i tak już straciłem ZA DUŻO] – porestartowałem sobie troszq…

…no i zadziałało! w sumie 4 restarty, 3 reperacje. O CO C’MON?

szukałem dobrego artu na temat reperacji BCD i tego, co się w zasadzie dzieje podczas owej reperacji z płyty – czemu wszystkie opisy pokazują narzędzie bootsect, bootrec, bcdedit, ale żaden nie wskazuje narzędzi wykorzystywanych podczas reperacji tak, jak się dzieje z GUI i w końcu czemu, do cholery czemu! na płycie serwera nie ma tego toola?

to się nazywa poprawić mechanizm bootowania? idealny materiał na podrążenie tematu i opisanie tego porządnie … tylko czasu brak no i jakiś rozwalony komp by się przydał – bo trzeba na czymś testy porobić [chyba wiem, jak to popsuć, ale na pewno na tym serwerze już nie będę testował (; ]

eN.

mapdrive script:automatyzacja mapowania dysków z serwera plików

prosta idea [nie zawsze wykonalna] – wedle podręcznikowego przydzielania uprawnień i zarządzania grupami polega na tym, że dla każdego udziału na FS tworzona jest grupa security-domain local – np. Share_FS01_RW_public. tej grupie nadawane są uprawnienia [w tym przypadq RW] a całe zarządzanie przydzielaniem uprawnień polega na dodaniu grupy funkcyjnej do grupy dostępowej. przykład w praktyce:

  1. zakładam w AD jednostkę organizacyjną OU=AccessGroups
  2. zakładam w AD jednostkę organizacyjną OU=Accounting
  3. zakładam grupę funkcyjną security-global ‘Accounting’ i dodaję odpowiednich userów). te 3 kroki oczywiście definiują miniaturkę podstawowego środowiska lab
  4. księgowość musi mieć swój prywatny katalog na FS więc:
  1. zakładam grupę Security-Domain Local o nazwie “AG_FS01_RW_Accounting” w OU-AccessGroups – to przykładowa notacja która pozwala w łatwy sposób odróżnić grupy dostępowe od innych, zawiera nazwę serwera, którego dotyczy, uprawnienia [dzięki temu można łatwo odróżniać grupy RW od R] oraz jakiego udziału dotyczą.
  2. zakładam katalog ‘Accounting’ na FS01 i publiqję go jako ‘\FS01Accouting’
  3. jedyne uprawnienia jakie zakładam na katalogu to “authenticated users:M” na poziomie udziału oraz “AG_FS01_RW_Accounting:RW” na poziomie NTFS
  4. teraz aby nadać uprawnienia do katalogu wystarczy, że dodam grupę ‘Accounting’ do ‘AG_FS01_RW_Accounting’

wadą takiego rozwiązania jest niezliczona ilość grup w złożonym środowisq – a więc czasem podręcznikowe rozwiązanie nie może być zastosowane. zalet jednak jest bardzo dużo:

  • wszystko zarządzane z jednego miejsca za pomocą ADUaC bez potrzeby logowania/sprawdzania na serwerach plików
  • ..czyli centralizacja zarządzania uprawnieniami
  • łatwość delegacji zarządzania uprawnieniami
  • utrzymywanie spójnej, prostej struktury: przejrzystość
  • prostota automatyzacji mapowania: ujednolicone/uniwersalne skrypty mapowania
  • automatyczne mapowanie dysków dla użytkowników zaraz po dodaniu do grupy funkcyjnej

poniżej zamieszczam przykładowy skrypt logowania mapujący dyski, który ma możliwość mapowania na podstawie przynależności do grupy. ponieważ użytkownicy nie należą bezpośrednio do grupy dostępowej, sprawdzany jest drugi poziom zagnieżdżenia – atrybut memberof. jest możliwość włączenia rekursywnego sprawdzania zagnieżdżenia ale ma to kilka mankamentów:

  • jest dość powolne w realnym środowisq, gdzie grup jest sporo
  • istnieje niebezpieczeństwo przypadkowego zmapowania katalogu z powodu powiązań pomiędzy grupami

jak się okazuje, czasem teoria przekłada się na praktykę – mówię tu o podręcznikowym projektowaniu grup (global/domain local i standardowe AGDLP).

eN.

bypass proxy for local address – nie działa

jest sobie aplikacja wewnętrzna, działająca… na wewnętrznych serwerach – załóżmy, ze na server.local.domain. po zalogowaniu do aplikacji okazuje się, że część jej się nie ładuje. wyłączamy proxy, restart przeglądarki, wszystko działa. a-ha. wina proxy. tylko zaraz! przecież jest ślicznie zaznaczona flaga “bypass proxy for local addresses”. znajduję artykuł na supporcie, informujący, że ta flaga działa tylko dla krótkich nazw.

niewątpliwie jest to pasqdztwo ze strony eMeSów, że mimo, iż od długiego czasu korzystają z DNS/TCPIP jako podstawowej warstwy, zostawiają co-i-rusz takie paszkwile – czy to przy logowaniu czy w takich sytuacjach – okazuje się, że stare NETBiosowe nazwy mają pierwszeństwo nad pełnymi FQDN czy UPN… no ale nic to. przecież jest lista wyjątków.

dopisuję do wyjątków serwer – żeby zawsze pomijał proxy. sytuacja się nie zmienia – nadal aplikacja nie działa prawidłowo. zacząłem już przeklinać IE ale okazało się, że moje emocje były przedwczesne, ponieważ to nie jest wina IE. po zbadaniu na serwerze logów okazuje się, że durnym komponentem jest java.

no jakże, by inaczej – aplikacje pisane w javie to horror, jej niekompatybilność między wersjami to horror, teraz do listy można jeszcze dopisać konfigurację. teoretycznie w konfiguracji jest opcja “use browser settings” – najwyraźniej jednak nie potrafi wykryć list wyjątków. no więc work-around jest taki, żeby proxy dla java po prostu ustawić na stałę i WOA! nawet jest flaga w konfiguracji “bypass for local” i nawet działa! szczyt technologii – to teraz trzeba przekonfigurować kilkadziesiąt kompów ):

JAVA SUX

eN.

Polisy komputera nie są pobierane na maszynie XP Mode

kiedy sprawdzi się GPResult’em maszynę XP Mode dodaną do domeny okazuje się, że polisy użytkownika są propagowane, jednak w części komputera … pustka – nawet nie ma listingu polis! zupełnie jakby ich w ogóle nie było [w-files O_o].

dziwne.. nie wiem czemu nie potrafi ich nawet odczytać, ale powodem jest to, że maszyna jest za NATem – standardowe ustawienie trybu sieci dla XP Mode. po zmianie działania sieciówki na bezpośrednie – wszystko hula jak powinno.

…czyli jeśli postawię maszyny na NATem – np. w branch office, to nie będą pobierały polis?

eN.

Usuwanie starych kont komputerów z Active Directory

Kiedys do wywalania starych i nieużywanych kont komputerów z AD służył mi taki znaleziony w sieci skrypt:

 

dsquery computer -inactive 16 -limit 0 | dsrm -c -noprompt

 

ale coś przestał działać na Win2008.

Nie wnikając w szczegóły i chcąc iść  z duchem czasu przerobiłem go na PowerShella

 

Get-QADComputer -IncludedProperties pwdLastSet -SizeLimit 0 |where {$_.pwdLastSet -le (Get-Date).AddDays(-180) } | Remove-QADObject -DeleteTree  -Force

 

Może komuś się przyda przy porządkach w AD.