As Microsoft Office 365 (Cloud) continues to grow and expand, its workload continues to be adopted as well. Those were the days (or maybe till now), where emails (Exchange) are treated as the *only* and primary communication tool, now, more and more organizations are also adopting to Real-Time Communication (Lync, Skype for Business) as part of their operation workforce as well.

In most of my engagements, most organizations only has Lync/Skype for Business Server On-Premise without enterprise voice enabled, and most of them opt to ‘move’ directly to the cloud without any co-existence or migration from the On-Premise servers. Hence, you’ll notice that users whom has their account enabled on Lync/Skype for Business Server 2015 will not appear at the Admin Center, even though the Skype for Business Online Cloud has been enabled.

A workaround for this is to remove any existing Lync/Skype for Business entries from the user object:

Disable the user from any existing Lync / Skype for Business Pool Server. Make sure to click on Commit to save the changes

 

 

 

 

 

 

 

 

 

Next, launch the adsiedit console. Locate the user and clear the following entries:

  • msRTCSIP-DeploymentLocater
  • msRTCSIP-FederationEnabled
  • msRTCSIP-InternetAccessEnabled
  • msRTCSIP-OptionFlags
  • msRTCSIP-PrimaryHomeServer
  • msRTCSIP-PrimaryUseraddress
  • msRTCSIP-UserEnabled
  • msRTCSIP-UserPolicies
  • msRTCSIP-UserRoutingGroupId

 

 

 

 

 

 

 

 

 

*Should you encounter any errors during the clearing process. Close the object property window and re-open it and continue where you’ve left off

Once the attributes are cleared, make sure the Active Directory are fully replicated and initial a Delta synchronization from the Azure AD Connect. The user should now appear at your Admin Center and would be able to login to the Office 365 Skype for Business Online Services!

Advertisements

With Cloud on the ‘loose’, Microsoft has offered a very flexible platform which allows organizations to easily subscribe for trials or even register for a tenant on the fly. However, without a proper clean-up would create additional hassles and steps, especially if the Global Admin is no longer around or the login credential has been misplace – and this what happened to me in a recent Office 365 engagement.

In this implementation, we were supposed to activate the actual domain (Example: mydomain.com) to a new Ofifce 365 tenant. However, when attempting to associate the corporate domain into the Office 365 tenant, the portal had detected that our domain has been used and activated with another tenant – for Microsoft Power BI purposes, to make things complicated, nobody knows whom own the other domain.

To ‘regain control’ of the corporate domain, we’d to create an automated generated TXT record to proof that we’re the actual and will be the Global Admin taking over the Power BI tenant. After which we’d to remove the corporate domain that has been configured with the Power BI tenant but were thrown with an error message:

Dependencies on domain. To remove this domain, you’ll have to remove the following dependencies first.

Remove_Domain01

When expand, the alias and Skype addresses indicate the users which has been assigned within the tenant, although there wasn’t any Exchange Online and Skype for Business Online licenses are available. In the end, we’d to use PowerShell to remove the corporate domain:

  • Connect-MsolService
  • Remove-MsolDomain -DomainName $mydomain.com -Force

Refresh the Admin portal and we manage to remove the corporate domain that was initially assigned to the Power BI tenant and ‘migrated’ it to the actual Office 365 domain.

This is a continuity from my previous post on sharing my experience in dealing with Web Proxy and Office 365. You may browse through or select the following topics:

  • Office 365 & Web Proxy Part 1 – Conceptual Design & Preparation
  • Office 365 & Web Proxy Part 2 – Prepare Symantec .Cloud Web Gateway for Office 365
  • Office 365 & Web Proxy Part 3 – Setting up the Symantec Client Side Proxy & Cloud Web Gateway
  • Office 365 & Web Proxy Part 4 – Setting up Firewall for Office 365
  • Office 365 & Web Proxy Part 5 – Troubleshoot Skype for Business Online with Cloud Web Proxy

In this chapter, these are the components that are made up to make the solution work:

  1. Active Directory Users & Security Groups
  2. Symantec Directory Synchronization Tool (SCHEMUS)
  3. Active Directory Group Policy Object (GPO)

The key essence in this deployment is identifying the types of URLs or Web Categories that the users would be allow and prohibited to access, so before we begin the building the web policies, it is extremely crucial to identify the groups of users and types of materials (URLs) that they needed to access to ensure both productivity and restrictions are applied according to the corporate policies.

To start off, I’ve created the security groups, using the this format: Web-XYZ, where Web indicates for Web Proxy while XYZ stands for the type of access. For example: Web-YouTube, where users in this group are allowed to access to YouTube. Placed all of these groups into a dedicate OU which we’ll be using Symantec Synchronization Tool (SCHEMUS) to synchronous to the Symantec .Cloud. For general guideline, you may structure / plan the Security Groups in this manner:

  • Web-YouTube
  • Web-SocialMedia
  • Web-PublicWebMail
  • Web-BasicWeb

