Dialing Rule Optimizer

By Konrad Sagala on Listopad 30th, 2011

Jeżeli ktoś potrzebuje na serwerze Lync 2010 skonfigurować w scenariuszu Enterprise Voice plany telefoniczne, reguły normalizacji numerów, etc, to można to zrobić w prosty sposób skryptem wygenerowanym przy pomocy narzędzia webowego, napisanego przez Ken Lasko – Dialing Rule Optimizer. Od kilku dni narzędzie to pozwala również generować reguły również dla polskich stref numeracyjnych, w czym trochę pomogłem.

Dialing Rule Optimizer

By Konrad Sagala on Listopad 30th, 2011

Jeżeli ktoś potrzebuje na serwerze Lync 2010 skonfigurować w scenariuszu Enterprise Voice plany telefoniczne, reguły normalizacji numerów, etc, to można to zrobić w prosty sposób skryptem wygenerowanym przy pomocy narzędzia webowego, napisanego przez Ken Lasko – Dialing Rule Optimizer. Od kilku dni narzędzie to pozwala również generować reguły również dla polskich stref numeracyjnych, w czym trochę pomogłem.

Infografika na temat używania chmury Microsoft’u

By Metorio on Listopad 30th, 2011

Microsoft podsumował w infografice poniżej informacje jakie posiada na temat wykorzystania jego chmury. Myślę najważniejszą rzeczą jest, że aż 41 z Top100 największych firm używa właśnie chmurę giganta z Redmond.

***To jest tylko część wpisu, kliknij na tytuł, aby zobaczyć całość***

Komputer z Windows może być wyjątkowy.

By T4ngram on Listopad 29th, 2011

Niedawno uruchomiony został w naszym holu głównym w firmie taki sympatyczny „kącik komputera z Windows”.
Dzięki uprzejmości producentów sprzętu udało się zgromadzić na kilkunastu metrach kwadratowych całkiem niezłą kolekcję naprawdę wyjątkowych…(read more)

Komputer z Windows może być wyjątkowy.

By T4ngram on Listopad 29th, 2011

Niedawno uruchomiony został w naszym holu głównym w firmie taki sympatyczny „kącik komputera z Windows”.
Dzięki uprzejmości producentów sprzętu udało się zgromadzić na kilkunastu metrach kwadratowych całkiem niezłą kolekcję naprawdę wyjątkowych…(read more)

Problemy z replikacją AD pomiędzy SBS 2003 i Windows 2000 – ERROR_DOMAIN_CONTROLLER_NOT_FOUND

By pawp81 on Listopad 29th, 2011

Ostatnio zmagałem się z problemem dotyczącym replikacji AD Inter-Site pomiędzy serwerami Small Business Server 2003 i Windows 2000 SP4. Łącze między lokalizacjami było bardzo słabe. Serwer SBS 2003 był pierwszym kontrolerem w domenie i posiadał wszystkie role FSMO. Przy promocji serwera Windows 2000 do roli kontrolera domeny w logu dcpromo.log znalazłem następujące ostrzeżenie: [WARNING] Non critical replication returned 1908

Błąd 1908 oznacza: ERROR_DOMAIN_CONTROLLER_NOT_FOUND

dcdiag /v uruchomiony na serwerze Windows 2000 zwracał poniższy komunikat:
The directory service on DC002 has not finished initializing. In order for the directory service to consider itself synchronized, it must attempt an initial synchronization with at least one replica of this server's writeable domain. It must also obtain Rid information from the Rid FSMO holder. The directory service has not signalled the event which lets other services know that it is ready to accept requests. Services such as the Key Distribution Center, Intersite Messaging Service, and NetLogon will not consider this system as an eligible domain controller. * Active Directory RPC Services Check

Za pomocą replmon sprawdziłem, że nie działa replikacja z SBS 2003 do Windows 2000 (błąd: Nie można odnaleźć kontrolera tej domeny). W drugą stronę replikacja działa poprawnie.

