odzyskiwanie maili w o365

bardzo fajny link do opracowania dotyczącego odzyskiwania maili w office365 – zagregowane wiadomości co, jak, dlaczego i z czego to wynika. fajna lektura nie tylko z instrukcją, ale dobrym wyjaśnieniem całego mechanizmu:

czemu jest '1/3′ w nazwie… nie wiem. nie znalazłem kolejnych części a w tej wydaje się być wszystko co potrzeba. informacja, która straciła na aktualności [to art z 2o12] to dostępność aplikacji do backupu o365 – ponieważ tych już się trochę pojawiło. i jeszcze wyciągnięty z tegoż artu link z apką, która wchodzi na stałe do mojego menu:

eN.

deduplication by Microsoft

taka ciekawostka a propos eMeSeowego DD…

  • eMeSowy DD działa na poziomie plików – nad sterownikiem NTFS a nie pod nim [..może raczej 'obok’.. albo 'wraz z’… hmmm. ciężko umiejscowić 'filter drivers’ w geometrii przestrzennej (; ].  to zupełnie zmienia logikę działania
  • efekty DD oraz scenariusze zastosowania będą zupełnie inne dla DD macierzowego a tego eMeSowego. dobrym przykładem będzie DD dla backupów SQL – bez względu czy użyje się kompresji czy nie, zysk z DD będzie oscylował w okolicach 7o-8o%. tutaj można poczytać o ciekawych testach z tym związanych. w jednym ze środowisk uzyskałem ratio 92% dla backupów SQL (muszę dodać, że przy małej ilości zmian na bazie, więc test nie jest zbyt miarodajny, ale i tak robi wrażenie).
  • podczas projektowania przestrzeni dyskowej trzeba pamiętać, że operacja nie jest robiona w locie tylko w cyklach -czyli projekt musi zawierać 1oo% przestrzeni dla danych które będą się pojawiać. co więcej – deduplikacji (standardowo) nie podlegają pliki młodsze niż 3 dni,warto ustawić 'minimumFileAge’ na 0 żeby operacja została wykonana od razu jeśli to nie jest wolumen z aktywnie używanymi danymi. jest również wiele typów pliqw, które nie są ruszane, ze względu na to, że z góry wiadomo, że będzie to efektywne – głównie chodzi o już skompresowane pliki. z tego powodu bardzo jestem zdziwiony wynikami z backupem SQL.

eN.

Windows Updates z linii poleceń

jakoś ostatnio zauważam coraz więcej problemów z Windows Updates po stronie klienta – a to nic nie wyświetla, a to nie działa w ogóle 'wejście’ do listy update’ów – jakby link był martwy… no i oczywiście dochodzą serwery bez GUI.

a przecież po zainstalowaniu wersji Core dostępna jest commandline’owa wersja instalacji poprawek. wystarczy więc zajrzeć gdzie to sobie leży … i:

PS C:\Windows> cscript C:\Windows\System32\en-US\WUA_SearchDownloadInstall.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Search for for (A)ll updates or (R)ecommended updates only? a

Searching for all applicable updates...

List of applicable items on the machine:

1> Microsoft Silverlight (KB2668562)
2> Security Update for Windows 8, 8.1 and Windows Server 2012, 2012 R2 (KB2917500)
3> Microsoft SQL Server 2012 Service Pack 2 (KB2958429)

Select an option:
(A)ll updates, (N)o updates or (S)elect a single update?

[...]

warto zapamiętać: C:\Windows\System32\en-US\WUA_SearchDownloadInstall.vbs. w razie co, łatwo znaleźć:

ls c:\windows -recurse -ea SilentlyContinue -filter WU*.vbs

nie wiem czemu to jest w vbs, tak samo jak nie rozumiem czemu serwery w2k12 bez GUI otwierają cmd, ale wewnątrz widać proste polecania, które można łatwo przepisać na jakiś ludzki język (:

eN.

przeszukiwanie logów aplikacyjnych

chaoschciałem zrobić szybką wrzutę na temat odczytywania zdarzeń z logu 'applications and services logs’… i okazuje się, że to całe małe universum XMLowe…

najważniejsze informacje: logi systemowe można czytać łatwo i przyjemnie przy pomocy 'get-EventLog’. jednak kiedy chce się odczytać coś z logów aplikacji zaczynają się schody. jest polecenie 'Get-WinEvent’, jednak mechanizm za nim się kryjący jest okrutnie nieprzyjemny. cała architektura oparta jest na XMLu, w związq z czym jakiekolwiek przeszukiwanie albo jest pop(*^@#!@ne albo niewydajne. przykłady filtrów XML – standardowy i xPath ze strony technet:

# Use FilterXML

PS C:\>Get-WinEvent -FilterXML "<QueryList><Query><Select Path='Windows PowerShell'>*[System[Level=3 and TimeCreated[timediff(@SystemTime)&lt;= 86400000]]]</Select></Query></QueryList>"

# Use FilterXPath

PS C:\>Get-WinEvent -LogName "Windows Powershell" -FilterXPath "*[System[Level=3 and TimeCreated[timediff(@SystemTime) &lt;= 86400000]]]"

w dużym skrócie – jest to zupełnie nieprzydatne w zastosowaniu codziennej administracji ponieważ:

  • trzeba nie tyle 'znać’ obsługę XML ale 'mieć ją wkompliowaną w mózg’. jak ktoś z tego korzysta dzień w dzień, to może trzepnie taki kodzik na kolanie, ale jak raz na jakiś czas trzeba coś wyszukać…
  • nie da się na stałe zrobić zapytania, ponieważ zdarzenia mają różną strukturę – składają się z różnych elementów. jak to w XML – trzeba 'crawlować’  po elementach, bo ich struktura nie jest z góry znana
  • dwie różne metody, dwa totalnie różne zapisy, do tego w żaden sposób nie przystające do reszty PS

a przecież XML można przedstawić za pomocą obiektu… czemu ten wynalazek nie zwraca normalnego, ludzkiego obiektu z atrybutami?

polecam art, w którym można poczytać jak się przez to przegryźć.

a na szybko, bez developerki, może niewydajnie, ale działa:

scenariusz: znaleźć logi hyper-v, w których są wpisy dotyczące maszyny o nazwie 'VMNAME’

Get-WinEvent -ComputerName HYPERVSRVo1 -LogName 'Microsoft-Windows-Hyper-V-VMMS-admin' |? message -like '*VMNAME*'|select timecreated,id,message|fl *

inne pomocnicze polecenia na początek to 'get-WinEvent -listProvider *’ oraz 'get-WinEvent -listLog *’. trzeba jakiś list otwarty do scripting guy’a napisać, żeby ponaciskał na uczłowieczenie dostępu do logów aplikacyjnych… ahhh.. żeby tak czas pozwolił to można własny moduł napisać… /:

eN.

 

Exchange 2o1o, PS2.o – personal quota limits

PS2.o nie ułatwia życia… no ale czasem trafia się na takie środowisko i trzeba. szybka wrzuta, bez specjalnego tłumaczenia: sprawdzić kto ma włączone własne limity skrzynkowe oraz jaka jest obecnie zajętość skrzynki, żeby wiedzieć o ile można od razu przyciąć.

w tym celu trzeba połączyć wyniki get-mailbox i get-mailboxstatistics:

get-personalQuotaLimits.ps1

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
$personalLimits=Get-Mailbox |?{$_.UseDatabaseQuotaDefaults -eq $false}

foreach($pl in $personalLimits){
    $mbx=get-mailboxstatistics $pl
    add-member -inputObject $pl -MemberType NoteProperty –Name totalItemSize –Value $mbx.totalitemsize.value.toMB()
    add-member -inputObject $pl -MemberType NoteProperty –Name deleteItemSize –Value $mbx.totaldeleteditemsize.value.toMB()
    add-member -inputObject $pl -MemberType NoteProperty –Name databasename –Value $mbx.databasename
    add-member -inputObject $pl -MemberType NoteProperty –Name lastlogontime –Value $mbx.lastlogontime
}
$personalLimits|select name,`
    @{n='warning';e={$_.IssueWarningQuota.value.toMB()}},`
    @{n='sendQuota';e={$_.ProhibitSendQuota.value.toMB()}},`
    @{n='Receive Quota';e={$_.ProhibitSendReceiveQuota.value.toMB()}},`
    totalitemsize,deleteItemSize,databasename,lastlogontime|`
        Export-csv -NoTypeInformation -Delimiter ';' C:\temp\personalLimits.csv -encoding UTF8

ciekawostka: commandlety Ex2o1o są dostarczane jako snapin a nie moduł… ot taki archaizm.

eN.