Once the security groups has been created, install SCHEMUS onto a designated system, SCHEMUS doesn’t required much resources so you may collocate with the Azure AD Connect which performs the same synchronization activity the cloud.

Configuring SCHEMUS very much similar to Azure AD Connect – select the OU Container (best practices) which holds all of your users and security groups:

1. Give a Name to the Synchronization (e.g. Sync Web) and select Users at the synchronization type column

schemus01

2. Select Microsoft Active Directory as the Source Type

schemus02

3. Fill-up the hostname of your Domain Controller along with your Domain Admin’s Username & Password

schemus03

4. Select the OU that you’ve store all of your corporate Users

schemus04

5. At the next screen, SCHEMUS will attempt to query a list of sample users from the last selection that you’ve made. If you’ve confirm that the queried objects are correct, move on to the next screen

6. Select Symantec .Cloud at the Repository Type

schemus06

7. During the initial launch after installing SCHEMUS, you’ll be prompt for Symantec .Cloud user credentials to activate the application. So can continue with the wizard by leaving this option on its default configuration.

schemus07

8. If you need to omit any objects in this synchronization, key in the filters or leave the values blank (default)

schemus08

9. Leave the limits to its default unless you’ve a good reason to limit the number of users that needs to be synchronized

schemus09

10. I would highly recommend that you configure the notifications for any synchronization failures as the synchronization tasks will be perform based on scheduled – which is similar to Azure AD Connect. Key in your SMTP relay server (I’m assuming that no active mail server are still available as we’re moving to Office 365 – duh!)

schemus10

11. On the final configuration screen of SCHEMUS, click on Verify to make sure all of the configuration are working as expected

schemus11

If everything is successful, you should get the (similar) screen as mine

schemus14

12. Schedule the synchronization tasks based on your desired time

schemus12

13. Click on Save to complete the synchronization for Users. Repeat Step 1 – 13 for Groups and Mail (if any)

14. Click on Update at the left of the SCHEMUS window screen and you should be able to see the list of users and groups being synchronized to the Symantec .Cloud

Next, we move on to configuring the Symantec .Cloud CA Root certificate, this is to allow HTTPS inspection when users attempting to browse to any HTTP Secure Sites. Grab the file from your ClientNet portal > Tools > Downloads

Symantec Web Security Cloud Root CA

After downloading it, publish it to all domain member workstations, desktops and / or laptops via the Active Directory GPO:

Computer Configuration > Windows Settings > Security Settings > Public Key Policies > Trusted Root Certification Authorities

Import the downloaded Symantec Web Security .Cloud Root CA and all domain members machines will automatically download it to the local certificate store, this would allow all major browsers – Internet Explorer, Google Chrome & Microsoft Edge (Except FireFox) to automatically recognizes and accepts the certificate when the HTTPS inspection triggers at the Cloud level. I would recommend to link the Policy at the designated OU which you’ve stored all your client machines; if you’d been leaving the machines at the default container – Computers, update the configuration using the Default Domain Policy GPO.

symantec_rootca_gpo

Now that the core elements are in-place, we’ll now proceed to the next topic on configuring the Client Side Proxy (CSP) and setting up rules and policies at Symantec .Cloud Services.

As Office 365 (Cloud) Solution & Services are getting very common to most organization, restricting and controlling of bandwidth to ensure users’ experience are not impacted – as compared to the traditional method where internal communications are deemed to be seamless, where connectivity are between 100 Mbps to 1 Gbps.

This time around, I’ll be sharing a recent implementation that involves with Office 365 and Symantec Cloud Web Proxy:

In this engagement, the client has subscribe onto a mixture of Office 365 Business Essential, Exchange Online Plan 1 and Exchange Online Kiosk, with a total of 600 users within the organization. The plan was to migrate the existing on-premise Exchange Server 2007 to Exchange Online, activate all workloads and subsequently enforce the web browsing usage – this is to ensure the users’ experience while using the Cloud are not impacted by non-productive web browsing during office hours. (e.g. Audio & Video Streaming). Hence, two (2) elements are involve – The firewall and cloud-based web proxy.

To get things started, the following components has been deployed in the infrastructure:

  1. Active Directory – GPOs are highly used for this deployment
  2. WPAD script which has been customized and published onto a Windows Server 2012 R2 Internet Information Services (IIS)
  3. DHCP with option 252 enabled and mapped to the Web Server
  4. Symantec .Cloud Web Gateway subscription
  5. Symantec Directory Synchronization Tool (SCHEMUS)
  6. Symantec Client Side Proxy with customized configuration with the bypass URLs. The Symantec CSP underlying core runs on SQUID Services where most of the configuration are highly customizable
  7. Fortinet Firewall