Wymuszając replikację za pomocą replmon i analizując pakiety zauwyżyłem, że serwer Windows 2000 wysyłał pakiety TGS-REQ do SBSa używając protokołu UDP, ale serwer SBS nie wysyłał odpowiedzi. Postanowiłem wymusić korzystanie z protokołu TCP dla Keberosa ponieważ uważałem, że na słabym łączu pakiety TCP mają większe szanse na dotarcie.

Stworzyłem odpowiedni wpis w rejestrze: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\ Kerberos\Parameters
DWORD MaxPacketSize=1 opierając się na artykule http://support.microsoft.com/kb/244474 Zrestartowałem serwer. Po restarcie replikacja zaczęła działać również w kierunku z SBS 2003 do Windows 2000. Po kilku minutach dcdiag przestał pokazywać błędy dotyczące braku początkowej synchronizacji AD.

Konfiguracje mobilnych Internetów

By Łukasz Matuszewski on Listopad 29th, 2011

Ręczne konfiguracje mobilnych Internetów:

T-Mobile (ERA)
APN: internet
Login: brak
Hasło: brak
Numer dostępowy: *99***1#

Orange
APN: internet lub
Login: internet
Hasło: internet
Numer dostępowy: *99***1#

Play
APN: internet
Login: brak
Hasło: brak
Numer dostępowy: *99***1#

Plus
APN: www.plusgsm.pl lub internet lub plus
Login: plusgsm
Hasło: plusgsm
Numer dostępowy: *99***1#

Cyfrowy Polsat
APN: multi.internet
Login: brak
Hasło: brak
Numer dostępowy: *99***1#

aero2
APN: darmowy
Login: brak
Hasło: brak
Numer dostępowy: *99***1#

The Case of the Installer Service Error

By Mark Russinovich on Listopad 29th, 2011

This case unfolds with a network administrator charged with the rollout of the Microsoft Windows Intune client software on their network. Windows Intune is a cloud service that manages systems on a corporate network, keeping their software up to date…(read more)

The Case of the Installer Service Error

By Mark Russinovich on Listopad 29th, 2011

This case unfolds with a network administrator charged with the rollout of the Microsoft Windows Intune client software on their network. Windows Intune is a cloud service that manages systems on a corporate network, keeping their software up to date and enabling administrators to monitor the health of those systems from a browser interface. It requires a client-side agent, but on one particular system the client software failed to install, reporting this error message: The dialog’s error message…(read more)

PowerShell – efektywniej, część 7.

By Bartek Bielawski on Listopad 29th, 2011

Minął prawie miesiąc od ostatniego wpisu… dla mnie był to miesiąc wyjątkowo długi. Kończymy powoli wdrażanie Windows 7 w naszej firmie, a wiadomo jak to jest – końcówki zwykle są najgorsze, szczególnie gdy innych spraw również nie można odłożyć na później. Skutek jest taki jak widać – blog musiał nieco poczekać… Dziś zamknąć zamierzam kwestie związane z zaawansowanymi funkcjami/ skryptami. Nasza zaawansowana (choć niezbyt funkcjonalna) ma już niemal wszystko. Brakuje tylko jednego – pomocy. W przypadku cmdletów pomoc jest tworzona przy pomocy plików maml. Pisanie ich na piechotę nie należy do wdzięcznych czynności, można to sobie znacznie uprościć korzystając z narzędzia Cmdlet Help Editor. Pisząc zaawansowane funkcje mamy zadanie znacznie uproszczone. W zasadzie całość sprowadza się do umieszczenia odpowiednio sformatowanego komentarza w odpowiednim miejscu. Zasady przypominają nieco regulamin dotyczący spalonego w piłce nożnej: niby wszystko jest proste, ale jak się zacznie wyjaśniać komuś, robi się coraz mniej “prosto”. W zasadzie budowanie pomocy sprowadza się do dodania komentarza w formacie:

<#
.Nagłówek
    Treść
.Dwuczłonowy Nagłówek
    Treść
#>

