UR5 do VMM – hotfix
okazuje się jednak, że opisywany problem z UR5 do VMM nie był odosobniony. i już jest hotfix do UR5…
eN.
okazuje się jednak, że opisywany problem z UR5 do VMM nie był odosobniony. i już jest hotfix do UR5…
eN.
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.
FSRM [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
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.
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.
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.
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.
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:
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.
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.
W-Files jako czynny uczestnik i patron medialny ma przyjemność poinformować iż….
tradycyjna miejscówa schadzek to buda na jerozolimskich z wielkim napisem „Microsoft”.
ZAPRASZAMY ^^
eN.