Jeżeli korzystamy z oprogramowania AD Connect do synchronizacji kont lokalnego Active Directory, a wcześniej mieliśmy założone jakiś konta w Azure Active Directory, wówczas wcześniej czy później spotkamy się z konfliktem założenia konta w Azure Active Directory na podstawie konta Active Directory. Zdarzy się to w przypadku, kiedy mamy identyczny UPN w Active Directory i azłożymy konto w Azure Active Directory o takim samym mailu, które będzie miało role Global Administratora. Wówczas AD Connect założy konto w domenie @onmicrosoft.com a do nazwy użytkownika doda kilka cyferek i będziemy mieli konta: mariusz.ferdyn8858@mojadomena.onmicrosoft.com mariusz.ferdyn@mojadomena.pl Do połączenia (matchowania) kont Azure Active Directory I Active Directory służy atrybut ImmutableID. I mówiąc, krótko musimy ustawić ten atrybut dla już istniejącego konta w Azure Active Directory, poniższą procedurą: Przenieść użytkwonika w Active Directory do konteneru, który nie jest synchronizwany Dokonać synchronizacji (Start-ADSyncSyncCycle -PolicyType Delta) Wyświetlić ImmutableID poleceniem: get-MsolUser -ReturnDeletedUsers -UserPrincipalName mariusz.ferdyn8858@mojadomena.onmicrosoft.com|fl Usunąć użytkownika z Azure Active Directory get-MsolUser -ReturnDeletedUsers -UserPrincipalName mariusz.ferdyn8858@mojadomena.onmicrosoft.com|Remove-MsolUser -RemoveFromRecycleBin Dokonać synchronizacji (Start-ADSyncSyncCycle -PolicyType Delta) Wyświetlić parametry istniejącego użytkownika w Azure Active Directory get-MsolUser -ReturnDeletedUsers -UserPrincipalName mariusz.ferdyn@mojadomena.pl|fl Ustawić immutableid otzrymane z polecenia 3, poprzez: get-MsolUser -UserPrincipalName mariusz.ferdyn@mojadomenapl.pl|Set-MsolUser -ImmutableId “W7gqU22hws4tpsPw==” Dokonać synchronizacji (Start-ADSyncSyncCycle -PolicyType Delta) Po powyższym konta powinny być zsynchronizowane prawidłowo, a sama metoda może … Rozwiązywanie konfliktów synchronizacji AD Connect / Resolving AD Connect synchronization conflicts / ImmutableIDRead more
Month: November 2018
Install-Module : The term ‘Install-Module’ is not recognized as the name of a cmdlet – AzureRM, MSOnline
Jeżeli chcemy zainstalować moduł PowerShell do zarządzania np. Azure (AzureRM) na Windows 7, Windows 8, Windows 2008 R2, Windows 2012, Windows 2012R2 i w tym celu wydamy komendę: Install-Module AzureRM Zobaczymy błąd: Install-Module : The term ‘Install-Module’ is not recognized as the name of a cmdlet, funce program. Check the spelling of the name, or if a path was included, verify that the path At line:1 char:1 + Install-Module AzureRM + ~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Install-Module:String) [], CommandNotFoundE + FullyQualifiedErrorId : CommandNotFoundException Aby rozwiązać ten problem do niedawna trzeba było korzystać z Web Platform Installer. Jedną z trochę zapomnianych jest zainstalowanie PackageManagement PowerShell Modules. Po instalacji pakietu mamy dostęp do komendy ‘Install-Module’ i możemy zainstalować nie tylko AzureRM, jak również np. moduł MSOnline: Install-Module MSOnline If you want to install the PowerShell module for managing eg. Azure (AzureRM) on Windows 7, Windows 8, Windows 2008 R2, Windows 2012, Windows 2012R2 and for this purpose we will issue the command: Install-Module AzureRM We will see: Install-Module : The term ‘Install-Module’ is not recognized as the name of a cmdlet, funce program. Check the spelling of the name, or if a path was included, verify that the path … Install-Module : The term ‘Install-Module’ is not recognized as the name of a cmdlet – AzureRM, MSOnlineRead more
Migracja z Modelu Klasycznego do Azure Resource Manager / Migration from the Classic Model to Azure Resource Manager
Mimo, iż Azure Resource Manager ma już ładnych kilka lat – zdarza się, iż zastajemy Subskrybcje, gdzie usługi wdrożone są w modelu Classic. Poniższe kroki migrują Storage Account z Modelu klasycznego do ARM. Login-AzureRmAccount Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate #Wait for registered Add-AzureAccount Get-AzureSubscription Select-AzureSubscription -SubscriptionId “subscription id” Get-AzureStorageAccount $storageAccountName=”imagesmf” $validate=Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName -Verbose $validate $validate.ValidationMessages Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName #-Abort will cancel operation Po migracji zasoby będą w Resource Group z suffixem -Migrated. A operacja ta jest niezbędna jeżeli chcemy migrować zasoby z jednej subskrypcji do innej. Migration from the Classic Model to Azure Resource Manager Everyone use Azure Resource Manager for several years, but it happens that some resources are still implemented in the Classic model. The following steps migrate the Storage Account from the Classic Model to ARM. Login-AzureRmAccount Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate #Wait for registered Add-AzureAccount Get-AzureSubscription Select-AzureSubscription -SubscriptionId “subscription id” Get-AzureStorageAccount $storageAccountName=”imagesmf” $validate=Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName -Verbose $validate $validate.ValidationMessages Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName #-Abort will cancel operation After migration, the resources will be in the Resource Group with suffix -Migrated. And this operation is necessary if we want to migrate resources from … Migracja z Modelu Klasycznego do Azure Resource Manager / Migration from the Classic Model to Azure Resource ManagerRead more
Exchange – naprawa bazy danych – aktualny przewodnik / Exchange Recover Database Complete Fast Guide
Czasami się zdarzy, że nasza baza danych w Exchange nie daje się zamontować, a próby montowania kończą się to komunikatami typu: Operation failed with message: MapiExceptionJetErrorConsistentTimeMismatch: Unable to mount database MapiExceptionJetErrorreadVerify Failure Do naprawy bazy służy narzędzie eseutil i o dziwo na Internetach, nie ma przewodnika, co zrobić krok po kroku i dość szybko natrafiamy na konieczność użycia komendy /p, która to naprawia bazę danych, ale wraz ze stratą danych i celowo tutaj tego nie opisujemy, jako ostateczność odzyskania danych. Poniżej co należy wykonać, aby naprawić bazę danych: eseutil /ml “e:ExchangeDatabases_LogsMailbox_DB2″ – ścieżka do katalogu z logami, sprawdza poprawność logów transakcyjnych eseutil /mh ” e:ExchangeDatabases_DataMailbox_DB2″ – ścieżka do plików z bazą danych, wyświetla informacje o bazie danych – zazwyczaj będzie tutaj informacja Dirty SchutDown i trzeba dobrowadzić do stanu Clean ShutDown Naprawa bazy danych: eseutil /R E00 /l “e:ExchangeDatabases_LogsMailbox_DB2″ /d ” e:ExchangeDatabases_DataMailbox_DB2″ /S ” e:ExchangeDatabases_DataMailbox_DB2″ przełączniki: /l – ścieżka do katalogu z logami /d – ścieżka do katalogu z bazą danych – bez podania pliku edb i bez na końcu! /S – miejsce na nowy check point – w miejscu tym nie powinnu być pliku .chk (możemy go skasować bądź przenieść w miejscy, gdyby był z jakiegoś powodu potrzebny). … Exchange – naprawa bazy danych – aktualny przewodnik / Exchange Recover Database Complete Fast GuideRead more
Aktualizacja Exchange 2010 (i nie tylko) do Office 365 lub Exchange 2016
Gdzieniegdzie jeszcze można spotkać Exchange 2010 i klient decyduje się do przeniesienia zasobów do Exchange 2016 lub Office 365. Niby sprawa prosta, ale uwaga Exchange 2010 musi mieć zainstalowanego Service Pack 3 oraz najnowszy Cumulative Update/ Update Rollup. Jako, że Exchange 2010 to produkt już 8 letni pamiętajmy, iż przy aktualizacji powinniśmy: Przed rozpoczęciu prac powinniśmy wykonać kopie bezpieczeństwa Active Directory, jak i samego Exchange. Przy instalacji powinniśmy wyłączyć system do backupu (Backup Exec zatrzymujemy serwisy) oraz system antywirusowy (a w szczególności BACKP EXEC – bo otrzymamy błąd): Setup cannot continue with the upgrade because the ‘beremote’ () process (ID: 2416) has open files. Close the process and restart Setup.Po operacji pamiętajmy o ich włączeniu. Przed instalacją poprawek powinniśmy wyłączyć sprawdzanie odwołanych certyfikatów, a więc: Internet Explorer =>Internet Options => Advanced Security section => Odchaczamy: Check for publisher’s certificate revocation Check for server certificate revocation Po instalacji oczywiście wracamy do stanu pierwotnego. Service Pack 3 dla Exchange 2010 dostępny tutaj, ściągamy i uruchamiamy, co powoduje i Service Pack rozpakowuje się do wskazanego katalogu Uruchamiamy aktualizacje schematu z Command Line uruchomionego jako administrator, czyli wydajemy setup.exe /PrepareAD (oczywiście musimy mieć uprawnienia aktualizacji schematu, czyli być w grupie Schema Admins, a … Aktualizacja Exchange 2010 (i nie tylko) do Office 365 lub Exchange 2016Read more
Filtrowanie po użytkownikach i GPO nie działa / User filtering and GPO does not work
Ostatnio się zdziwiłem, iż GPO filtrowane po użytkownikach nie działa. Robiłem to setki razy, i zawsze było OK. A tym razem – nie działa, albo przestało działać. Przyczyną jest poprawka MS16-072: Security update for Group Policy: June 14, 2016. Mówiąc krótko – jeżeli mamy politykę GPO i ją filtrujemy np. na grupę użytkowników, to aby polityka ta działała należy pomimo nadania uprawnień dla danej grupy Apply Group Policy i Read – musimy dla Authenticated User ustawić uprawnienie na Read. I was surprised that GPO filtered by user group does not work. I did it hundreds of times, and it was always OK. And this time – it does not work or it has stopped working. The reason is MS16-072: Security update for Group Policy: June 14, 2016. In short, if we have a GPO policy filtered to a group of users, we must set the permission to Read on the Authenticated User, in spite of granting rights to the group of users – Apply Group Policy and Read.
Obejście (Bypass) the PowerShell Execution Policy
Czasami musimy wykonać skrypt PowerShell mimo ustawienia Execution Policy na Restricted (ustawienie domyślne). W Internecie szybko znajdziemy strony typu „15 Ways to Bypass the PowerShell Execution Policy” lecz nie wszystkie metody działają. Dla mnie jedną z metod zawsze działających jest wykonanie: type script.ps1 |powershell.exe -windowstyle hidden -noprofile – lub w pliku bat, abyśmy nie widzieli za dużo na ekranie: @echo off ::run_ps_script.bat type script.ps1 |powershell.exe -windowstyle hidden -noprofile – Więcej informacji o wykonywaniu z pozoru niechcianego oprogramowania znajdziecie w moim kursie na Microsoft Virtual Academy – “Wykorzystanie narzędzi hackerskich do audytu środowiska informatycznego“. Sometimes we have to run the PowerShell script despite the Execution Policy setting on Restricted (default). On the Internet, you will quickly find pages like “15 Ways to Bypass the PowerShell Execution Policy” but not all methods work. For me, one of the methods that are always working is to make: type script.ps1 |powershell.exe -windowstyle hidden -noprofile – or in a bat file so that we do not see too much on the screen: @echo off :: run_ps_script.bat type script.ps1 | powershell.exe -windowstyle hidden -noprofile – More information about performing seemingly unwanted software can be found in my course at the Microsoft Virtual Academy – “Using hack … Obejście (Bypass) the PowerShell Execution PolicyRead more
autologon.microsoftazuread-sso.com – Pass-through Authentication
Uwierzytelnianie typu Pass-through Authentication stanowi dość ciekawą alternatywę dla implementacji Active Directory Federation Services. Generalnie polega, na tym iż na kontrolerach domeny powinien być zainstalowany Agent, który pobiera kolejkę uwierzytelniania z chmury, uwierzytelnia użytkownika i tą informacje zwraca do chmury. Do dzisiaj nie spotkałem się z wadami tego rozwiązania, a jest znacznie prostsze i szybsze we wdrożeniu do niedawna mojej ulubionej usługi ADFS. Pewną niedogodnością może być konieczność dodania witryny autologon.microsoftazuread-sso.com do strefy Local Intranet. Na stronach Microsoft opisywane są różne metody, ale dla mnie najpewniejszą jest użycie skrypt PowerShell (jeżeli będziemy to robić masowo za pomocą GPO, to być może na stacjach będziemy musieli ustawić PowerShell Execution Policy lub skorzystać z metody z następnego posta): Pass-through Authentication is an interesting alternative to the implementation of Active Directory Federation Services. Generally, it is based that Agents installed on premise servers downloads the authentication requests from the cloud, authenticates the user and returns this information to the cloud. Until today, I have not met with the disadvantages of this solution, and it is much simpler and faster in implementing my favorite ADFS service. An inconvenience may be the need to add the autologon.microsoftazuread-sso.com site to the Local Intranet zone. There … autologon.microsoftazuread-sso.com – Pass-through AuthenticationRead more