Dokładny opis wszystkich elementów znajduje się w pomocy (about_comment_based_help), ja wspomnę o najistotniejszych (moim zdaniem):

  1. Synopsis – krótki opis naszej funkcji
  2. Description – opis obszerniejszy, bardziej szczegółowy
  3. Example – przykłady, każdy przykład umieszczamy w osobnej sekcji Example a sekcji takich możemy definiować ile chcemy (nawet jeśli istnieje jakiś limit, to trudno będzie do niego “dobić”
  4. Notes – dodatkowe informacje, które nie pojawią się w widoku domyślnym
  5. Parameter MojParametr – opis konkretnego parametru

Ale to dopiero początek, dalej zaczyna się cała litania innych warunków, po kolei więc:

  • można użyć zarówno komentarzy blokowych (<# #>), “tradycyjnych” (# jako pierwszy znak w linii) oraz mieszanki obu
  • komentarz do funkcji można umieścić “w ciele”, lub tuż nad słowem kluczowym “function”
  • umieszczając pomoc nad funkcją, możemy zostawić maksymalnie jedną linię pustą pomiędzy końcem komentarza a początkiem funkcji.
  • umieszczając pomoc w ciele funkcji, musimy pamiętać by umieścić go przed blokiem param () i [CmdletBinding()]
  • w przypadku pomocy do skryptu – musimy umieścić komentarz na jego początku lub końcu
  • jeśli chcemy dodać linie #requires na początku skryptu – musimy odseparować ją pustą linią od bloku zawierającego pomoc
  • umieszczenie pomocy na końcu skryptu i podpis elektroniczny wzajemnie się wykluczają (niedopatrzenie ) – podpis jest komentarzem, więc automatycznie blok pomocy nie jest ostatni i przestaje być obsługiwany
  • jeśli chcemy pomoc skryptu umieścić na jego początku musimy zadbać o to, by pomoc nie “przykleiła” nam się do pierwszej funkcji znajdującej się w skrypcie
  • jakakolwiek literówka w nagłówkach pomocy (n.p.: .Synosis) automatycznie sprawi, że pomoc się nie pojawi w ogóle
  • każdy nagłówek musi być w osobnej linii, sekcja musi zaczynać się w linii następnej i kończyć w linii poprzedzającej następny nagłówek
  • komentarz musi stanowić jedną całość – jeśli będą przerwy między częściami, brana pod uwagę będzie tylko ta część, której położenie zgadza się z zasadami wymienionymi powyżej
  • opis parametrów można umieszczać zarówno tuż nad nimi, jak i w treści “głównej” pomocy

Jak widać – miejsc na potencjalne pomyłki nie brakuje. Próbowałem sobie wyłapywanie błędów (szczególnie literówek) ułatwić jakiś czas temu (dokładnie w czasie Scripting Games 2010) – wtedy też napisałem prostą funkcję, która miała mi w wyłapywanie błędów pomóc. Bazuje ona na wyrażeniach regularnych i pewnie wymagałaby poprawek – pisałem ją w czasach gdy o tych ostatnich wiedziałem zdecydowanie mniej niż teraz. Ale na pewno może się ona przydać od czasu do czasu, by wyłapać najbardziej bagatelne błędy…

Tyle zasady. A jak najlepiej budować taką pomoc? Synopsis i Description to moim zdaniem absolutne minimum. Dobrze jest też umieścić choć kilka przykładów użycia naszej funkcji. Odnośnie parametrów – preferuję umieszczania pomocy do nich bezpośrednio na nimi, w bloku param. Dzięki temu, moim zdaniem, łatwo tę pomoc “wyłapać” w czasie modyfikowania skryptu/ funkcji. A i dodając nowy parametr możemy od razu wzbogacić go o odpowiednią pomoc. Wyjątkiem będą tu parametry dodawane w zaawansowanych funkcjach automatycznie, jak WhatIf, Confirm, Debug i Verbose.

Pozostałe elementy pomocy używam niezmiernie rzadko. Możliwości jest sporo, więc najlepiej korzystać z nich z głową, by nie przesadzić… Jak pomoc będzie zbyt przeładowana – nikomu nie będzie się chciało jej czytać.

Na koniec nasza funkcja, tym razem już odpowiednio uzbrojona w system pomocy:

function Get-Foo {            

<#

.Synopsis
    Wyświetla literki i cyferki.

.Description
    Funkcja wyświetla literki i cyferki, w zależnosci od potrzeb.
    Liczby są formatowane jako waluta (C4), procenty (P4)
    i zwykłe liczby (N4).
    W przypadku słów nie jest używane żadne specjalne formatowanie.

.Example
    Get-Foo Slowo
    Slowo to moje slowo

    Wyświetla wybrany string.

.Example
    Get-Foo -Liczba .24 -Format P4
    Moja liczba: 24.0000 %

    Wyświetla liczbę sformatowaną w wybrany sposób.

.Parameter WhatIf
    Dodawany automatycznie.
    Pomoc do niego możemy umieścić jedynie w taki sposób.

.Parameter Confirm
    I tu podobnie...
#>            

[CmdletBinding(
    SupportsShouldProcess = $true,
    ConfirmImpact = 'Medium',
    DefaultParameterSetName = 'Domyslny'
)]
param (
    # Liczba, którą chcemy wyświetlić.
    [Parameter(
        Mandatory = $true,
        HelpMessage = 'Pomocy!',
        ValueFromPipeline = $true,
        Position = 0,
        ParameterSetName = 'Liczby'
    )]
    [double]$Liczba,            

    # Pojedyncze słowo, które chcemy wyświetlić.
    [Parameter(
        Mandatory = $true,
        HelpMessage = 'Pomocy!',
        ValueFromPipelineByPropertyName = $true,
        Position = 0,
        ParameterSetName = 'Domyslny'
    )]
    [ValidatePattern('^\w+$')]
    [string]$Slowo,            

    # Format, który zostanie użyty do wyświetlenia podanej liczby.
    [Parameter(
        Position = 1,
        ParameterSetName = 'Liczby',
        Mandatory = $true,
        HelpMessage = 'Pomozcie mi!'
    )]
    [ValidateSet('P4','N4','C4')]
    [string]$Format            

)            

begin {
    Write-Verbose "Format: $Format"
    Write-Verbose "Liczba: $Liczba"
    Write-Verbose "Slowo: $Slowo"
    if ($Format) {
        Write-Debug "Wygląda na to, że używamy liczby."
    }
}            

process {
    if ($psCmdlet.ShouldProcess(
        "Cel: $Slowo $Liczba",
        "Operacja: Wyświetl"
    )) {            

        switch ($psCmdlet.ParameterSetName) {
            Domyslny {
                "{0} to moje slowo" -f $Slowo
            }
            Liczby {
                "Moja liczba: {0:$Format}" -f $Liczba
            }
        }
    }
}
}

W następnej części zamierzam zająć się modułami. Ponieważ temat ten jest dość obszerny, nie wykluczone że rozbiję go na kilka wpisów. Byleby tylko czasu i zapału na pisanie nie zabrakło…

Enrollment agent i ‘Żądaj w imieniu’ – No certificate available. No certificates meet the application criteria

By marcinbojko on Listopad 28th, 2011

Tymże dwoma frazami w zupełnie różnych językach opisuję problem nad jakim przesiedziałem ostatnio trochę czasu. Otóż historia wygląda tak.

Istnieje w domenie AD serwer spełniający rolę CA – nazwijmy go roboczo ‘ca’ (popis, nie?). Mamy rozrzucone po świecie stacje robocze, na których wskazani przez nas użytkownicy mogą przeprowadzać operację generowania certyfikatów dla kolejnych użytkowników naszej domeny. Stacje robocze pracują pod kontrolą W7/Visty/XP.

Błąd:

Cyklicznie, co pewien czas osobnik wskazany jako EA (Enrollment Agent – Agent rejestracji) tracił możliwość wystawiania w imieniu – stacja nie była w stanie odnaleźć w lokalnym kontenerze certów, żadnego certyfikatu o tej właśnie roli. Skutkowało to tym, iż pilne certyfikaty, które wygasły – były niemożliwe do wystawienia.

Rozwiązanie:

Stacja uruchomiona, użytkownik o roli EA zalogowany do domeny.

a) uruchamiamy regedit i sprawdzamy czy istnieją wpisy w
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EnterpriseCertificates\NTAuth\Certificates\

Jeżeli ‚Certificates’ są puste należy
b) uruchomić certmgr.msc. Z sekcji Trusted Sites odnaleźć certyfikat naszego CA (ca). Wyeksportować ca do pliku cer np. ca.cer
c) uruchomić zażądaj certyfikatu ‚Agent rejestracji’ – Enrollment Agent, przejść do końca procesu
d) wyeksportować tak utworzonego agenta do pliku nazwisko.cer
e) certutil -enterprise -addstore NTAuth nazwisko.cer
f) certutil -enterprise -addstore NTAuth ca.cer

We wskazanym kluczu możemy zaobserwować 2 bloby. Koniec. Działa.


Tagged: active directory, ca, certyfikat, windows

Zdalny Asystent 1.0.9.8.0 Wydany !

By SzymonN on Listopad 28th, 2011

Z dniem 28.11.2011 wydana została nowa wersja MicroCreative Remote Assistant .
Build oznaczony numerkiem 1.0.9.8.0 wnosi wile usprawnień i stabilizuje cały program .
Pełna lista zmian tutaj

TechNet – Wirtualne sieci w Hyper-V – rodzaje wirtualnych sieci

By Dariusz Porowski on Listopad 28th, 2011

Na portalu TechNet został opublikowany mój artykuł z cyklu Podstawy wirtualizacji i Hyper-V. Jest to pierwsza część z serii Wirtualne sieci w Hyper-V.

Zapraszam do lektury: Hyper-V – rodzaje wirtualnych sieci.

Szybkie wstawianie serii na wykresie

By Marcin on Listopad 27th, 2011

Jak szybko dodać serię do wykresu? Zaraz to opiszę.

Załóżmy, że mamy dane dotyczące sprzedaży, kosztów i wyników sprzedaży. Na wykresie pokazujemy wielkość sprzedaży. Jak wstawić wynik sprzedaży?