Working mechanism:

office-365-symantec-cloud-web-proxy_01

  1. The DHCP Servers distributes the WPAD script as part of leasing IP addresses to the endpoints (during boot-up). The browsers will then make HTTP / HTTPS requests either directly to the Server Farm (Internal Web Servers) or through the Symantec Client Side Proxy (CSP).
  2. Based on the configuration and policies (ACL) within the Symantec SCP, the browsers either gets to entirely bypass without any authentication OR basically passes through the Symantec .Cloud Web Gateway for web filtering.
  3. In this scenario, we’ve set ALL Office 365 URLs and a set of the organization’s permitted web sites (e.g. Banking Sites) where web traffics will basically bypass the Symantec .Cloud Web Gateway filtering policies while the rest will be tunneled to the Cloud Gateway before reaching to the Internet

Before starting Part 2, is it important to identify the list of frequent URLs with their associated user groups to it, types of non-browser based applications and services, IP subnets and Web Browsers used within the organization; so far, Internet Explorer, Microsoft Edge, Google Chrome & Safari doesn’t impose any compatibility issues with the above infrastructure, however Mozilla Firefox requires attention and additional steps in order to get the browser working with the Cloud Proxy.

Finally, a lighter version of the Persistent Chat (within Skype for Business Server / Lync Server) is launched which can be easily activated with a simple flip of a switch. Microsoft Teams was launched earlier this month as part of the Office 365 subscription – which is available on Business Essentials, Business Premium, Enterprise E1, E3 and E5. (Reference: Introducing Microsoft Teams)

If you happen to be on either of the subscribed plan(s) mentioned earlier, login to your Office 365 Admin Center and follow the step-by-step guide:

Admin

  1. At the Admin Center, Select on Apps > Microsoft Team
    MS-Teams01
  2. “Flip” on the ON switch at the top right and click on Save
    MS-Teams02

 

So when that’s done, download the Microsoft Teams client App here and you can start creating your own Virtual Groups / Teams and start collaborating!

MS-Teams03

Hello and Happy Monday! Yes, I know and I’m sorry that I’d left my blog “in the cold” as life-work and business has took away most of my time since I’ve started my own (Woo-Hoo!). In this article, I’m about to share about another Cloud platform which involves integration with Microsoft Office 365.

As the industry “all” moves to the cloud, the dependencies of deploying and configuring Cloud platforms gradually increases as well.

Recently, I was involved with an Office 365 with Symantec.Cloud integrated (Mail & Web) and we’d to setup a Schemus Server (similar to Microsoft’s Azure AD Connect) which synchronizes the Active Directory’s Users and Objects to Symantec.Cloud platform. Activating the tenant was pretty straight forward as we already had the tenant ready during the evaluation stage (Proof-of-Concept), next thing is to configure Schemus.

While trying to establish the relationship between the Symantec.Cloud with Schemus, the following error message was presented on the setup window:

Symantec.Cloud_SchemusError

 

 

 

 

 

Can’t access the Symantec.Cloud service. There was a problem communicating with the Symantec.Cloud service server: WS Security The message has expired (WSSecurityEngine: Invalid timestamp The security semantics of the message have expired)

To resolve this issue, make sure the following entries are in-place:

  1. If you’ve recently changes your password for Symantec.Cloud service, update your most recent password at Schemus Configuration OR at the Schemus Windows, click on Edit > Settings > Symantec.Cloud and modify password field
  2. Make sure that the specified URL is accessible and not filtered/blocked by the Firewall
  3. System Time is the same as the Internet time

Symantec_SchemusUpdate

 

 

 

 

 

We ran into the issue on item #3 and what we’d to do was just simply modify the system clock and click on Apply. Close the Schemus and re-launch the settings window and Walla! the problem went away. Based on Symantec Technical Support, updating the system clock to establish the communication with Symantec.Cloud is only one-time off, so for those organizations whom aren’t following the Internet time, the Schemus server would be able to resync its time with either the Active Directory or NTP Server.

I’ve just notice my past articles that on Skype4B / Lync Room Systems, it appears that I’ve missed out a guide on how to provision the Room System via Office 365. To perform this tasks, it is assume that your tenant has an Exchange Online Plan 1 with Skype for Business Online Plan 1 (Office 365 Business Essentials / Premium / E1 / E3 / E4) in-place.

  1. First, logon to your Office 365 Admin Portal and launch the Exchange Admin Center page
  2. Create / Provision an Resource (Room) Mailbox.  Give the ‘Room’ a name (example: MY-KUA-Meeting Room) and an Email Address (Mandatory). The rest of the fields are optional
  3. Once complete, launch the Windows Azure Active Directory Module for PowerShell as Administration (Run As Administrator)
  4. Key in the following command line:

Set-ExecutionPolicy Unrestricted
$org=’yourdomain.com’
$cred=Get-Credential admin@$org
$sess=New-PSSession –ConfigurationName microsoft.exchange -Credential $cred -AllowRedirection -Authentication basic -ConnectionUri https://ps.outlook.com/powershell
Import-PSSession $sess
$rm=’MY-KUA-MR@$org’
$password = Read-Host “Enter password” -AsSecureString
set-Mailbox -Identity $rm -type Room -EnableRoomMailboxAccount $true -RoomMailboxPassword $password
Set-CalendarProcessing -Identity SmartRoom -AutomateProcessing AutoAccept
Set-CalendarProcessing -Identity SmartRoom -AddOrganizerToSubject $false –DeleteSubject $false

Close the PowerShell window screen and login using the account that has been provisioned earlier onto the Room System.

 

I would like to thank all of my friends & visitors whom visited (or still visits) my site. I hope the materials posted are helpful and your continuous support are highly appreciated!

Here’s a summary of how my Blog Site throughout 2015:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 35,000 times in 2015. If it were a concert at Sydney Opera House, it would take about 13 sold-out performances for that many people to see it.

Click here to see the complete report.

After months of the official launching of Windows 10, since it was a public holiday yesterday and I finally get to “cool off” myself to run an upgrade my DELL Latitude E7440 running on Windows 10 Insider Preview to a RTM. As most laptops doesn’t come with any DVD ROM (including mine) any longer, all I’d to do is extract the ISO contents into a USB thumb drive and run the bootsect cmdlet to make the USB bootable.

I’d an existing partition from a single disk and I’ve stored most of my important files & documents on the second partition, so all I’d to do is select the partition which I intend to wipe out and give a fresh installation to my laptop during the Windows 10 wizard setup. Well… life isn’t that straight forward as expected when I’d selected the partition that I’d wish to install Windows 10 after deleting a couple of other partitions from the previous setup, the wizard had stopped me from moving forward with the following error message:

Windows cannot be installed to this disk. The selected disk is of the GPT partition style

OK – this isn’t good as I’d not make any external backups of my files and I can’t wipe off the entire disk (the second drive is actually just a partition) to convert it to MBR so allow the Windows 10 setup continue. At first I thought it was due to the UEFI hardware compatibility issue, so I’d tried changing the BIOS settings into allowing legacy devices but no luck, the wizard still returns with the same error message and selecting the second partition doesn’t help as well (Duh, the entire disk has been GPT’ed)

A quick search on the Internet saved my day – basically there’s a tool known as Rufus actually allows to abstract ISO images and create into a bootable USB. Using this sneaky little tool, all I’d to do is select the following settings on Rufus:

Rufus ISO Bootable

  • Select the USB thumb drive that you intend to extract the ISO contents into
  • GPT Partition schema for UEFI (*IMPORTANT*)
  • NTFS File System
  • Select the Windows 10 ISO image
  • Leave the remaining options to its own default values
Click Start to create the Windows 10 USB Bootable Media and there you go, another Windows 10 into an existing laptop 🙂

My colleague and I were running a project of Office 365 with a given THIN timeframe, we’d ran a couple of research looking for scripts to enable the Office 365 Users with the appropriate license and customized to fit into ours and I would like to take this opportunity to share this to those who need help on this as well.

With the given scenario & environment:

  • Running on Azure ADSync & ADFS 3.0
  • All User Objects has been synchronized to the Office 365
  • You manage to export all of the sync users into a CSV format

To do this, launch the Azure Active Directory module for PowerShell:

  1. Connect to the Microsoft Online Services (Connect-MSOLService)
  2. Find out what SKU or Plans that you’re entitled or Subscribed using Get-MSOLAccountSKU. The PowerShell cmdlet should return you with the following format: Tenant:ENTERPRISEPACK
    MSOL-License01
  3. Next, declare the environment variables for Path where the CSV is stored and the type of License queried earlier at Step 2
    $path = “<Drive Letter>:\Filename.csv” (“D:\MSOLE3.csv”)
    $lic = Tenant:ENTERPRISEPACK
    MSOL-License02
  4. Now, you’re ready to assign the licenses with this cmdlet
    Import-Csv $path | foreach {Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses “$lic”} -Verbose
  5. Once it is done, verify the licenses are correctly assigned:
    Import-CSV $path | Get-MSOLUSer | Out-GridView

MVP Logo

Follow me @Twitter

%d bloggers like this: