FOaaS – przełom w komunikacji

biznes ma przeróżne pomysły. często odbiegają one od rzeczywistości czy to pod względem założeń czy budżetu. do tej pory prowadzenie dialogu było skomplikowaną procedurą wymagającą lawirowania pośród abstrakcji i politykowania. dzięki FOaaS sprawa stała się dużo prostsza. w pełni skalowalne, nowoczesne rozwiązanie,  dostępne via REST API.

ponieważ dostępna jest publicznie i nieodpłatnie, może się okazać przydatna również w życiu codziennym. całą sprawę można teraz załatwić pojedynczym linkiem.

eN.

pliki nieistniejących użytkowników

CubanCigarNonExistentFSRM [File Server Resource Manager] to całkiem przydatne narzędzie, jednak braqje w nim jednego, bardzo ważnego raportu – wyszukiwanie plików należących do kont, które już nieistnieją. nie będę zamieszczał Skryptu – pokażę tylko sposób. taki PoC. tym razem potrzebowałem to zrobić na szybko. za jakiś czas pewnie ubiorę to w porządny kod bo zostało mi jeszcze kilka serwerów a póki co 'sposób na szybko’:

PS C:\scriptZ> ls <dir> -Recurse -ea silentlycontinue | 
%{$fn=$_.fullname;
$size=$_.length;
$owner=(get-acl $fn).owner;
if( $owner -like '*S-1-5-21*' ) {echo "$($fn);$($owner);$($size)"}}|
Out-File C:\temp\nonexistent.csv

 wyjaśnienie

wylistuj całą strukturę rekursywnie. dla każdego elementu z listy zapamiętaj nazwę elementu, rozmiar i pobierz ownera. ownera można sprawdzić przy pomocy polecenia get-ACL. get-ACL automatycznie rozwiązuje nazwy SID na nazwy kont. zatem jeśli nie rozwiąże nazwy [czyli pokaże się jakieś 'S-1-5-21…’] – user nieistnieje.

całość jest bardzo niedoskonała – to, że nazwa nie została rozwiązana, nie gwarantuje, że konto nieistnieje. mogą być np. problemy z siecią, trustami, nie pamiętam jak się zachowuje dla uprawnień nadanych dla SIDHistory… w środowisq, w którym z tego korzystam takie problemy mnie nie interesują i dopuszczalny jest margines błędu na tego rodzaju scenariusze. całość i tak idzie do analizy biomaszynowej [czyt. istotę żywą].

aby utworzyć z tego skrypt… o to jeszcze sporo roboty. kod jest pasqdnie tymczasowy – braqje parametrów, obsługi błędów a finalnie powinna być zwracana tablica obiektów, żeby można było sobie dalej robić selecty czy inne wynalazki.

uwaga na zaokrąglenia

w pierwszej wersji nie podobało mi się, że wielkość zwracana jest w bytach. w końcu MB są wygodniejsze. i tu pojawia się pytanie – gdzie wstawić zaokrąglenie? ze względów na optymalizację zapytania, wszelkie operacje matematyczne należy umieszczać jak najdalej. ponieważ w kodzie są filtry, to aby liczyć jak najmniej, warto liczyć na minimalnej liczbie obiektów. zmieniłem zatem '$($size)’ na '$([math]::round($size,2))’. zapytanie zwróciło ok. 25o.ooo wyników. po zsumowaniu wartości liczbowych wyszło mi, że te pliki zajmują w sumie 1.2GB. mało. podejrzanie mało. wpadłem w pułapkę zaokrągleń. postanowiłem zatem nie zaokrąglać, zsumować bajty i dopiero ostateczną wielkość przekonwertować na GB. że będzie różnica to byłem pewny, niemniej skala mnie powaliła. wynik wyszedł powyżej 52GB (SIC!).

eN.

 

UR5 do VMM – uwaga

nie zrobiłem screenshota /: więc tak pół-informacyjnie: po instalacji UR5 do SCVMM zaczął sypać błędami podczas zakładania maszyny wirtualnej. coś w stylu:

„method get_protectionProvider in type hardwareConfigSettingsAdapter from assembly microsoft.systemcenter.virtualmachinemanager does not have an implementation”

kombinowaliśmy z poprawkami do .NET framework, których ostatnio trochę się pojawiło, ale dopiero cofnięcie UR5 pomogło. sądząc po braq wyników w googlu chyba mieliśmy odosobniony przypadek…

eN.

550 5.4.1 recipient@domain.com: Recipient address rejected: (Access Denied)

taka ciekawostka: exchange online. założony nowy user… tfu! odblokowany stary user. standard nazewniczy loginów jest jakiś-tam więc każdemu userowi dodaje się imie.nazwisko@domena.com . wszystkim działa.. temu nie. serwer zwraca błąd 5.4.1 acc denied. czytam sobie linki z opisami – wszyscy sugerują zmianę typu domeny na Internal Relay czyli „domenę przekazywania wewnętrznego” [te polskie nazwy. ciągle nie mogę się połapać w tym panelu. PowerShell RZĄDZI! (: ].

co to oznacza? to oznacza, że trzebaby uznać, że adresy wewnętrzne są… adresami zewnętrznymi. no może i zaczęłoby działać, ale nie akceptuję takiej bzdury.

po wielu testach i 2o minutach później działa. rozwiązanie:

sprawdzam jakie są adresy zdefiniowane, zmieniam alias z głównym, a potem z powrotem.

get-mailbox uname|select emailaddr*

EmailAddresses                                                                                EmailAddressPolicyEnabled
--------------                                                                                -------------------------
{SMTP:user.name@domain.com, smtp:uname@domain.com}                                                            False

set-mailbox uname -emailaddresses SMTP:uname@domain.com,user.name@domain.com
set-mailbox uname -emailaddresses SMTP:user.name@domain.com,uname@domain.com

…i działa. niby to samo a jednak nie to samo. cytując filmografię „noone’s perfect” ewentualnie „sowy nie są tym, czym się wydają”.

eN.

 

Active Directory Fine-Grained Password and Account Lockout Policy

AD DS: Fine-Grained Password Policies, czyli możliwość tworzenia polis dotyczących haseł dla poszczególnych security groups lub użytkowników. Uwaga: nadpisują domyślne ustawienia z GPO ;-) .

Ostatnio stanąłem przed problemem kilku kont, w których nie mogłem pozwolić sobie na blokowanie po „x” próbach błędnego logowania. Oczywiście ustawienia dotyczące blokowania kont, złożoności haseł, długości haseł itd. miałem zdefiniowane w Default Domain Policy Pamiętałem, że od czasu wersji 2003 można ustawić w domyślnej polisie wszystkie ustawienia dotyczące hasła, ale… nakłada się to na wszystkich użytkowników. W takim razie jak ustawić inne wartości długości hasła, jego wygasania, czasu „lockout-u” itd.?

Co prawda do wersji 2012 R2 włącznie, nie zmieniło się, to że wszystkie ustawienia dotyczące haseł definiujemy w polisie domyślnej, natomiast od wersji 2008 wprowadzono Fine-Grained Password Policies. W bardzo prosty sposób czy to przy wykorzystaniu GUI czy też wszechobecnego PS jesteśmy w stanie ustawić inne ustawienia dla użytkowników lub całych wcześniej zdefiniowanych grup zabezpieczeń.

Dla przykładu zdefiniujmy polisę, która będzie miała dla jednej grupy zabezpieczeń ustawienia:

-długość minimum 8 znaków
-historię 6 haseł
-musi spełniać wymagania złożoności
-maksymalny wiek hasła 90 dni
-brak blokowania konta po nieudanych logowaniach

Na początek GUI (przykład na 2012 R2).

Otwieramy Active Directory Administrive Center, po lewej stronie rozwijamy naszą domenę -> System -> Password Settings Container

PPM -> New -> Password Settings

Otrzymamy okno jak poniżej:

1

Wypełnijmy poszczególne pola według wymagań, jakie wypisaliśmy powyżej. Dla wyjaśnienia Precedence, to priorytet. W sytuacji, kiedy mamy jedną polisę dla grupy X, drugą polisę dla użytkownika Y, który jest w grupie X, to na użytkownika Y nałożona zostanie polisa z niższą wartością Precedence.

2

Na koniec pozostaje wybranie grupy zabezpieczeń lub jednego/kilu użytkowników dla których ustawienia mają nadpisać „Default Domain Policy”. W sekcji „Directly Applies To” klikamy Add i wybieramy, dla kogo ma być aplikowana.

Ot cała filozofia. W celu sprawdzenia, na jakie konta nakłada się utworzona polisa należy skorzystać z polecenia w PowerShell Get-ADFineGrainedPasswordPolicy.

Utworzenie tej samej polisy przy wykorzystaniu PowerShell’a sprowadza się do wydania poniższego polecenia:

New-ADFineGrainedPasswordPolicy -Name Operatorzy_Pass_Policy `
-DisplayName Operatorzy_Pass_Policy `
-Precedence 1 `
-ComplexityEnabled $true `
-ReversibleEncryptionEnabled $false `
-PasswordHistoryCount 6 `
-MinPasswordLength 8 `
-MaxPasswordAge 90.00:00:00 `
-MinPasswordAge 00.00:00:00

Następnie w celu dopisania kont lub grupy zabezpieczeń dla których ustawienia mają funkcjonować

Add-ADFineGrainedPasswordPolicySubject -Identity Operatorzy_Pass_Policy -Subjects operatorzy

Po więcej informacji odsyłam tutaj.

 

ITechDays 2o15 & 68.WGUiSW

itechdays 2o15W-Files jako czynny uczestnik i patron medialny ma przyjemność poinformować iż….

  • już jutro kolejne (68) spotkanie WGUiSW i oczywiście druga część PowerCycle gdzie będzie trochę o rurach, rurociągach i tym podobnych  by nExoR. Błażej natomiast będzie przedstawiał Azure Pack.
  • szykuje się również bardziej wytrawne wydarzenie – coroczna edycja ITechDays – tym razem 2o15 . spotkanie odbędzie się 16.o3.2o15  głównym tematem jest „Windows & Cloud – razem lepiej. Windows 8.1 & Windows 10 & Windows Server 2012R2 & Windows 2015”. chmura w tytule pokazuje ogólny trend a tematem przewodnim będzie ucieczka od Windows 2oo3, które w połowie tego roq będzie miało oficjalny pogrzeb. trzeba zatem zbroić się do nowych technologii – jak? o tym będziecie mieli okazję posłuchać (:
  • […a zaraz przed ITD będzie jeszcze 69.WGUiSW o3.o3 z o3 odcinkiem PowerCycle. ]

tradycyjna miejscówa schadzek to buda na jerozolimskich z wielkim napisem „Microsoft”.

ZAPRASZAMY ^^

eN.