Zaznacz zakres E2:E9 i skopiuj go. Następnie zaznacz wykres i wklej dane.

Proste i skuteczne.

Related Posts:

Analiza kosztów TCO dla Office 365

By jaroslawsokolnicki on Listopad 26th, 2011

TCO dla Office 365

Jedną z podstawowych korzyści cloud computingu (przetwarzanie w chmurze obliczeniowej) są niższe koszty dostarczenia usługi, np. poczty elektronicznej, systemu obiegu dokumentów, czy sytemów do komunikacji i wideokonferencji. Dotyczy to również usług które są oferowane w ramach Office 365. Rzetelne oszacowanie kosztów pomoże nam w podjęciu decyzji jakie usługi i w jakim modelu powiwniśmy zamówić dla naszej organizacji.

Generalnie koszty związane z dostarczeniem okreslonych usług możemy podzielić na następujące elementy:

  • Hardware, koszty sprzętu niezbędnego do dostarczenia określonej usługi.
  • Software, koszty oprogramowania, dotyczy zarówno oprogramowania podstawowwego jak np. Server Exchange ale również oprogramowania dodtkowego jak np. systemy antywirusowe i antyspamowe.
  • Operations, koszty operayjne związane z utrzymaniem i dostarczaniem okreslonej usługi. Będą to między innymi koszty administracji systemami, koszty archiwizacji, oraz inne koszty obsługi.
  • Deployment, koszty związane z uruchomieniem i dodstosowaniem okreslonej usługi, implementacja rozwiązania, migracja danych, budowa rozwiązań

Koszty wymienionych elementów usług będą się róznie rozkładać dla rozwiąząń onpremisse, czyli rozwiązań instalowanych u klienta i rozwiązań online oferowanych z chmury obliczeniowej. Chmura obliczeniowa w znacznym stopniu niweluje nam koszty związane ze sprzętem oraz redukuje koszty operacyjne. Jeżeli natomiast odnieść się do implementacji usług, chmura obliczeniowa przede wszystkim skraca czas ich dostarczenia do produkcji ale również redukuje sam koszt ich posiadania. Bazując na powyższych informacjach koszty posiadania Office 365 w tym Exchange SharePoint i Lync w wersji Online powinny być znacznie mniejsze niżeli koszty posiadania tych rozwiązań w modelu klasycznym czyli instalacja u klienta. Oczywiście należy tu założyć odpowiednią perspektywę czasową np. 3 lata wzgledem której będziemy wykonywali analizę TCO Total Cost of Ownership (definicja poniżej)

W jaki sposób możemy wokonać taką analizę dla Office 365. Posłuży nam do tego specjalnie przygotowane narzędzie Office 365 TCO tool v2.0 – Euro. Narzędzie to pozwala wykonać bardzo szcegółową analizę TCO dla usług wchodzacych w skład Office 365. Na początek uruchamiamy arkusz Excela Office 365 TCO tool.

Na zakładce start podajemy podstawowe informacje nazwa firmy, lokalizacja ilość komputerów. W kolejnym kroku na tej samej zakładce podajemy rodzaj planu E, lub wyszczególniamy pojedyńcze usługi (Custom scenario) Office 365 dla których chcemy wykonać analizę . Klikając na przycisk Result otrzymujemy pierwsze przybliżenie stanowiące porówniae kosztów dla Office 365 wersus te same usługi dostępne onpremisse.

Aby uzyskać kolejne przybliżenie które bardziej urealni naszą analizę powinniśmy podać lub zmienić klika dodatkowych informacji dostępnych na zakładce Inputs.

W General Information należy  podać informacje informacje o kosztach w Product Information nalezy podać informacje o obecnie posiadanych syetemach Email, Communications i Collaborations. Pamiętaj że analiza będzie tym dokładniejsza im dokładniejsze będą dane wprowadzone na zakładce Inputs.

Jeżeli uzupełniliśmy wszystkie wymagane dane przechodzimy ponownie do zakładki Result i generujemy raport. Raport możemy wygenerowac w postaci przezentacji Power Point lub pliku Excel. Gratulacje posiadasz raport który możesz przedstawić osobom decydującym o wydatkach na IT w Twojej organizacji, teraz uda Ci się łatwiej ich przekonać że posiadanie Office 365 będzie z korzyścią dla Twjego przedsiębiorstwa.

Definicja TCO: źródło Wikipedia: Total Cost of Ownership (TCO) – zgodnie z Gartner Group, jest to całkowity koszt pozyskania, instalowania, użytkowania, utrzymywania i w końcu pozbycia się aktywów w firmie na przestrzeni określonego czasu. Ostatnio mówi się o TCO w kontekście inwestycji firmy w narzędzia informatyczne. Należy w ich przypadku brać na przykład pod uwagę nie tylko cenę zakupu, ale też przemyśleć ile będzie kosztowało utrzymanie narzędzi, oraz ich ewentualna rozbudowa[1]. TCO służy do oceny bieżących i prognozowanych wydatków na infrastrukturę informatyczną i telekomunikacyjną. Model uwzględnia koszty bezpośrednie ujawnione w budżetach i listach płac, oraz koszty pośrednie (ukryte) – wyznaczone jako koszty związane z działaniami użytkowników oraz z przestojami. Model TCO służy nie tylko redukcji całkowitych kosztów związanych z posiadaniem zasobów teleinformatycznych, ale także analizie różnic między badanym przedsiębiorstwem a danymi porównywawczymi modelu firm i stowarzyszeń niezależnych. Najważniejszym składnikiem modelu jest – oprócz systemu klasyfikacji kosztów zawierającego bogatą listę kategorii – także baza danych statystycznych o kosztach informatyki dla wielu branż.