Wiedza
  • 0 Koszyk
  • Kontakt
  • Moje konto
  • Blog
  • MOC On-Demand – co to takiego?
  • MOC On-Demand – Co zyskujesz?
  • Kursy MS

Zmiany w certyfikacji, egzaminach i szkoleniach w zakresie Microsoft Azure i Office 365 / Changes in certification, exams and trainings for Microsoft Azure and Office 365

Podczas konferencji Microsoft Ignite 2018 zostały ogłoszone zmiany dotyczące szkoleń w zakresie technologii chmurowych Azure i Office 365. Zmiany te są bardzo przemyślane i wg. mnie sensowne, ale do rzeczy:

Certyfikaty i szkolenia będą oparte na rolach, jakie pełnimy w organizacjach – i tak na początku będziemy mieli sześć ról, jak poniżej:

Jakie egzaminy trzeba zdać, aby uzyskać przykładowe certyfikaty:

Tylko przez określony czas będzie można zaktualizować posiadane tytuły, do nowych tytułów opartych na rolach – jak to wygląda poniżej:

Największa zmiana jaka nas czeka – to egzaminy oparte na symulacjach “Performance Based Testing”! Tak musimy coś wyklikać, wdrożyć, napisać! I nie będzie to Flashowy symulator, a prawdziwa maszyna wirtualna z dostępem do przeglądarki i portalu Azure, dostarczoną subskrypcją, w której musimy coś wdrożyć. Nie ważna jaką drogą wdrożymy rozwiązanie Portal, Powershell – ma działać, tak aby skrypty oceniające to zobaczyły i sprawdziły. Internet z maszyny ma nie być dostępny – tylko portal Azure, Office 365 – a jak to mniej więcej będzie wyglądało widzimy tutaj:

Kursy Office 365 i Azure będą kursami jedno i pół dniowymi, z których będziemy mogli skomponować to czego chcemy się nauczyć. Czyli jeżeli np. nie będzie nas interesować Azure IoT możemy „nie brać” tego modułu, albo w to miejsce wybrać coś innego np. Azure Networking.
Do tej pory niektóre ośrodki próbowały to organizować dobierając odpowiednie moduły, ale wychodziły z tego szkolenia autorskie i niekiedy był problem z dostępem do podręczników. Teraz wszystko dostajemy w paczkach od Microsoft – to co chcemy. Oczywiście nie zmienia się forma, szkolenia realizują trenerzy i ośrodki szkoleniowe. Będą też szkolenia Online.

Jeżeli chcemy dowiedzieć się więcej o nowej certyfikacji, przygotować do prowadzenia nowych szkoleń, czy też od razu nabyć wiedze zapraszam do obejrzenia poniższych sesji na Ignite 2018, zapewne dostępnych w postaci nagrań.

 


During the Microsoft Ignite 2018 conference, Microsoft announced changes regarding trainings in Azure and Office 365 cloud technologies.

Certificates and training will be based on the roles we play in organization – at the beginning there will be six roles, as below:

 

Which exams you have to pass to be certified:

Tylko przez określony czas będzie można zaktualizować posiadane tytuły, do nowych tytułów opartych na rolach – jak to wygląda poniżej:

The biggest change – “Performance Based Testing” simulations! Yes, we must deploy something, implement it, write it in real! And it will not be a Flash simulator, but a real virtual machine with access to the browser and Azure portal, a subscription will be provided, in which we have to implement something. It is not important how we implement! We can use Portal, Powershell, but it should work so that the assessment scripts will see it and check it. The Internet from the machine is not allowed – only the Azure portal, Office 365 – and what more or less will it will look like this:

The Office 365 and Azure courses will be one or a half day courses, from which we will be able to compose what we want to learn. So if, for example, we will not be interested in Azure IoT, we can “not take” this module, or choose something else, eg Azure Networking.

If you want to learn more about the new certification, prepare to deliver new trainings, or acquire knowledge, I invite you to watch the following sessions from Ignite 2018.

WebHook – Tester

Kiedyś różnego rodzeje hostingi wprowadziły rozwiązania typu Cron z których pozwalano wywoływać żądania typu GET, teraz Microsoft Azure kontynuuje tą tradycje, zwłaszcza przy rozwiązaniach typu Azure Event Grid, Azure Functions, Automations. Czasami jednak chcemy przetestować, co jest wysyłane i jak. Oprócz oprogramowania do generowania Requestów typu POSTMAN (nie tylko GET, ale i POST), bardzo ciekawą witryną jest:

https://webhook.site/

gdzie możemy obserwować wywołania docierające na adres, który jest generowany po wejściu na witrynę. Ba – możemy żądania przekierowywać – a jak komus mało funkcjonalności – to mamy źródła!


A long time ago hosting providers implement Cron solution with GET requests. Microsoft Azure continues this, especially with Azure Event Grid, Azure Functions, Automations solutions. Sometimes, we want to test what is sent and how. In addition to the POSTMAN Request generation software (not only GET but also POST), a very interesting site is to receive GET and POST:

https://webhook.site/

where we can observe calls that reach the address that is generated after entering the site. Moreover – we can redirect requests! Do you need more – we have source code!

Azure Site Recovery – Application Consistent Snapshot on Demand / Application Consistent Snapshot na żądanie

Jeżeli robimy tzw. Test Failover lub Failover przy korzystaniu z usługi Azure Site Recovery – to wybieramy punkt odniesienia w czasie (Snapshot), na który ma być uruchomiona maszyna. Częstotliwość ich generowania ustawiamy w Planie działania usługi Azure Site Recovery.

Czasami jednak chcemy wykonać Snapshot na żądanie – aby to zrobić wystarczy na maszynie gdzie zainstalowany jest Mobility Agent następującą komendę:

“C:\Program Files (x86)\Microsoft Azure Site Recovery\agent\vacp.exe” -systemlevel

Application Consistent Snapshot używa Volume Shadow Copy Service (VSS), aby być pewnym, iż wszystkie aplikacje będą działały prawidłowo i były w spójnym stanie – tak jak w zwykłym backupie.


in Azure Site Recovery during Test Failover or Failover – we can select the reference point in time (Snapshot), on which the VM should start. The frequency of generation of Application Consistent Snapshot is set in the Azure Site Recovery Service.

If we want to perform Snapshot on demand please run on the machine where the Mobility Agent is installed the following command:

“C:\Program Files (x86)\Microsoft Azure Site Recovery\agent\vacp.exe” -systemlevel

Application-consistent snapshots use Volume Shadow Copy Service (VSS) to ensure that applications are in a consistent state when the snapshot is taken.

Azure Pass Activation – Usage limit exceeded. Try again tomorrow / Przekroczono limit użycia. Spróbuj ponownie jutro.

This is continuation of Azure Pass Activation – especially multiple Times – at conferences, workshops topic.

Sometime, for testing purposes you need to create a new independent Microsoft Account, especially for use Microsoft Azure Pass Subscription. For a long time you can just create a new Microsoft ID (Live ID) account and assign Microsoft Azure Pass Subscription, but now during verification of your Mobile Number you probably receive:

Usage limit exceeded. Try again tomorrow.

This usually means that you use your Mobile Number for verification Microsoft Account more than 2,3,4 times… What to do?

  1. Go to https://aad.portal.azure.com/
  2. After that go to https://portal.azure.com/ – You are probably have disabled or Your Subscription (if not you can just create a Trial Here, using Azure Pass also – see here).
  3. Create a New Azure Active Directory
  4. Log Out, Close Browser and log In Again
  5. Switch Directory to a New One
  6. Create a New User in Azure Active Directory
  7. Log Out, Close Browser
  8. In incognito windows/InPrivate Browsing go to https://www.microsoftazurepass.com/ and activate your subscription.

For every Azure Active Directory you can do it only once.

Alternative way, but please use phone call here:


Jest to kontynuacja artykułu Aktywacja Azure Pass szczególnie wielokrotna – na konferencjach, tematach warsztatów.

Czasami, do celów testowych musisz utworzyć nowe, niezależne konto Microsoft, szczególnie w celu wykorzystania darmowej/demonstracyjnej subskrypcji Azure (Microsoft Azure Pass). Najszybciej można było po-prostu utworzyć nowe konto Microsoft ID (Live ID) i przypisać subskrypcję Microsoft Azure Pass, ale teraz podczas weryfikacji numeru telefonu prawdopodobnie otrzymasz:

Przekroczono limit użycia. Spróbuj ponownie jutro.

Zwykle oznacza to, że używasz danego numeru telefonu komórkowego do weryfikacji konta Microsoft 2,3,4 razy … Co robić?

  1. Przejdź do strony https://aad.portal.azure.com/
  2. Następnie przejdź na stronę https://portal.azure.com/ – prawdopodobnie masz wyłączoną subskrypcję lub widoczną swoją subskrypcję (jeśli nie – wówczas możesz po-prostu utworzyć takową jak tutaj).
  3. Utwórz nowy Azure Active Directory
  4. Wyloguj się, zamknij przeglądarkę i zaloguj się ponownie
  5. Przełącz na nowy katalog Azure Active Directory
  6. Utwórz nowego użytkownika w usłudze Azure Active Directory
  7. Wyloguj się, Zamknij przeglądarkę
  8. W oknnie incognito / InPrivate Browsing przejdź na stronę https://www.microsoftazurepass.com/ i aktywuj subskrypcję.

Dla każdego osobnego Azure Active Directory aktywacja Azure Pass przechodzi tylko jednokrotnie, dla kolejnej aktywacji Azure Active Directory wykonaj powyższe czynności ponownie.

Alternatywna droga tutaj (ale proszę używać aktywacji telefonicznej, bo SMS nie zawsze działa).

App Service Plan (Function App) <--> Virtual Network

Od jakiegoś w Microsoft Azure istnieje możliwość połączenia App Service Plan do Virtual Network. Dzięki powyższej aplikacji możemy w Azure wdrażać aplikacje Webowe, które to działają wewnątrz wdrożonej infrastruktury sieciowej.

Wymagania do takowej konfiguracji:

  • W sieci do której chcemy podłączyć App Service Plan musimy mieć wdrożony Virtual network gateway typu Route-based (w moim przypadku SKU VpnGw1) – a więc będzie to nas kosztowało zgodnie z cennikiem;
  • Musimy mieć zdefiniowany Address pool w Point-to-site configuration;
  • Minimalna wielkość App Service Plan to S1 Standard.

Od niedawna Microsoft wprowadził możliwość korzystania z IKEv2 w Point-to-site configuration VPN – jeżeli mamy włączony takowa opcję wówczas nie uda się nam podłączyć takiej sieci do App Service Plan, a jeżeli już się uda uzyskamy błąd:

Failed to add Virtual Network to Web App. Adding network supportexample to web app failed. Gateway did not finish the operation in time

Coprawda – Po chwili będziemy widzieć prawidłową konfigurację, ale przy np. ping’owaniu maszyny wirtualnej z App Service Plan uzyskamy błędy:

Connection attempt failed: An attempt was made to access a socket in a way forbidden by its access permissions:

Aby integracja App Service Plan (Function App) i Virtual Network zadziałała, na chwilę przyłączania Virtual Network do App Service Plan należy wyłączyć IKEv2 VPN.

Co ciekawe po operacji połączenia możemy tą opcję włączyć i wszystko działa prawidłowo.
Wówczas uzyskami odpowiedzi jak poniżej:

D:\home\site\wwwroot>tcpping 10.0.0.4:22
Connected to 10.0.0.4:22, time taken: 265ms
Connected to 10.0.0.4:22, time taken: <1ms
Connected to 10.0.0.4:22, time taken: <1ms
Connected to 10.0.0.4:22, time taken: <1ms
Complete: 4/4 successfull attempts (100%). Average success time: 66.25ms

 

For some time ago you can connect the App Service Plan to the Virtual Network. Using this feature Web Applications in Azure can operate within theclosed network infrastructure.

Requirements for this configuration:

  • In the network where you want to connect the App Service Plan, we must have implemented a Route-based Virtual network gateway (in my case SKU VpnGw1) – so it will cost us according to the price list;
  • We must have an Address pool defined in Point-to-site configuration;
  • The minimal size of the App Service Plan is S1 Standard.

Recently, Microsoft introduced the possibility of using IKEv2 in Point-to-site configuration VPN – if we have this option enabled then we will not be able to connect such a network to the App Service Plan, and even we succeed, we will get an error:

Failed to add Virtual Network to Web App. Adding network supportexample to web app failed. Gateway did not finish the operation in time

 

After a while we will see the correct configuration, but for example when pinging a virtual machine from the App Service Plan we get errors:

Connection attempt failed: An attempt was made to access a socket in a way forbidden by its access permissions:

For the integration of the App Service Plan (Virtual App) and Virtual Network to work, you need to disable IKEv2 VPN when you connect the Virtual Network to the App Service Plan.

after the connection operation, we can enable this option and everything works properly.
Then you will get the answers as below:

D:\home\site\wwwroot>tcpping 10.0.0.4:22
Connected to 10.0.0.4:22, time taken: 265ms
Connected to 10.0.0.4:22, time taken: <1ms
Connected to 10.0.0.4:22, time taken: <1ms
Connected to 10.0.0.4:22, time taken: <1ms
Complete: 4/4 successfull attempts (100%). Average success time: 66.25ms

 

Azure SIte Recovery – Problem z instalacja i rejestracją configuration-process serwer Windows 2016-OVF appliance / Problem with installing and registering the configuration-process server on Windows 2016-OVF appliance / Could not create SSL/TLS secure channel

Po wdrożeniu i konfiguracji configuration/process serwera, podczas sprawdzania połączenia z internetem widzimy w logach:

 

09:32:53:Using Proxy
09:32:53:Proxy does not require Authentication
09:32:53:Creating web request to https://management.azure.com/
09:32:53:Using webProxy to check internet connectivity
09:32:53:Considering https://management.azure.com/ as connected with response status code BadRequest
09:32:53:Creating web request to https://cdn.mysql.com
09:32:53:Using webProxy to check internet connectivity
09:32:55:Considering https://cdn.mysql.com as connected with response status code NotFound
09:32:55:Creating web request to https://dev.mysql.com/downloads/windows/installer/
09:32:55:Using webProxy to check internet connectivity
09:32:55:Failed to connect https://dev.mysql.com/downloads/windows/installer/ – Response status code SecureChannelFailure: Threw Exception.Type: System.Net.WebException, Exception.Message: The request was aborted: Could not create SSL/TLS secure channel.
09:32:55:StackTrace: at System.Net.HttpWebRequest.GetResponse()
at Microsoft.DisasterRecovery.IntegrityCheck.EvaluateValidations.IsEndpointReachable(String endpoint, WebProxy webProxy

 

Dość standardowy problem związany z .Netem i TLS. Rozwiązanie modyfikacja rejestru:

Hkey_Local_Machine > Software > wow6432Node > Microsoft > .NetFramework > v1.0

Utworzyć dword: Name – SchUseStrongCrypto
Data= 1

 

Powtórzyć czynność dla gałęzi v2.0 i v4.0.

Dodatkowo wykonać to samo w gałęzi v2.0 i v4.0 w:

Hkey_Local_Machine > Software > Microsoft > .NetFramework

 

Następnie zresetować serwer i powtórzyć konfiguracje.

 

During the Internet Connectivity Check we see in log files:

 

09:32:53:Using Proxy
09:32:53:Proxy does not require Authentication
09:32:53:Creating web request to https://management.azure.com/
09:32:53:Using webProxy to check internet connectivity
09:32:53:Considering https://management.azure.com/ as connected with response status code BadRequest
09:32:53:Creating web request to https://cdn.mysql.com
09:32:53:Using webProxy to check internet connectivity
09:32:55:Considering https://cdn.mysql.com as connected with response status code NotFound
09:32:55:Creating web request to https://dev.mysql.com/downloads/windows/installer/
09:32:55:Using webProxy to check internet connectivity
09:32:55:Failed to connect https://dev.mysql.com/downloads/windows/installer/ – Response status code SecureChannelFailure: Threw Exception.Type: System.Net.WebException, Exception.Message: The request was aborted: Could not create SSL/TLS secure channel.
09:32:55:StackTrace: at System.Net.HttpWebRequest.GetResponse()
at Microsoft.DisasterRecovery.IntegrityCheck.EvaluateValidations.IsEndpointReachable(String endpoint, WebProxy webProxy

 

Solution – modify registry:

 

Hkey_Local_Machine > Software > wow6432Node > Microsoft > .NetFramework > v1.0

create dword: Name – SchUseStrongCrypto
Data= 1

 

This same key needs added to v2.0 and v4.0 of .NetFramwork within that same container.

 

Additionally do the same at this location:

Hkey_Local_Machine > Software > Microsoft > .NetFramework

do the same as above for v2.0 and v4.0

 

Then reboot server and connectivity check should pass.

Wymuszenie instalacji Integration Services Hyper-V dla maszyn niepracujących na Hyper-V / How to Force Installation of Integration Services

Czasami jesteśmy zmuszeni zainstalować, drivery Integration Services Hyper-V na maszynie fizycznej, lub pracującej pod kontrolą innego Hypervisora. Jest to niezbędne jeżeli planujemy migracje maszyn typu Windows Server 2008 do Microsoft Azure lub do Hyper-V. Przyda się takowa instalacja również przy wykorzystywaniu Azure Site Recovery.

  1. Skąd pozyskać Integration Services?

Plik zawierający oprogramowanie Integration Services znajduje się w pliku vmguest.iso, który znajduje się w katalogu c:\Windows\System32 po instalacji roli Hyper-V w Windows Server 2008,2012 i 2012 R2 (ale nie w 2016!). Oczywiście polecam najnowsze wydanie z Windows Server 2012 R2, jeżeli nie mamy na jakimś serwerze zainstalowanego i zaktualizowanego takiego systemu wraz z Hyper-V nie pozostaje nam nic innego jak wdrożyć taką maszynę wirtualną w Microsoft Azure. Niestety system Windows Server 2012 R2 nie obsługiwał Nested Virtualization, tak więc nawet jak w Azure wybierzemy serie maszyn Dv3 (obsługujących Nested Virtualization) nie będziemy mogli dodać roli Hyper-V poprzez graficzny interface użytkownika. Do tego celu musimy użyć PowerShell i wykonać jako administrator następujące polecenia:

Enable-WindowsOptionalFeature –Online -FeatureName Microsoft-Hyper-V –All -NoRestart
Install-WindowsFeature RSAT-Hyper-V-Tools -IncludeAllSubFeature
Restart-Computer

Po powyższym wystarczy skopiować i rozpakować plik vmguest.iso chociażby przy pomocy oprogramowania 7-zip.

  1. Jak wymusić instalacje Integration-Services

Na maszynie, która nie działa pod kontrolą Hyper-V nie uda nam się zainstalować Integration Services kilkając za pomocą standardowego instalatora, a trzeba użyć oprogramowania dism i wykonać poniższą komendę:

Dism /online /Add-Package /PackagePath:(nazwa pliku .cab do instalacji:

  • Windows6.x-HyperVIntegrationServices-x64.cab dla Windows 7, Server 2008 R2 i wcześniejszych
  • Windows6.2-HyperVIntegrationServices-x64.cab dla Windows 8 i Server 2012 – późniejsze systemy powinny mieć wbudowane Integration Services Out Of The Box.

Sometimes we have to install Integration Services for Hyper-V on a physical machine, or working under of the another Hypervisor. This is necessary if you plan to migrate Windows Server 2008 machines to Microsoft Azure or to Hyper-V. It will be useful when you are planning using Azure Site Recovery too.

 

  1. Where to get Integration Services?

The file containing the Integration Services software is located in the vmguest.iso file, which is located in the c: \ Windows \ System32 directory after installing the Hyper-V role in Windows Server 2008,2012 and 2012 R2 (but not in 2016!). I recommend latest release from Windows Server 2012 R2, if you do not have any of them with Hyper-V installed, I suggest deploy Windows Server 2012 R2 in Microsoft Azure. Unfortunately it do not support Nested Virtualization, so even if you choose a series of Dv3 machines (supporting Nested Virtualization) in Azure, you will not be able to add the Hyper-V role via GUI. To do this, please use PowerShell and perform the following commands as an administrator:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All -NoRestart
Install-WindowsFeature RSAT-Hyper-V-Tools -IncludeAllSubFeature
Restart-Computer

After that, just copy and unpack the vmguest.iso file, you can use 7-zip for it.

  1. How to force installation Integration-Services?

On a machine that is not working under Hyper-V control, we will not be able to install Integration Services by using a standard installer, and we have to use the dism program and run the following command:

Dism / online / Add-Package / PackagePath: (name of the .cab file to be installed):

  • Windows6.x-HyperVIntegrationServices-x64.cab for Windows 7, Server 2008 R2 and earlier
  • Windows6.2-HyperVIntegrationServices-x64.cab for Windows 8 and Server 2012 – later systems should have built-in Integration Services Out Of The Box.

Azure Active Directory – Guest Users – gmail.com / outlook.com – I nie tylko

Dawno temu, jeżeli dodawaliśmy użytkownika do Azure Active Directory typu gość i wysyłaliśmy zaproszenie na @gmail.com lub outlook.com, czy też @interia.pl – użytkownik ten nie mógł zalogować się do Azure Active Directory, a więc i nie miał dostępu do aplikacji używających uwierzytelniania Azure Active Directory – od portalu Azure, aż do np. Teams.

Po co używać takowych kont (typu gość), jak można użyć kont normalnych – a chociażby po-to aby np. nadawać uprawnienia do Teams, Sharepoint w sposób uporządkowany i np. jak użytkownik zapomni hasła, to będzie mógł go odzyskać na swój własny adres email lub przy pomocy telefonu – a w naszej organizacji nie będziemy musieli ponosić kosztów licencji Office 365 dla takiego użytkownika. Dodatkowo konta Microsoft Account są dość dobrze zabezpieczone, jak zalogujemy się z nieznanej lokalizacji musimy odebrać telefon lub SMSa.

Jakiś czas temu Microsoft zniósł różnice pomiędzy kontami typu B2B i B2C, co uważam za bardzo dobrą decyzje!

„I thought Azure AD B2B didn’t accept gmail.com and outlook.com email addresses, and that B2C was used for those kinds of accounts?

We are removing the differences between B2B and business-to-consumer (B2C) collaboration in terms of which identities are supported. The identity used is not a good reason to choose between using B2B or using B2C. For information about choosing your collaboration option, see Compare B2B collaboration and B2C in Azure Active Directory.”

 

Jak konta Guest działają obecnie w domenach publicznych typu @gmail.com, @outlook.com, @interia.pl:

  1. Jeżeli dodajemy konto do AAD (Guest) i użytkownik nie miał konta Microsoft Account (Dawniej Live ID) – to użytkownik dostaje maila i tworzymy konto, ustawiamy hasło do takiego konta – ale wg. moich dochodzeń jest tworzone konto Microsoft Account (Live id).
  2. Jeżeli dodajemy konto do AAD (Guest) i było już utworzone konto Microsoft Account z takim adresem email – to nie możemy ustawić hasła dla takiego konta, a po-prostu zalogować się hasłem Microsoft Account.

 

Przy okazji wspomnę, iż identycznie jest z kontami firmowymi (Office 365) – albo konto zostanie utworzone w Azure AD wraz z nową domeną w której nie będzie Global Admina(!), albo skorzystamy już z istniejącego. Oczywiście później po weryfikacji domeny dodamy Global Administratora.

 

Przy zakładaniu użytkownika typu Gość, mamy miejsce na wpisanie komunikatu i warto to ładnie opisać zwłaszcza, że ostatni krok mówiący o dostępnych aplikacjach zazwyczaj jest troszkę mylący, a mianowicie pusty.

Zakładanie konta typu Gość w Azure Active Directory:

Email informujący:

Mylący komunikat o dostępnych aplikacjach:

Użytkownicy bez Global Admin (założone konta typu gość w innych organizacjach):

Więcej informacji: https://docs.microsoft.com/en-us/azure/active-directory/b2b/faq

 

Long time ago if we added a Guest user to the Azure Active Directory type and sent an invitation to @gmail.com or @outlook.com, or @interia.pl – this user could not log in to Azure Active Directory, so he had no access to the application using Azure Active Directory authentication – from the Azure portal to Teams.

Why we should use Guest type account? For example, to grant Teams, Sharepoint rights in an orderly manner and for example if a user forgets a password, he will be able to recover it to his own address email or using a telephone – and in our organization we will not have to pay Office 365 license costs. In addition, Microsoft Account Accounts are quite well secured, as we log in to an unknown location, we must answer the phone or text message.

Some time ago Microsoft abolished the differences between B2B and B2C accounts, which I think is a very good decision!

„I thought Azure AD B2B didn’t accept gmail.com and outlook.com email addresses, and that B2C was used for those kinds of accounts?

We are removing the differences between B2B and business-to-consumer (B2C) collaboration in terms of which identities are supported. The identity used is not a good reason to choose between using B2B or using B2C. For information about choosing your collaboration option, see Compare B2B collaboration and B2C in Azure Active Directory.”

 

How Guest accounts currently operate on public domains like @gmail.com, @outlook.com, @interia.pl:

  1. If we add an account to AAD (Guset) and the user did not have a Microsoft Account (Live ID) – then the user receives an email and create an account and set a password for such an account – but according to my investigations Microsoft Account is created (Live id).
  2. If you add an account to AAD (Guest) and you have already created a Microsoft Account (Live ID) with such an email address – then we cannot set a password for such an account and simply we need to log in with the Microsoft Account password.

By the way, I will mention that it is almost identical with company accounts (Office 365) – either the account will be created in Azure AD along with a new domain in which there will not be Global Admin (!), Or we will use the existing one. Of course, we will add Global Administrator after domain verification.

When creating a Guest user, we have space to enter a message and it is worth describing it nicely, especially since the last step about available applications is usually a bit misleading, simply it is empty.

 

Invite Guest Account in Azure Active Directory:

Email with information:

Misleading message about available applications:

Users without Global Admin (Guest accounts in other organizations):

More info: https://docs.microsoft.com/en-us/azure/active-directory/b2b/faq

Azure Site Recovery – Validation failed for boot drivers vmbus,storflt,storvsc.

Usługa Azure Site Recovery, czyli w bardzo dużym uproszczeniu replikacja maszyn fizycznych i/lub wirtualnych do Microsoft Azure może być wykorzystywana do procedur Disaster Recovery oraz do migrowania zasobów do chmury publicznej Microsoft.

Jeżeli używamy usługi do replikowania maszyn fizycznych lub maszyn wirtualnych osadzonych na infrastrukturze VMWARE na maszynach wirtualnych musimy zainstalować Mobility Agent, który komunikuje się z Configuration Server, który to z kolei wysyła dane do Microsoft Azure.

W przypadku niepowodzenia instalacji Mobility Agent, zakończonej błędem zapisanym w pliku InstallerErrors.json:

{“Errors”:[{“error_name”:”ASRMobilityServiceBootDriversMissing”,”error_params”:{“drivers”:”vmbus,storflt,storvsc”},”default_message”:”\r\n                    Validation failed for boot drivers vmbus,storflt,storvsc. \r\n                    Possible causes\r\n                        1. Driver is not installed in one of control sets.\r\n                        2. Driver registry is not in proper format in one of control sets.\r\n                        3. Driver binary is missing.\r\n                        4. Read failed for driver registry.\r\n\r\n                    Resoultion:\r\n                        1. If driver is not installed or, there is some issue with registry key, please contact windows team.”}]}

Należy:

  1. Sprawdzić wersje systemu operacyjnego – czy na pewno jest to system 64 bitowy i minimum Windows Server 2008 R2 z Service Pack 1.
  2. Sprawdzić, czy w katalogu \Windows\System32\drivers\ zajdują się pliki vmstorfl.sys oraz vmbus.sys. Jeżeli ich brakuje trzeba odegrać je z innego sprawnie działającego systemu operacyjnego (z tą samą wersją).
  3. Sprawdzić czy mamy następujące wpisy w rejestrze – i jeżeli ich brakuje wyeksportować z innego sprawnie działającego systemu i zaimportować:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\storflt
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\vmbus
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\vmbus
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\storflt
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\storvsc
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\storvsc

  1. Spróbować ponownie zainstalować Mobility Agenta.

 

Azure Site Recovery could be thread as a replication of physical and/or virtual machines to Microsoft Azure. It can be used for Disaster Recovery procedures and for migrating resources to Microsoft’s public cloud.

If we use a scenario to replicate physical machines or virtual machines from VMWARE, we must install a Mobility Agent that communicates with the Configuration Server, which sends data to Microsoft Azure.

If the Mobility Agent installation fails with an error stored in the InstallerErrors.json file like:

{“Errors”:[{“error_name”:”ASRMobilityServiceBootDriversMissing”,”error_params”:{“drivers”:”vmbus,storflt,storvsc”},”default_message”:”\r\n                    Validation failed for boot drivers vmbus,storflt,storvsc. \r\n                    Possible causes\r\n                        1. Driver is not installed in one of control sets.\r\n                        2. Driver registry is not in proper format in one of control sets.\r\n                        3. Driver binary is missing.\r\n                        4. Read failed for driver registry.\r\n\r\n                    Resoultion:\r\n                        1. If driver is not installed or, there is some issue with registry key, please contact windows team.”}]}

 

We need:

  1. Check the versions of the operating system – minimum of 64 bit Windows Server 2008 R2 with Service Pack 1.
  2. Check if files vmstorfl.sys and vmbus.sys files exists in \Windows\System32\drivers\. If they are missing, you have to copy them from another operating system (with the same version).
  3. Check if we have the following entries in the registry – and if they are missing, export them from another well-functioning system and import it:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\storflt
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\vmbus
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\vmbus
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\storflt
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\storvsc
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\storvsc

  1. Try to install Mobility Agent just again.

Exported Registry Files Ready to use/Wyeksportowane pliki rejestru gotowe do użycia (Windows Server 2008 R2): Registry

Azure Site Recovery Unified Setup – błąd podczas instalacji /error during installing

Jeżeli uruchamiamy usługę Azure Site Recovery  i nie udaje nam się zainstalować Process i Configuration Servera, a w szczególności wyskoczy nam błąd typu (w logu Application):

Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.For more information, see Help and Support Center at http://www.mysql.com.

wówczas zapewne Windows nie jest zainstalowany na dysku C – niestety system operacyjny Configuration Servera musi byc zainstalowany na dysku C. Podejrzewam, iż podobnie jest z mySQL. Nie pozostaje nam nic innego jak przeinstalować system operacyjny, tak aby był zainstalowany na dysku C.

 

If we run the Azure Site Recovery Unified Setup and it fail to install Process and Configuration Server. We will see a type error (in the Application log):

Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.For more information, see Help and Support Center at http://www.mysql.com.

then probably Windows is not installed on drive C – unfortunately the Configuration Server operating system must be installed on drive C. I suspect that this is similar to mySQL too. We have to reinstall the operating system so i will be installed on drive C.

Exchange Eksport Danych / Exchange Data Export

Podstawową, najłatwiejszą i najszybszą metodą migracji Microsoft Exchange do Office 365 jest uruchomienie tzw. Hybrydowej instalacji. Czasami się jednak zdarza, iż nie możemy tego zrobić. Pozostaje nam zebrać konfiguracje Exchange, a przede wszystkim:

  • wszystkie mailboxy (UserMailbox );
  • wszystkie skrzynki współdzielone (SharedMailbox, GroupMailbox);
  • skrzynki reprezentujące sale i wyposażenie (RoomMailbox, EquipmentMailbox).

Dane, które powinniśmy zawrzeć, oprócz dostępów i ich rodzajów to adresy SMTP.

Do powyższego może nam się przydać  eksport wszystkich grup Active Directory wraz z ich członkami.

Poniżej skrypt to realizujący:

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath SharedMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath SharedMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath SharedMailboxSMTP.txt -Width 5400

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails GroupMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath GroupMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath GroupMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails GroupMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath GroupMailboxSMTP.txt -Width 5400

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails RoomMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath RoomMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath RoomMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails RoomMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath RoomMailboxSMTP.txt -Width 5400

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails EquipmentMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath EquipmentMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath EquipmentMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails EquipmentMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath EquipmentMailboxSMTP.txt -Width 5400

 

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize:Unlimited|Select Identity,Alias,DisplayName,SamAccountName,UserPrincipalName,PrimarySmtpAddress,Name,DistinguishedName,EmailAddresses|ft|Out-File -FilePath Mailbox.txt -Width 5400
Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath MailboxSMTPAddresses.txt -Width 5400
Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize:Unlimited|Select Alias,EmailAddresses|ft|Out-File -FilePath MailboxSMTP.txt -Width 5400

 

$CSVFile = “AD_Groups.csv”
$CSVOutput = @()
$ADGroups = Get-ADGroup -Filter *
$i=0
$tot = $ADGroups.count
foreach ($ADGroup in $ADGroups) {
$i++
$status = “{0:N0}” -f ($i / $tot * 100)
Write-Progress -Activity “Exporting AD Groups” -status “Processing Group $i of $tot : $status% Completed” -PercentComplete ($i / $tot * 100)

$Members = “”

$MembersArr = Get-ADGroup -filter {Name -eq $ADGroup.Name} | Get-ADGroupMember | select Name, objectClass, distinguishedName
if ($MembersArr) {
foreach ($Member in $MembersArr) {
if ($Member.objectClass -eq “user”) {
$MemDN = $Member.distinguishedName
$UserObj = Get-ADUser -filter {DistinguishedName -eq $MemDN}
if ($UserObj.Enabled -eq $False) {
continue
}
}
$Members = $Members + “,” + $Member.Name
}
if ($Members) {
$Members = $Members.Substring(1,($Members.Length) -1)
}
}

$HashTab = $NULL
$HashTab = [ordered]@{
“Name” = $ADGroup.Name
“Category” = $ADGroup.GroupCategory
“Scope” = $ADGroup.GroupScope
“Members” = $Members
}

$CSVOutput += New-Object PSObject -Property $HashTab
}

$CSVOutput | Sort-Object Name | Export-Csv $CSVFile -NoTypeInformation

 

The basic, easiest and fastest way to migrate Microsoft Exchange to Office 365 is to run the so-called Hybrid installation. Sometimes, however, it happens that we can not do it. We have to collect Exchange configurations:

  • all mailboxes (UserMailbox);
  • all shared boxes (SharedMailbox, GroupMailbox);
  • boxes representing rooms and equipment (RoomMailbox, EquipmentMailbox).

The data to be included, in addition to access and their types, are SMTP addresses.

Exporting all Active Directory groups together with their members may be useful for the above.

The script:

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath SharedMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath SharedMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath SharedMailboxSMTP.txt -Width 5400

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails GroupMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath GroupMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath GroupMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails GroupMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath GroupMailboxSMTP.txt -Width 5400

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails RoomMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath RoomMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath RoomMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails RoomMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath RoomMailboxSMTP.txt -Width 5400

 

$Mailboxes = Get-Mailbox -RecipientTypeDetails EquipmentMailbox -ResultSize:Unlimited | Select Identity,Alias,DisplayName,UserPrincipalName,EmailAddresses,PrimarySmtpAddress,Name,DistinguishedName | sort displayname
$Mailboxes |ft|Out-File -FilePath EquipmentMailbox.txt -Width 5400
$mailboxes | sort displayname | foreach {Get-MailboxPermission -Identity $_.alias | ft identity,user,accessrights}|Out-File -FilePath EquipmentMailboxPermission.txt -Width 5400
Get-Mailbox -RecipientTypeDetails EquipmentMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath EquipmentMailboxSMTP.txt -Width 5400

 

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize:Unlimited|Select Identity,Alias,DisplayName,SamAccountName,UserPrincipalName,PrimarySmtpAddress,Name,DistinguishedName,EmailAddresses|ft|Out-File -FilePath Mailbox.txt -Width 5400
Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize:Unlimited |Select-Object displayname -expandproperty emailaddresses| Select DisplayName,SmtpAddress | sort displayname| Out-File -FilePath MailboxSMTPAddresses.txt -Width 5400
Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize:Unlimited|Select Alias,EmailAddresses|ft|Out-File -FilePath MailboxSMTP.txt -Width 5400

 

$CSVFile = “AD_Groups.csv”
$CSVOutput = @()
$ADGroups = Get-ADGroup -Filter *
$i=0
$tot = $ADGroups.count
foreach ($ADGroup in $ADGroups) {
$i++
$status = “{0:N0}” -f ($i / $tot * 100)
Write-Progress -Activity “Exporting AD Groups” -status “Processing Group $i of $tot : $status% Completed” -PercentComplete ($i / $tot * 100)

$Members = “”

$MembersArr = Get-ADGroup -filter {Name -eq $ADGroup.Name} | Get-ADGroupMember | select Name, objectClass, distinguishedName
if ($MembersArr) {
foreach ($Member in $MembersArr) {
if ($Member.objectClass -eq “user”) {
$MemDN = $Member.distinguishedName
$UserObj = Get-ADUser -filter {DistinguishedName -eq $MemDN}
if ($UserObj.Enabled -eq $False) {
continue
}
}
$Members = $Members + “,” + $Member.Name
}
if ($Members) {
$Members = $Members.Substring(1,($Members.Length) -1)
}
}

$HashTab = $NULL
$HashTab = [ordered]@{
“Name” = $ADGroup.Name
“Category” = $ADGroup.GroupCategory
“Scope” = $ADGroup.GroupScope
“Members” = $Members
}

$CSVOutput += New-Object PSObject -Property $HashTab
}

$CSVOutput | Sort-Object Name | Export-Csv $CSVFile -NoTypeInformation

 

Group script: https://gallery.technet.microsoft.com/scriptcenter/Export-all-AD-groups-and-3ae6fb42

This could be due to CredSSP encryption oracle remediation – Problem Remote Desktop

Jeżeli chcemy połączyć się zaktualizowanym Windows 10,8,7,Serwer do maszyny po RDP (w szczególności w Azure) i wystąpi błąd:

An authentication error has occurred.
The function requested is not supported

Remote computer: <IP>
This could be due to CredSSP encryption oracle remediation.

Na kliencie wystarczy wykonać:

REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2

Problem jest związany z https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-0886, gdzie obydwie maszyny muszą być zaktualizowane.

Jeżeli natomiast serwer jest zaktualizowany i chcemy łączyć się z klientów, które nie są zaktualizowane należy wykonać, powyższą komendę na serwerze.

Więcej informacji:

https://support.microsoft.com/en-us/help/4295591/credssp-encryption-oracle-remediation-error-when-to-rdp-to-azure-vm

https://support.microsoft.com/en-us/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018

Windows Server Summit – Co nowego w Windows Server / What’s new in Windows Server

Zapraszam na Windows Server Summit – gdzie mam nadzieje, że będzie cos o nowościach w Windows Server.

https://www.microsoft.com/en-us/cloud-platform/windows-server-summit

Dodaj do kalendarza: https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2bymF

 

I invite you to the Windows Server Summit – where I hope there will be something new about Windows Server.
https://www.microsoft.com/en-us/cloud-platform/windows-server-summit

Add to calendar: https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2bymF

Diffiego-Hellmana (DH Group) protocol and Azure

Protokół Diffiego-Hellmana – protokół uzgadniania kluczy szyfrujących przy użyciu publicznych środków komunikacji. W przypadku IPSEC obecnie zalecana DH Grupa to 24. Wcześniejsze, a więc domyślna w wypadku Azure DH Grupa 5 nie jest zalecana ze względów bezpieczeństwa.

Za pomocą portalu Azure nie możemy zdefiniować preferowanej DH Grupy, a powinniśmy zrobić to z PowerShell’a, tak jak poniżej:

$connection = Get-AzureRmVirtualNetworkGatewayConnection -Name “MojePolaczenie” -ResourceGroupName “ResoureGroupa”
$ipsecpolicy = New-AzureRmIpsecPolicy -IkeEncryption AES256 -IkeIntegrity SHA256 -DhGroup DHGroup24 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup PFS24 -SALifeTimeSeconds 3600 -SADataSizeKilobytes 204800
Set-AzureRmVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection -UsePolicyBasedTrafficSelectors $True -IpsecPolicies $ipsecpolicy

 

Diffie-Hellman protocol – a protocol for reconciliation of encryption keys using public means of communication. In the case of IPSEC, the DH Group currently recommended is 24. The previous, and therefore the default for Azure DH Group 5 is not recommended for security reasons.

Using the Azure portal, we cannot define the preferred DH Group, and we should do it with PowerShell, as below:

$connection = Get-AzureRmVirtualNetworkGatewayConnection -Name “MojePolaczenie” -ResourceGroupName “ResoureGroupa”
$ipsecpolicy = New-AzureRmIpsecPolicy -IkeEncryption AES256 -IkeIntegrity SHA256 -DhGroup DHGroup24 -IpsecEncryption AES256 -IpsecIntegrity SHA256 -PfsGroup PFS24 -SALifeTimeSeconds 3600 -SADataSizeKilobytes 204800
Set-AzureRmVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection -UsePolicyBasedTrafficSelectors $True -IpsecPolicies $ipsecpolicy

DH specyfication:

  • Diffie-Hellman group 1 – 768 bit modulus – AVOID
  • Diffie-Hellman group 2 – 1024 bit modulus – AVOID
  • Diffie-Hellman group 5 – 1536 bit modulus – AVOID
  • Diffie-Hellman group 14 – 2048 bit modulus – MINIMUM ACCEPTABLE
  • Diffie-Hellman group 19 – 256 bit elliptic curve – ACCEPTABLE
  • Diffie-Hellman group 20 – 384 bit elliptic curve – Next Generation Encryption
  • Diffie-Hellman group 21 – 521 bit elliptic curve – Next Generation Encryption
  • Diffie-Hellman group 24 – modular exponentiation group with a 2048-bit modulus and 256-bit prime order subgroup – Next Generation Encryption

How to publish App Inventor application to Google Play / Publikacja Aplikacji z App Inventor do Google Play

Step by Step publishing not only App Inventor application to Google Play guide.

Especially when you receive:

You uploaded an APK that is signed with a key that is also used to sign APKs that are delivered to users. Because you are enrolled in App Signing, you should sign your APK with a new key before you upload it.

Step by step:

  1. “CREATE APPLICATION” having the same name which you want to upload before.
  2. Click create.
  3. After creation of the app now click on the “App releases”
  4. Click on the “MANAGE PRODUCTION”
  5. Click on the “CREATE RELEASE”
  6. Here you see “Google Play App Signing” dialog.
  7. Just click on the “OPT-OUT” button.
  8. It will ask you to confirm it. Just click on the “confirm” button.

Jak opublikować aplikacje z App Inventor’a do sklepu Google na Androida.

Jak poradzić sobie z błędem:

You uploaded an APK that is signed with a key that is also used to sign APKs that are delivered to users. Because you are enrolled in App Signing, you should sign your APK with a new key before you upload it.

Generalnie należy wybrać opcje OPT-OUT podczas publikacji.

Dostęp do LAB – Microsoft Tech Summit

W Warszawie w dniach 25 i 26 kwietnia odbył się Warsaw Microsoft Tech Summit. Niektórzy przypomnieli sobie czasy dawnego MTSa, bo organizacja wydarzenia była bardzo podobna. Ja ze swojej strony bym powiedział, że to taki Mini IGNITE. Oprócz normalnych sesji, były krótkie wystąpienia MVP, Prowadzone przez instruktorów Hands-OnLaby oraz Hands-OnLaby do samodzielnego wykonania. Dostęp do Labów nadal działa, więc jeszcze chwile możemy z nich skorzystać. Aby skorzystać z Labów trzeba było wcześniej zarejestrować się na wydarzenie, ale niekoniecznie na nim być.

Jak najłatwiej dostać się do LABów – po pierwsze zaloguj się na stronę wydarzenia, pod tym linkiem:

https://warsaw.techsummit.microsoft.com/m

a następnie możesz przejść do zakładki LABS ON DEMAND, lub łatwiej wybrać LABa z poniższej listy:

  • Build your first SharePoint Framework part

    The SharePoint Framework lets you build streamlined, responsive user experiences in SharePoint using modern script technologies. In this hands-on lab, build a powerful end-to-end part using open source JavaScript technologies in just 10 minutes.

    Join Lab

  • Build your own Azure Information Protection POC in 15 minutes

    In this hands-on lab learn how to implement an AIP POC from establishment of the AIP tenant, template configuration, client installation and advanced settings. After this lab, you will be able to very quickly deploy AIP in a customer POC environment and test capabilities to accelerate customer consumption.

    Join Lab
  • Customize the Windows 10 Start menu and taskbar during deployment

    Windows 10 offers the ability to add pinned apps to and remove them from the taskbar during deployment, while still allowing users to pin, unpin, and change the order of pinned apps after deployment. In this lab, you learn how to deploy this and other Start menu and taskbar customizations during deployment by using Group Policy and Windows PowerShell.

    Join Lab
  • Deploy Credential Guard

    Introduced in Windows 10 Enterprise and Windows Server 2016, Credential Guard uses virtualization-based security to isolate secrets so that only privileged system software can access them. Unauthorized access to these secrets can lead to credential theft attacks, such as Pass-the-Hash or Pass-The-Ticket. Credential Guard prevents these attacks by protecting NTLM password hashes, Kerberos Ticket Granting Tickets, and credentials stored by applications as domain credentials. This lab demonstrates how to configure and manage Credential Guard in Windows 10 Enterprise.

    Join Lab
  • Deploy Device Guard

    Device Guard is a combination of enterprise-related hardware and software security features that, when configured together, will lock a device down so that it can only run trusted applications that are defined in an organization’s code integrity policies. In this lab, learn how to configure and deploy Device Guard step-by-step, from deploying code integrity policies to enabling virtualization-based security.

    Join Lab
  • Deploying a highly available virtual machine

    In this lab, create and deploy a Windows Server 2016 Datacenter virtual machine and place it in an Azure Availability Set with managed disks to assure high availability.

    Join Lab
  • Deploying a predictive model with Azure Machine Learning

    This lab explores unsupervised learning in Azure Machine Learning and how to deploy a predictive model as a web service. The lab walks you through copying an experiment from the Cortana Intelligence Gallery into the ML Studio, creating a predictive experiment, deploying a model as a web service, and interacting with the API using the included web interface.

    Join Lab
  • Deploying and updating Office 365 ProPlus using System Center Configuration Manager

    Are you thinking about switching your organization to Office 365 ProPlus to deliver the latest in productivity, managed by Office 365 and EMS? This hands-on lab guides you through the complete deployment experience for Office 365 ProPlus using the latest enhancements to Microsoft System Center Configuration Manager and Microsoft Intune. Aligned with the best practices for deployment, this lab also leads you through the process for managing updates from the Office 365 update model.

    Join Lab
  • Get started with Microsoft Graph in an React app

    Microsoft Graph provides an API to everything in your organization. Explore how to build web applications using people, groups, files, tasks, and more along with the React web application framework.

    Join Lab
  • How to use the Advanced Threat Analytics (ATA) Playbook to demo ATA

    Advanced Threat Analytics (ATA) is a User and Entity Behavior Analytics (UEBA) platform to detect, prioritize and investigate advanced attacks and insider threats before they can cause damage. In this lab you get hands-on experience on deploying ATA and using the ATA Playbook to demo some pretty cool attacks that ATA can detect. Don’t forget to bring your hoddie and dark sunglasses ;).

    Join Lab
  • Introduction to Azure Machine Learning

    This lab is intended to serve as an introduction to creating a predictive model with Azure Machine Learning. The lab walks through accessing the ML Studio environment, exploring and visualizing data in Azure Machine Learning, and creating a simple predictive model.

    Join Lab
  • Manage Microsoft Office 365

    Through lab exercises, you become familiar with the Microsoft Office 365 Administration Portal and gain experience using several of the administration features. Learn the steps required to get your team set up and working in Office 365.

    Join Lab
  • Microsoft 365 Deployment – Deploying and Configuring Windows 10 and Office 365 ProPlus

    In this lab, you’ll learn how to deploy and configure the Microsoft 365 powered device components – Windows 10 and Office 365 ProPlus using Microsoft System Center Configuration Manager. Perform a Windows 7 to Windows 10 in-place upgrade through the native task sequence in Configuration Manager. Then, deploy Office 365 ProPlus with the Configuration Manager O365 Client Install wizard and configure Office updates using the software update management workflow and automatic deployment rules.

    Join Lab

    Microsoft 365 Teamwork – Configuring and Using Office 365 groups, Microsoft Teams, and OneDrive

    During this lab, you will experience using components of the Microsoft 365 Teamwork suite – Office 365 Groups, Microsoft Teams, and OneDrive for Business. You will become familiar with creating, joining, and managing Office 365 groups while also learning how to migrate existing DLs to Office 365 groups. You will also enable and administer Microsoft Teams, working within the application to create and use Team content including files, meetings, and chat. Then, learn to configure and administer the OneDrive for Business sync client for content storage.

    Join Lab
  • Microsoft Azure networking concepts

    In this lab, get familiar with Azure virtual networking.

    Join Lab
  • Shielded virtual machines

    In this lab, learn about the end-to-end configuration of a guarded fabric for hosters and hosting workloads on that fabric for tenant administrators by using Trusted Platform (TPM) attestation with Windows Server 2016 and System Center 2016 – Virtual Machine Manager.

    Join Lab
  • Troubleshooting Microsoft Office 365

    During this lab, experience different methods of troubleshooting for Office 365.

    Join Lab
  • Upgrade in place to Windows 10 by using MDT and Configuration Manager

    Learn how to use the Microsoft Deployment Toolkit (MDT) or System Center Configuration Manager to perform an in-place upgrade from Windows 7 to Windows 10. In this lab, you learn how to use the MDT (standalone or with Configuration Manager) to perform an in-place upgrade, a key part of providing Windows as a service.

    Join Lab
  • Use Internet Explorer Enterprise Mode to fix compatibility issues

    In Internet Explorer, Enterprise Mode provides better backward compatibility than earlier versions for web apps. This lab teaches you how to configure and deploy Enterprise Mode in Windows 10, where Microsoft Edge is the default browser.

    Join Lab

Tworzenie paczek MSI przy pomocy Advanced Installer

Czasami się zdarza, że potrzebujemy stworzyć paczkę MSI – sprawa jest stosunkowo prosta jeżeli jest to oprogramowanie, które tworzymy. Wówczas nawet Visual Studio posiada adekwatne opcje. Jeżeli natomiast musimy stworzyć paczkę MSI z już istniejącego oprogramowania, którego mamy tylko plik exe sprawa wygląda nieco gorzej.

Swojego czasu na płytach instalacyjnych z Windows XP/2000 było oprogramowanie, które trzeba było zainstalować na czystym systemie i następnie wystartować je. W pierwszym ruchu oprogramowanie to robiło obraz systemu plików i rejestru, a my w kolejnym kroku instalowaliśmy dowolne oprogramowanie i je ewentualnie konfigurowaliśmy. Mogliśmy nawet zainstalować więcej niż jeden program. W trzecim kroku program do tworzenia paczki, sprawdzał różnice i na tej podstawie robił paczkę MSI.

Obecnie do tego celu jesteśmy skazani na użycie komercyjnego oprogramowania i jedynym, które posiada ową funkcjonalność jest Advanced Installer. Co ciekawe jeżeli jesteśmy bloggerem, MVP lub MCT możemy otrzymać oprogramowanie za darmo.

Poniżej na screenach przestawiam w jaki sposób zrobiłem paczkę MSI (hasło hcompl) oprogramowania Comarch ERP Optima w wersji 2018.2.1.950.

Inne oprogramowanie do robienia/edycji paczek MSI:

  • ORCA – bezpłatny stary, ale nadal działający edytor MSI, przydatny tylko do edycji już stworzonych MSI. Użwam go dosyć często do wyłączenia w instalatorze sprawdzenia platformy i zmuszenia do zainstalowania programu dla Windows 2000 32 bitowego na np. Windows 10 64 bitowym. Innym przykładem jest np. zainstalowanie VMToolsów na wirtualce działającej na HYPER-V lub sprzęcie fizycznym. Przydatne przed wirtualizacją lub w wykorzystaniu Azure Site Recovery.
  • MSI Wrapper – Konwersja klasyki Inno Setup do MSI. Czyli raczej jeżeli robimy własne oprogramowanie.
  • WixEdit – Oprogramowanie do tworzenia MSI, ponoć rozbudowane.

Sources – Architektura przykładowej gry w chmurze Azure / Architecture of the example game in the Microsoft Azure

Sometimes ago I presented article about Architecture of the example game in the Microsoft Azure – now it is time to publish source of that.

  • The complete game – Unity 2017.1.1f1 (64-bit);
  • The complete game for XBOX – Unity 2017.1.1f1 (64-bit);
  • Azure WebApp, Azure  Function, Azure SQL.

 

Swojego czasu prezentowałem Architekture przykładowej gry w chmurze Azure – nadeszła pora na przedstawienie źródeł:

  • Kompletna Gra w Unity (Unity 2017.1.1f1 – 64 bit);
  • Kompletna gra dla XBOX;
  • Azure WebApp, Azure  Function, Azure SQL.

 

Failover Cluster w Azure i rozwiązania HA w Azure / Niestandardowe podejście do Hybrid Cloud / Niestandardowe wykorzystanie Azure Network Load Balancer

Podczas MVP Summit 2018 były prezentowane bardzo ciekawe architektury wdrożeń usług typu Cluster z wykorzystaniem chmury – nie tylko Microsoft Azure, ale też AWS bądź Google Cloud.
Przykłady oparte na podstawie wdrożeń Microsoft SQL lub Hyper-V – ale tak naprawdę na tej podstawie można zaprojektować inne rozwiązania jak np. Scale Out File Server.

Uwaga: materiały te zostały zwolnione z NDA, dlatego mogę je zaprezentować. Obecnie zawierają zdjęcia dość słabej jakości, ale jak tylko będę miał chwile zrobię odpowiednie grafy.

 

Przykład wdrożenia aplikacji na dwóch serwerach aplikacyjnych i bazy danych również na dwóch również na dwóch serwerach z wykorzystaniem Space Direct. Proszę zauważyć, iż wykorzystane są w tym momencie dwa Availability Set – aczkolwiek bym się zastanowić, czy nie zrobić wszystko w jednym. Według prowadzącego (osoby odpowiedzialnej za rozwój Windows Server) w ten sposób osiągamy większe SLA mimo, iż w Azure nawet pojedyncze maszyny z użyciem dysku SSD mają SLA 99,9.

Rozwinięcie powyższego rozwiązania, zapewniające jeszcze większe SLA z wykorzystanie Clustered Shared Volume:

Przechodzimy teraz do najważniejszego usługa a mianowicie aplikacja musi wiedzieć do, którego serwera bazy danych się połączyć, w rozwiązaniach On-Prem po prostu IP Adres usługi jest przywiązany, albo do jednego serwera, albo do drugiego – w przypadku rozwiązań w Azure wykorzystamy Azure Load Balancer – i to w dwóch przykładach – przykład 1 niestety zdjęcie niezbyt czytelne (ale link do rozwiązania poniżej i wkrótce podmienię na właściwe rozwiązanie).

Oficjalne dokumenty prezentujące implementacje znajdują się tutaj, aczkolwiek myślę, że takie podejście slajdowe i pokrótce opisujące jest dobre dla Architektów.

Inne prezentowane rozwiązania to np. FailOver Cluster rozciągnięty pomiędzy On-Prem i Azure z wykorzystaniem np. Nested Virtualization na maszynach w Azure (Ev3 i Ev3). Myślę, że w tym przypadku też trzeba zastosować rozwiązanie typu Azure Load Balancer, aby sensownie dostawać się do tych maszyn. Można też zastosować Hyper-V Replica, w której to IP podmieniane są automatycznie.

Wszyscy namawiają do rozwiązań PaaS, tak aby zapomnieć o maszynach wirtualnych, ale niestety przepisanie aplikacji nie jest takie łatwe i tanie, a niniejszy artykuł pokazuje troszeczkę inne spojrzenie na Hybrid Cloud, a zwłaszcza na wykorzystanie Azure Load balancer’a.

A Microsoft na pewno jeszcze niejednokrotnie nas zaskoczy z usługami w Azure i Hybrid Cloud.

Google Home vs Amazon Alexa Echo Smart Home

W drodze na MVP Summit, przesiadając się w Londynie podczas podróży do Seatle w sklepie mogłem obejrzeć i dotknąć systemów typu Smart Home, lub inaczej nazywając Electronic Assistant. Systemy te zazwyczaj sterują urządzeniami domowymi za pomocą głosu, jak też odpowiadają na nasze pytania.

W Londynie eksponowane są przede wszystkim produkty dwóch producentów, a mianowicie firmy amazon i Google.

W tym momencie oferta Amazon’a, pod marką echo wydaje się najbardziej zaawansowana – a jakość dźwięku z Echo Show robi wrażenie! Zachęcam do obejrzenia filmików, gdzie Amazon łączy zapytania dotykowe, głosowe z integracją z żarówkami, ogrzewaniem domowym i kamerą, nie zapominając o zwykłych zapytaniach o kalendarz czy też Video rozmowy.

Google natomiast swoje produkty opiera o gadżety podłączane do telewizora i Smartphone – oczywiście z systemem Android. Nie braknie mikrofono-głośnika, który czeka na nasze pytania i rozkazy.

Google chwali się, iż jego system rozpoznaje do czterech domowników – właśnie po glosie, aczkolwiek oferta wydaje się uboższa w porównaniu do Amazon.

W londyńskich sklepach brakuje trzeciego gracza jakim jest Microsoft i jego Cortana – aczkolwiek będąc w Seatle/Redmond może coś się uda obejrzeć więcej. Pukico brakuje marketingu – przynajmniej na wyspach.

Na dowiedzenia mogę dodać, iż obecnie segment Smart Home, Voice Assistant będzie bardzo się rozwijał i puki-co dziwie się, że gracze tacy jak Apple, Facebook, Samsung nie zaprezentowali swojej oferty w tym zakresie.

Myślę, że już teraz możemy zacząć rozwijać rozwiązania dla powyższych systemów jak np. Nauka Języka Angielskiego, w którym to języku najczęściej komunikujemy się z tymi urządzeniami.

 

 

During a stopover in London to MVP Summit I could see and touch systems like Smart Home/Electronic Assistant. These systems usually control the home devices by voice, as well as answer our questions.

In London, the products of two producers Amazon and Google, are exposed in almost every shop.

At this point, the offer of Amazon, under the brand Echo seems the most advanced – and the sound quality from Echo Show is impressive! I encourage you to watch videos, where Amazon combines touch inquiries, voice with integration with light bulbs, home heating and camera, not forgetting about queries about the calendar or video calls.

Google bases its products on gadgets connected to the TV and Android Smartphone. There is no lack of a microphone-speaker that waits for our questions and orders.

Google boasts that its system recognizes up to four household members.

The London stores lack the third player that is Microsoft with Cortana – although being in Seatle / Redmond maybe I will find something interesting about this. At this moment it is a big challenge to the Microsofts’ marketing members.

At this moment we can see that Smart Home/Voice Assistant systems will be developed by major companies.

Multi Factor Authentication — już nawet dzieci nawołują do włączenia!

Jeżeli, ktoś jeszcze dla wrażliwych danych nie używa Multi Factor Authentication – warto obejrzeć załączony film, w którym to już dzieci (przepraszam młodzież) dowiaduje się jaka to przydatna funkcjonalność i przekonuje do włączenia.

W skrócie polega ona na bezpiecznym uwierzytelnianiu użytkownika – czyli coś co wiem „hasło” plus coś co mam czyli np. telefon, na który dostane SMSa. I tylko po wprowadzeniu tych danych możemy zalogować się do systemu.

W przypadku Microsoft Azure usługa ta jest darmowa dla użytkowników posiadających role Globalnych Administratorów. Dla pozostałych kont musimy zapłacić, ale niezbyt dużo – 1,181 Euro na miesiąc za użytkownika.

 

PS: Film ten oglądała, moja córka i mnie zainspirowała do tego postu.

SSH demon for Windows / Jak zainstalować demona SSH na Windows

Just open Power Shell as a Administrator and pastle these commands, it just download and install SSH deamon on your machine:

Czytaj dalej

Jak rozpoznać i debugować aplikacje działającą w Windows Container / How to recognize and debug applications running in Windows Container

Kontenerami na Windowsa wszyscy mogą się pobawić od czasu konferencji Ignite 2016 – swojego czasu pokazywałem to jako nowość – https://channel9.msdn.com/Series/Nowosci-z-konferencji-Microsoft-Ignite-2016-Kontenery-Device-Guard-Shielded-VMs-Nested-Virtualizatio/02-Troche-praktyki-kontenery. Na Windows Serwer kontenery możemy uruchomić w dwóch trybach Hyper-V i tzw. Windows Server Container. W pierwszym wypadku jądro systemu uruchomione jest jako maszyna wirtualna na Hyper-V i w takim przypadku możemy uruchomiać kontenery Linuxowe na Windows. W drugim wypadku nie mamy warstwy wirtualizacji, mimo odizolowania procesów – wątków aplikacji, jak i samego systemu plików. Jak zatem widzimy owe procesy na hoście? Patrz Screenshot 1 – Po dodaniu kolumny Session widzimy, że aplikacje działające w kontenerze mają numer sesji 3, a numer 2 przyporządkowany jest dla aplikacji działających na hoście.
Jak zatem widzimy dostęp do dysku, z poziomu hosta? Przedstawia to Screenshot 2 z uruchomionym Process Monitorem na hoście, gdzie widzimy, że aplikacje działające w kontenerze nie zapisują do ścieżki typu c:\nazwa katalogu, a do \Device\Harddisk.

Mając na uwadze powyższe – warto wiedzieć, iż aplikacje działające w Windows Container możemy monitorować z poziomu Hosta – a nie kontenera!

 

 

Since Ignite 2016 conference everyone can use Windows Containers (https://channel9.msdn.com/Series/Nowosci-z-konferencji-Microsoft-Ignite-2016-Kontenery-Device-Guard-Shielded-VMs-Nested-Virtualizatio/02-Troche-praktyki-kontenery). On Windows Server, containers can be run in two modes Hyper-V and Windows Server Container. In the first case, the kernel is running as a virtual machine on Hyper-V and in this case we can run Linux containers on Windows. In the second case, we do not have a virtualization layer, despite isolating of processes of the application, as well as the file system. So how do we see these processes on the host? See Screenshot 1 – After adding the Session column, we see that the applications running in the container have session number 3, and the number 2 is assigned to applications running on the host.
How do we see disk access from the host level? This is presented in Screenshot 2 with the Process Monitor on the host running, where we see that the applications running in the container do not write to the path type c: \directory name, but to \Device\Harddisk.

Having in mind the above – it is worth knowing that applications running in Windows Container can be monitored from the Host level – not a container!

Android Samsung – Aplikacja E-Mail zawiesza się przy odpowiadaniu na maila / The E-Mail application hangs when answering an email

When using the E-Mail application, the application hangs when you reply to an e-mail, we just cannot wait for the message to load. Sending new messages works ok. The above is due to the system update made by Samsung. To solve the problem, go to Settings – Application Manager, then select three dots to show System Applications (see photo). Next, we have to find the Android System WebWiev and restore its old versions. The result is that Android System WebView will be turned off and then the E-mail application works fine.

 

 

Przy używaniu aplikacji E-Mail mogliście zauważyć, iż od pewnego czasu, aplikacja ta zawiesza się przy odpowiadaniu na e-maila, po prostu nie możemy doczekać się, aż wiadomość załaduje się. Wysyłanie nowe wiadomości działa bezbłędnie. Powyższe spowodowane jest aktualizacją systemu dokonaną przez Samsunga. Aby rozwiązać problem należy przejść do Ustawień – Menadżer aplikacji, następnie należy trzema kropeczkami wybrać, aby Pokazywał Aplikacje Systemowe (patrz zdjęcie). Kolejno znajdujemy aplikacje Android System WebWiev i przywracamy jej starą wersje. Powoduje to, iż Android System WebView będzie wyłączony i wówczas aplikacja E-mail działa bez zarzutu.

Azure Site Recovery – Data upload blocked for the ‘/dev/sda’ disk’s replication on the source machine – No crash consistent recovery point available for the VM in the last …

In the event of an error:
Data upload blocked for the ‘/dev/sda’ disk’s replication on the source machine
or
No crash consistent recovery point available for the VM in the last 60 minutes.

On source server please run:
1. Stop replication:

service boottimemirroring_phase1 stop
service boottimemirroring_phase2 stop
service inm_hotplug stop
service nmbd stop
service svagent stop
service vxagent stop
service vConService_linux stop
service uuidd stop

 

ps -ef | grep ASR|grep -v grep |awk ‘{print $2}’ | xargs kill -9

 

ps -ef | grep ASR|grep -v grep – should not show any processes

2. Start replication services:

service boottimemirroring_phase1 start
service boottimemirroring_phase2 start
service inm_hotplug start
service nmbd start
service svagent start
service vxagent start
service vConService_linux start
service uuidd start

ps -ef | grep ASR|grep -v grep – show all replication processes

3. Restart Process Server

 

Steps 1,2 and 3 can be repeated twice to be sure that everything works smoothly.
The above applies to scenarios of replication source Linux machine based on VmWare or physical server.
In 2 hour check in azure Portal if replication starts again.

Azure Site Recovery – Data upload blocked for the ‘/dev/sda’ disk’s replication on the source machine

W przypadku wystąpienia błędu:
Data upload blocked for the ‘/dev/sda’ disk’s replication on the source machine
lub
No crash consistent recovery point available for the VM in the last 60 minutes.

Na maszynie, która podlega replikacji należy:
1. Zatrzymać procesy replikacji:

service boottimemirroring_phase1 stop
service boottimemirroring_phase2 stop
service inm_hotplug stop
service nmbd stop
service svagent stop
service vxagent stop
service vConService_linux stop
service uuidd stop

 

ps -ef | grep ASR|grep -v grep |awk ‘{print $2}’ | xargs kill -9

 

ps -ef | grep ASR|grep -v grep – nie powinien pokazywać żadnych procesów

2. Uruchomić procesy replikacji:

service boottimemirroring_phase1 start
service boottimemirroring_phase2 start
service inm_hotplug start
service nmbd start
service svagent start
service vxagent start
service vConService_linux start
service uuidd start

ps -ef | grep ASR|grep -v grep – powinien pokazywać procesy replikacji

3. Restart Process Serwer’a.

Kroki 1,2 i 3 można powtórzyć dwukrotnie aby mieć pewność.
Powyższe tyczy scenariuszy replikacji do Azure maszyn wirtualnych Linux’owych opartych na VmWare oraz fizycznych serwerów.
Po wykonaniu powyższego, należy sprawdzić w portalu zarządzania usługą Azure, czy wszystko działa prawidłowo.

 

Aktywacja Azure Pass – zwłaszcza wielokrotna, na konferencjach, warsztatach / Azure Pass Activation – especially multiple Times – at conferences, workshops

Będąc na różnego rodzaju warsztatach, kursach, konferencjach otrzymujemy tzw. Azure Pass – czyli kupony, które uprawniają nas do zazwyczaj miesięcznego (ale i bywają 3 miesięczne) korzystania z Microsoft Azure. Uwaga, aby skorzystać z takiej oferty, nie możemy na naszym koncie Microsoft ID (Live ID) mieć kiedykolwiek aktywnej innej subskrypcji Azure (i nieważne czy to był TRIAL, subskrypcja komercyjna czy inna). Często nawet tego nie pamiętamy, dlatego najlepiej skorzystać z poniższej procedury:

  1. Założyć nowe Microsoft ID, koniecznie w trybie prywatnym przeglądarki – https://outlook.live.com/
  2. Wejść z kolejnej karty na https://www.microsoftazurepass.com/ i wykorzystać otrzymanego Azure Pass’a (jak coś się nie powiedzie nie zamykać przeglądarki – patrz film)
  3. Cieszyć się subskrypcją Microsoft Azure – https://portal.azure.com/

Czasami może być potrzeba przeniesienia zasobów z innej subskrypcji – jak to zrobić: https://mva.microsoft.com/pl/training-courses/azure-przenoszenie-zasobw-pomidzy-subskrypcjami-17620

Uwaga, jeżeli na takiej subskrypcji, bądź subskrypcji TRAIL lub MSDN wdrożymy jakąkolwiek usługę, która jest dodatkowo płatna partnerowi Microsoft np. REDHAT – to nasza subskrypcja zostanie automatyczna zablokowana i będziemy musieli podać numer karty kredytowej, tak, aby opłacić Partnera Microsoft.

Z mojego doświadczenia podpowiem, iż kontakt z suportem rozwiązuje problem i nie musimy podawać numeru karty.

Co dalej po okresie TRIAL – nadal możemy korzystać z bezpłatnych serwisów, ale już musimy podać numer karty kredytowej – więcej informacji: https://azure.microsoft.com/pl-pl/free/. Warto zauważyć, iż przez pierwszy rok mamy dostępnych całkiem sporo usług bezpłatnie. Po roku niestety mniej.

 

Being at various types of workshops, courses and conferences, we get Azure Pass that entitle us to use of Microsoft Azure. Please note that in order to take advantage of this offer, we cannot have a valid Microsoft ID (Live ID) on your other Azure subscription (no matter if it was TRIAL, a commercial subscription or otherwise). Often we do not even remember it, so it is best to use the following procedure:

  1. Set up a new Microsoft ID, necessarily in the private browser mode – https://outlook.live.com/
  2. Go to the next card at https://www.microsoftazurepass.com/ and use the received Azure Pass (if something goes wrong, do not close the browser – see the movie)
  3. Enjoy the Microsoft Azure subscription – https://portal.azure.com/

 

Sometimes it may be necessary to transfer resources from one subscription to another – how to do it:

https://mva.microsoft.com/en/training-courses/azure-translating-with-in-pomidis-subscriptions-17620

Attention, if on such subscription or subscription of TRAIL or MSDN we implement any service that is additionally payable to Microsoft partner, e.g. REDHAT – our subscription will be automatically blocked and we will have to provide credit card number to pay for it to Microsoft Partner.

From my experience, contact with the support solves the problem and we do not have to provide the valid card number.

After the TRIAL period – we can still use free services, but we must provide a credit card number – more information: https://azure.microsoft.com/en-us/free/. It is worth mention that for the first year we have quite a few free services available. Unfortunately, less after a year.

 

Architektura przykładowej gry w chmurze Azure / Architecture of the example game in the Microsoft Azure

Wpis ten powstał jako rozwinięcie mojego zapisu na facebook dot. proponowanej architektury rozwiązania gry w celu podniesienia jej grywalności.

Jak wygląda gra można zobaczyć tutaj: https://youtu.be/ulelEP_Zs_U

Pokrótce założenia:

  • ma być jak najtaniej do utrzymania i wytworzenia;
  • ma być skalowalnie – jakby gra okazała się sukcesem;
  • ma być dostępna na wszystkich platformach sprzętowych no i we wszystkich regionach świata szybko do ściągnięcia i/lub zagrania;
  • oczywiście mamy mieć pełną analitykę, kto się łączył i kiedy z naszą witryną, czy były jakieś błędy;
  • często zmieniamy sprzęt developerski i chcemy poprawiać błędy np. w knajpie internetowej, na laptopie, ewentualnie na słabym komputerze;
  • musimy mieć kontrole wersji, stronę www chcemy mieć możliwość poprawiania poprzez pisanie kodu w przeglądarce (zwłaszcza w chwili rollout’u)

Proponowane rozwiązanie:

Zaczynając od końca, a więc cały kod źródłowy rozwiązania będziemy trzymać w Visual Studio Team Services, a do kodowania wykorzystamy Visual Studio Community Edition. Dla małych zespołów do 5 osób rozwiązanie zupełnie darmowe. Samą grę będziemy pisać w Unity, co pozwoli nam za pomocą przysłowiowego jednego kliknięcia wdrożyć rozwiązanie na Windows, Linux, Mac, Android, Iphone. Kod źródłowy będziemy przechowywać również bezpłatnie w chmurze Unity. Samo Unity dla małych, niekomercyjnych, bądź przynoszących niewielkie 100000 USD rozwiązań również jest bezpłatne.

Jeżeli nie mamy dość wydajnego komputera, bądź wystarczająco dużo miejsca na dysku do instalacji wyżej wspominanych narzędzi i aby w miarę wydajnie pracować zmuszeni jesteśmy zapłacić za Azure (chyba, że wyrobimy się w miesięcznej darmowej subskrypcji, bądź planu free). Proponuje wykorzystać maszynę wirtualną z serii N, z którą dostajemy wydajną kartę graficzną (GPU). Na takiej maszynie możemy nie tylko grać, ale również tworzyć je! Pamiętajmy, aby zainstalować na niej odpowiednie drivery: https://docs.microsoft.com/pl-pl/azure/virtual-machines/windows/n-series-driver-setup.

Stronę z wynikami, taka jak tutaj https://mazeball.azurewebsites.net/ stworzymy jako App Service / Web App w planie bezpłatnym wraz z bazą danych SQL Database (na rok również bezpłatnie z ograniczeniem do 32 MB, ale same wyniki to kilka bajtów na jednego gracza). Oczywiście, jeżeli będzie hit – to szybko migrujemy się do płatnego planu – odrobimy sobie na reklamach!

No właśnie, aby potencjalnemu reklamodawcy przedstawić bardzo dokładne statystyki, łącznie z glokalizacją uruchomimy Application Insight. Jak nie będziemy mieli za dużo danych również usługa jest usługa darmową.

Dany z gry będziemy przekazywać za pomocą Azure Functions – za pomocą prostych Get’ów. Usługa do miliona wywołań również bezpłatna! A jeżeli osiągniemy sukces, to przełączymy się na inny plan, wydajniejszy i bardziej odpowiedni.

Na naszej stronie będzie trochę plików statycznych do pobrania – wesja WebGL, EXE aplikacji i aby szybko ją dostarczyć końcowemu użytkownikowi użyjemy usługi Content Delivery Network. Usługa płatna, więc nie musimy jej wdrażać od razu.

Jeżeli osiągniemy sukces i będziemy rozkładać obciążenie na kilka WebApp wówczas wykorzystamy Traffic Managera – ale to już będziemy zarabiać, więc cena nie gra roli, zwłaszcza, że nie jest wysoka. Wdrożymy za pomocą jednego kliknięcia.

Aby szybko wdrażać nowe usługi i niejako uniezależnić się od adresów DNS Azure, od początku proponuje bazować na swojej strefie DNS, i aby przekazać za pomocą wpisu CNAME np. trafficmanager.mojadomena.pl -> mojadomena.trafficmanager.net lub azureedge.mojadomena.pl -> mojadomena.azureedge.net lub mazeball.mojadomena.pl -> mazeball.azurewebsites.net. Oczywiście obsługę DNS można powierzyć również Azure i o ile nie osiągniemy milion zapytań wyrobimy się w cenie najtańszego piwa z biedronki.

 

The game looks here: https://youtu.be/ulelEP_Zs_U

  • Brief assumptions:
  • be as cheap as possible;
  • it can be scalable – as if the game turned out to be a success;
  • it can be available on all hardware platforms and can be quickly downloaded and / or played in all regions of the world;
  • of course we have to have full analytics, who connected and when with our site, if there were any errors;
  • we often change the developer’s equipment, we need acces for example in an internet café, on a laptop, or on a weak computer;
  • we need to have version controls, we want to have a website to be able to correct by writing code in the browser (especially at the time of rollout)

Suggested soultion:

Starting from the end, so all the source code of the solution will be kept in Visual Studio Team Services, and for coding we will use Visual Studio Community Edition. For small teams up to 5 people, the solution is completely free. The game will be written in Unity, that allow us to implement a solution on Windows, Linux, Mac, Android, Iphone by one click. The source code will also be stored for free in the Unity cloud. Unity is also free for non-commercial or small businesses.

If we do not have a sufficiently efficient computer, or enough disk space to install the above-mentioned tools and to work reasonably efficiently, we have to pay for Azure (unless we make up for a monthly free subscription or free plan). My proposal is to use the N series virtual machine with which we get a powerful graphics card (GPU). We can play games on this and also create them! Remember to install the appropriate drivers on it: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/n-series-driver-setup

A website with results, such as https://mazeball.azurewebsites.net/, we will create as an App Service / Web App in the free plan together with the SQL Database (limit of 32 MB, but the results are several bytes on one player). Of course, if it will be a hit – we quickly migrate to a paid plan.

To get potential advertiser we need to provide very accurate statistics, including geo localization. We launch Application Insight . If we do not have too much data, the service is also free.

We will transfer data from the game using Azure Functions – using simple GET. The service up to a million calls is also free! And if we achieve success, we will switch to a different plan, more efficient and more appropriate.

On our site there will be some static files to download – WebGL, EXE applications and to quickly deliver it to the end user we will use the Content Delivery Network service. A paid service, so we do not have to implement it.

If we achieve success and we will spread the load on several WebApp then we will use Traffic Manager – but we will already earn, so the price does not play, especially since it is not high. We implement it with one click.

In order to quickly implement new services and to free yourself from DNS Azure addresses, from the very beginning we suggest to base your DNS zone on it, and to transfer using CNAME entry, for example: trafficmanager.mojadomena.pl -> mydomain.trafficmanager.net or azureedge.mojadomena.pl -> mojadomena.azureedge.net or mazeball.mojadomena.pl -> mazeball.azurewebsites.net. Of course, DNS support can also be moved to Azure, and if we do not reach one million queries, we will get the price of the cheapest beer in WallMarkt.

Unity – Build / Compile project to PC (Windows EXE, Linux, Mac) or Web Page (WebGL)

Poniższe dwa Video są uzupełnieniem poprzednich wpisów gdzie pokazano jak skompilować projekt w Unity jako Universal Windows Platform lub dla Android. Przedstawiają kompilacje do:

  • PC (Windows EXE, Linux, Mac)
  • Web Page (WebGL)

Przy okazji warto wspomnieć, iż Internet Explorer nie wspiera technologii WebGL, a najnowsza często wręcz wyklęta przeglądarka Microsoft Edge – jak najbardziej. Jest to druga z funkcjonalności, z której korzystam w Edge, oprócz zapisywania całych stron jako obrazki.

 

The following two videos complement the previous blog entries where I showed how to compile a project in Unity as a Universal Windows Platform or for Android. They present compilations / build for:

  • PC (Windows EXE, Linux, Mac)
  • Web Page (WebGL)

By the way, it is worth mentioning that Internet Explorer does not support WebGL technology, and the latest Microsoft Edge browser – support it. This is the second feature I use in Edge, in addition to saving whole pages as pictures.

Unity – Build / Compile project to Universal Windows Platform (Windows 8 10, Windows Mobile, XBOX One) and publish it to Microsoft Store

W tym Video zobaczycie jak krok po kroku skompilować projekt w Unity, tak aby następnie można było go otworzyć w Visual Studio jako projekt Universal Windows Platform. Powyższa procedura pozwoli nam uruchomić tak skompilowany projekt na Windows 8,8.1,10, Windows Mobile czy też na XBOX One. Pozwoli to nam też na publikacje projektu w Microsoft Store, co też pokazujemy na przykładzie https://www.microsoft.com/en-us/store/p/maze-ball-3d-for-xbox/9pcpljbg2s83.

 

In this Video you will see how to compile a project in Unity step by step, so that you can then open it in Visual Studio as a Universal Windows Platform project. The above procedure will allow us to run such a compiled project on Windows 8.8.1.10, Windows Mobile or on XBOX One. This will also allow us to publish the project in the Microsoft Store, which we also show on this example https://www.microsoft.com/en-us/store/p/maze-ball-3d-for-xbox/9pcpljbg2s83.

Unity – Build / Compile project to Android and publish it in Google Play Store

W tym Video zobaczycie jak krok po kroku skompilować projekt w Unity, tak aby działał na Android. O ile jest to dość standardowa czynność, to iż publikacja programy w Goole Play może nie być taka prosta, a to głownie dlatego, iż tak wygenerowany APK trzeba podpisać. W poradniku tym znajdziecie również jak to zrobić. Procedurę tę możecie zastosować do dowolnego APK, również już wcześniej podpisanego, a nie tylko do tego wygenerowanego z Unity. Patrz procedura Step by Step.

 

W czasie tego Video kompilujemy i publikujemy tą grę do Google Play.

 

Complete real world example how to build project in Unity and publish it to Google Play Store. During this Video this project has been published https://play.google.com/store/apps/details?id=com.fastsms.Kula

 

This Video include also solution for:

  • failed to Sign APK package
  • apksigner.bat error class
  • unable to sign the application
  • Could not create the Java Virtual Machine
  • Unity Sign Package Error
  • not zip algned

Step By Step used in Video:

  1. Open APK file using 7-zip.org or any ZIP archiver and delete META-INF directory (see Video)
  2. cd C:\Users\mf\AppData\Local\Android\sdk\build-tools\25.0.3 (assume that you have Android SDK here)
  3. zipalign -p 4 “C:\Buildy\Android\MazeBall3d.apk” “C:\Buildy\Android\MazeBall3d-alg.apk”
  4. cd %JAVA_HOME% (I hope that you have JAVA_HOME system variable definied – if not see Video)
  5. cd bin
  6. jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore “C:/Users/Public/Documents/Unity Projects/projekty/powrot kuli konkurs/MazeBall/keystore.keystore” “C:\Buildy\Android\MazeBall3d-alg.apk” “fast-sms.net”
  7. cd C:\Users\mf\AppData\Local\Android\sdk\build-tools\25.0.3
  8. zipalign -p 4 “C:\Buildy\Android\MazeBall3d-alg.apk” “C:\Buildy\Android\MazeBall3d-alg2.apk”
«< 5 6 7 8 9 >
Projekt i wykonanie: Mobiconnect i fast-sms.net   |    Regulamin
Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.Zgoda

Added to Cart

Keep Shopping