- If you use the Library feature in Windows 7 on remote files/folders, it requires indexing on the file/folder server which is only supported in Windows Server 2008(R2) or on Windows Server 2003 with Desktop Search 4.0. This is because the library feature needs to have a indexed source folder in order to know where your files are located. To have your Windows 7 client do this, will mean that you need to have 24*7 access to these folders and that's usually not the case.What you can do to have it work is to enable offline folder synchronization on the share you will need to access. This will make a offline copy of the share on the Windows 7 client, so that your client can do the indexing on the folder. Unfortunately this means that you will need a time to time replication to your share on your NAS device.In my understanding i have never seen a third party NAS device with CIFS sharing that can index on your file/folders and have Windows understand it.
- The library feature is not deploy-able via a GPO. This makes the Central Management of Libraries in Windows 7 a hard one. The philosophy behind Libraries i think is that it's a user feature. If users know what the advantages of properly set libraries are, they will need to create and manage them there own.
Libraries in Windows 7
Aanmaken SSL certificaat voor Outlook Web Access via Shell
- Genereer een nieuwe Certificate Request (CSR) via Exchange Management Shell doormiddel van de volgende command line:
New-ExchangeCertificate -GenerateRequest -Path c:\webmail.req -SubjectName "c=NL, o=<klantnaam>, cn=<publicdomainname>" -DomainName <publicdomainname> -PrivateKeyExportable $true
Uitleg variabelen:
Path= | het pad waarnaar het request bestand naartoe weggeschreven moet worden |
C = | Land van herkomst |
O = | Naam van de oganisatie zoals deze bij de KvK geregistreerd staat (kijk op www.kvk.nl voor de handelsnaam) |
CN = | De publieke fully qualified domeinnaam waarop OWA wordt aangeboden |
Domainname = | De publieke fully qualified domeinnaam waarop OWA wordt aangeboden |
- Vraag bij www.sslcertificaat.nl een Comodo MobileSSL certificaat voor 3 jaar aan;
- Installeer de Extra Certificaten voor Trusted Root en Intermediate Root in de Certificate Store op de Exchange Server
- Kopieer het via de mail aangeleverde SSL certificaat naar d:\install\ssl op de Exchange Server en geïmpor het in de Exchange Management Shell met commandline:
Import-ExchangeCertificate <d:\install\ssl\ bestandsnaam.crt>
Opmerking: Indien Exchange 2007 op een Windows Server 2008 machine geinstalleerd staat, moet het ssl certificaat als administrator geinstalleerd worden. Dit kun je doen door de Exchange Console met rechtermuisknop en dan voor “run as administrator” te kiezen.
- Certificaat geschikt maken voor OWA en mogelijk ook SMTP
Enable-ExchangeCertificate -Services “SMTP, IIS” –Thumbprint <thumbprint van het ssl certificaat> (Deze kan opgehaald worden met het commando get-exchangecertificate)
- Exporteer het SSL cetificaat voor OWA met private key op de Exchange Server
Creating a wildcard webserver certificate with your internal CA
The question you'll probably ask yourself is "Why do i need this?". Well the answer is simple. You probably don't want to use this certificate in a production environment, but you can use it for testing purposes without having you to buy a expensive commercial wildcard certificate. Espessially when the test results are having you deciding that a wildcard certificate is not the way to go.
This type of certificates is also very usefull in a Microsoft Exchange Server 2010 environment, when you are publishing your Office Web App and/or Activesync with an application firewall such as Microsoft Forefront Unified Access Gateway (discussed in a later article) or Microsoft Forefront Threat Management Gateway (TMG).
Since Microsoft Exchange Server 2010 needs a certificate with multiple subject names for the use of technologies like: "AutoDiscover, Outlook Anywhere, Office Web App and co-excistence scenario's between Exchange Server 2003 and Exchange 2010 (legacy scenario)", using a wildcard certificate eliminates the need of create multiple virtual directories (with IP adresses) and certificates with multiple subject names.
During this proces we are going to create a custom certificate request and proces the request on the internal CA WWW Publishing Service. This article will guide you through the process.
- First you will need to logon to a Windows 7 or Windows Server 2008 R2 domain member machine;
- Now open the certificates mmc snap-in using mmc.exe.
Note: During the snap-in add it doesn't matter which account you select because it's only for the creation of the request. It's recommended to use the mmc snap-in on the machine where you are going to use the certificate and also to use the local computer account to proces the request on. This will make it easier you you in a later stadium to import the certificate.
- Next expand Certificates > Personal and right click on Certificates and choose for All Tasks > Advanced Operations > Create Custom Request;
- In the Certificate Enrollment Wizard click Next on the Before you Begin page;
- In the Select Certificate Enrollment Policy page, choose Custom Request > Proceed without enrollment policy and click Next;
- In the Custom Request page the Template (No template) CNG key is selected. Change this to (No template) Legacy key and click Next. (You can leave the Suppress default extensions checkbox empty and the Request format to PKCS #10);
- In the Certificate Information page click on Details on the right site next to Custom Request to fold it down and click on the Properties button;
- In the General Tab fill in a Friendly name of the certifiate and a Description for the purpose of the certificate. This information is visible when your viewing a certificate. You can fill in whatever you like, although it's recommended to use recognizable information such as *.contoso.com;
- In the Subject Tab you will need to fill in the following information under Subject name. The following table shows you the Type and Values you will need to fill in. (These values are examples)
Type: | Value: | Description: |
Common Name | *.contoso.com | The name of the certificate. This field is used to identify the certificate. Adding the * before the domain name indicates a wildcard certificate for that domain. You cannot use this when you are using sub-domains. When you are using sub-domains you will need to create a wildcard certificate for that domain. |
Organizational Unit | IT | The name of the OU. In most cases this is the IT department |
Organization | Contoso Corp. | The name of the Organization where the certificate is for. When you are going to request a commercial certificate the information needs to be the same as registred at the Chamber of Commerce since most certification authorities cross-check this information. |
Location | Seattle | The location of the registred location of the organization. Check your Chamber of Commerce. |
State | WA | The State of your organization |
Country | US | The country of your organization |
- In the Extensions Tabselect:
- Under Key usage select the options Digital Signature and Key encipherment. Deselect the option Make these keys usages critical.
- Under Extended Key Usage (application policies) select the option Document Signing;
- In the Private Key Tabselect:
- Under Key options select the Key Size (depending on how secure you want the encryption. Default in Microsoft Environments is a key size of 2048). Because you want to be able to export the certificate for backup purposes select the option Make private key exportable. Leave the other options cleared.
- Under Key type change the value to Exchange.
- After you have filled in all information click OK;
- Back in the Certificate Information page click Next;
- Now fill in the path and filename where to save the certifcate request file (It's recommended to save the file with the extension *.txt because you need to copy the information in the file with a text editor such as notepad) and leave the file format Base64 and click Finish;
- Now the request is created. Browse with explorer to the file and open it with your default text editor;
- Select all information in there and copy it;
- Open a new browser session (preferably Internet Explorer) and browse to your Certification Authirity Web Service (example: https://server1.contoso.com/cersrv);
- On the page click on the task Request a Certificate;
- Click on the task advanced certificate request;
- Click on the task Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file;
- Paste the copied information in the Saved Request field;
- Under Certificate Template select Web Server and click Submit;
- In the next screen download the certificate. (If you are going to use the certificate on a domain machine you don't need to download the certificate chain because te CA is already in the Trusted Root Certification Authorities);
The certificate is now ready to use.
Running 64-bit Powershell scripts via SCCM
When i started my project, i thought (as probably every newbie with SCCM) i just needed to create my scripts and then make a package and a program to run it in SCCM. It should work you think. The problem is unfortunately that SCCM is not 64-bit. Therefore if you advertise a program/script via the normal routine, it starts a 32-bit process. This however creates problems when you want a script to install windows features or anything else via powershell that requires the 64-bit version of powershell.
The solution to this is quitte simple actually. You just need to create a task sequence and add a "Run Command line" task and put the following command in:
powershell.exe <path to script>
Note: If the path to your script is on a central network repository you need to fill in the complete networkpath.
After adding the command select "Disable 64-bit file system redirection". This option allows 64-bit applications to run as 64-bit applications instead of redirecting it to the 32-bit version.
This is it actually.
Pretty frusty to see that i needed to spent so many hours on this :S. This is also because the logging in SCCM is pretty poor. But that's my opinion ;)
Five things to reconsider when designing Exchange Server 2010
When it comes to designing a new Exchange Server 2010 environment, a lot of techies think that this isn’t so hard. They just think “Let’s put some servers and install some Exchange roles on it and the job is done”. Especially when installing these servers in a virtual environment like VMware or Hyper-V these things happen. Techies often think hey it’s virtual, therefore my design boundaries are unlimited. Well wrong, wrong, wrong thinking.
Therefore I have created a list with some things you don’t do when implementing Exchange Server 2010.
I could write whole book about this subject but some things just take experience and expertise to do the job properly.
- Don’t think Exchange 2003 or Exchange 2007 like;
A lot of engineers or IT administrators think that if they have 1 Exchange 2003 server in their current environment, it will automatically does the trick when implementing 1 Exchange 2010 Server in their new environment. In some cases this can actually be true, in most cases however it isn’t. Because Exchange Server 2010 is using 64-bit architecture, the load of the server(s) running Exchange on it will automatically be higher.
The other fact you see a lot is the quote “Hey I have this set-up in Exchange Server 2007, let’s do the same thing in Exchange Server 2010”. Why this is wrong thinking? Well first of all Exchange Server 2010 is not Exchange Server 2007. As Exchange Server 2007 was considered as a pretty unstable messaging system, especially when working with CCR clusters, Exchange Server 2010 is not. Microsoft made a lot of improvements in for example database optimization by removing SIS (Single Instance Storage). Because of this, Microsoft realized a IOPS win of 85%. Another mayor improvement is the realization of DAG (Database Availability Groups). Creating a DAG to fore fill your HA needs is pretty simple, however designing the optimal DAG configuration does take some consideration.
- Don’t install all Exchange roles on as many servers you can find;
When it comes to Exchange Server 2010 it is best practice to deploy multi-role servers in almost all circumstances. The great thing about Exchange Server 2010, also mentioned in the previous remark, is that because of the mayor improvement of IOPS load it is not needed anymore to install all roles separately. Another advantage of multi-role servers, is that if for one reason you need an extra server, you can just install a new one which is exactly the same as your current Exchange servers. This makes your administration and documentation easier and hey we all want that right.
- Think to easy about HA (High Availability);
Never think to easy about HA. Installing two CAS or HUB servers, doesn’t automatically gives you HA. You always need to consider a proper load-balancing solution. Best practice is a hardware load balancer, or when running virtual a virtual hardware load balancer. Why? All clients are using your CAS server(s) to contact their mailbox and Exchange organization information. Think about what happens when a client is switched to another IP by switching to wireless or when a client is connected via outlook anywhere and gets a new IP address from it’s provider or when the request is going to one CAS server and the reply is coming from another. You don’t want this. Another reason to think about load balancing is service provided failover. When a services of one Exchange CAS or HUB transport server is not available, a hardware load balancer is aware of this and will automatically redirect traffic to the remaining servers in the load balancing server. This could also be nice if you want to put one server into maintenance to update or something else.
- Don’t forget security from outside boundaries;
A lot of Exchange admins think hey Exchange Server 2010 is secure, why the need of a reverse proxy? Well pretty simple. Your CAS server for example are domain joint servers which are in all cases located in your internal network. What happens when a potential unwanted individual is able to use a backdoor on your system? Right this individual is now on the internal network with access to your complete Active Directory and all the information what’s in it. You don’t want this. Therefore always implement a proper reverse proxy solution like Forefront TMG or UAG to protect your internal network.
- Design by need;
Before deciding on how many servers, how much storage, how much memory and how many CPU is needed, always write down the following facts:
- How much mailboxes do you have in your organization?
- What is the total amount of mail data in your organization?
- How many e-mail does an average user receives / send per day?
- Do you have any quota’s or does you organization wants any?
- Is your organization using pst files as archives?
- If yes how much storage do all pst files take?
- Is there any way to clean up all mailboxes before migration?
- Are you still using an older version of Outlook then Outlook 2007?
- Etcetera…
Having these facts written down gives you a better understanding in the circumstances that you need to consider when creating you design.
In all cases, leave your thoughts and experience with previous Exchange Server versions as they are and try to look into the new technology features and design recommendations. If you are uncertain in how to do it, just hire a consultant or architect specialized in Exchange Server solutions, like me ;).
Change the UPN of a federated user after user has been synced to Office365
However in some cases you may want to change the UPN after the initial DirSync anyway, for example:
- When you're companies history lacks correct user registration (names are not correct);
- When a user changes their lastname when he/she get's married and wants to use that name when logging in.
In this case it is possible to change the UPN of the user in the federated domain. However again this is not recommended. Here is how you do it.
- Login on the primary federation server;
- Open powershell;
- Import the MSonline powershell module "import-module msonline";
- Run the change UPN cmdlet "Set-MsolUserPrincipalName -UserPrincipalName [CurrentUPN] -NewUserPrincipalName [NewUPN]"
See also Microsoft Support article KB2523192 for more information on this subject.
DirSync: Preparing all UPN's required or not?
In that guide you will read that you need to make some preparations to your Active Directory.
One of these preparations is making sure the UPN of all users is properly set to a routable domainname. For most organizations however this could be a real challenge. In the beginning of Active Directory (somewhere in the early 21st century), it was a recommendation by Microsoft to create a FQDN that was not the same as your public domain name (non-routable). However things changed over the years and last year Office 365 came out.
To setup DirSync for synchronization of your Active Directory objects, it requires you to create a UPN for all users that is internet routable. That means that the UPN must be set to @publicdomainname.
In some organizations this is a challenge because the user part of the UPN is, over the years, incorrectly administrated or is changed often due to marriages or divorces. And because the UPN will be used to login to Exchange online, you probably want this to be set correctly. What however is unclear in the documentation, is what will happen if you don't set the correct UPN before configuring DirSync.
From my personal experience. In first case. I still would recommend to set the UPN of all users before configuring DirSync. However if you are in a situation that requires you to proceed because the customer is not ready yet, it is possible to set the UPN later and configure DirSync.
Please be advised that if you do this DirSync will create errors during the sync. These errors will be written to the eventlog of the DirSync server. Besides that DirSync tries to synchronise every 3 hours. After the sync, DirSync e-mails all Administrators a summary report of the sync. In this report you will see the errors too.
If you setup DirSync without a proper UPN, DirSync will synchronize all AD objects and creates a "@name.onmicrosoft.com" UPN.
If you don't want to have errors during the syncs you can also choose to only configure the domain part of the UPN and change the user part later. This will result in a successful sync without any noticeable errors.
I have created a script that prepares the UPN of all user objects with a proper domain.
<# UPN Change Script (PS_CRI_ChangeUPN_v0.1.ps1) Author: Cor (C.J.H.) Reinhard Copyright: 2012, Unauthorized use from author prohibited Version: 1.0 - Final Create date: 31-01-2012 Last modification date: 31-01-2012 Notes: Make sure script execution is set to unrestricted by running "Set-ExecutionPolicy -ExecutionPolicy unrestricted -Force" Make sure to run this script from within the Exchange Server 2010 Management Shell Change history: 31-01-2012: First and final version, v1.0 #> $odom = "<current domain FQDN of users>" $ndom = "<public/new domain FQDN of users>" $usr = Get-user function Change-UPN { ForEach ($upn in $usr){ if ($upn.UserPrincipalName.Contains($odom) -eq $true){ Write-Host"Current user" $upn.Name "has UPN" $upn.userprincipalname $newupn = $upn.UserPrincipalName.Replace($odom,$ndom) set-user $upn -UserPrincipalName $newupn Write-Host"UPN" $newupn "set for" $upn.Name -ForegroundColor Green } } } Change-UPN |
After your customer or organization has made up their decision in which UPN they will use, you can change the UPN by following my previous post "Change the UPN of a federated user after user has been synced to Office 365"
Good luck and enjoy!
Offloading mailboxes from Exchange Online to on-premise Exchange Server2010
This was clearly a bug in Exchange Server 2010 SP2.
After some research this error is created because during the initial mailbox creation the mailbox GUID of the Exchange Online Mailbox is not set in the remote mailbox user properties. This will end up in a GUID mismatch (appearantly the move mailbox action uses this property to match the ID's of the user) and the move mailbox action end with the error "Exception has been thrown by the target of an invocation."
There is a workaround for this problem by creating a remote powershell session, recieving the mailbox properties of the user mailbox that needs to be moved, copy the GUID and pasting it manually in the remote mailbox properties in the on-premise environment. See http://community.office365.com/en-us/w/exchange/566.aspx for more information on how to do this.
As you can imagine, this workaround is pretty time consuming and not very efficient if you need to do this for more then 50 users at the same time.
Now since last week Exchange Service Pack 2 Update Rollup 3 (UR3) is out and this issue is allocated on the fix list. See http://support.microsoft.com/kb/2698960
I advise you all to install UR3 as soon as possible. You can download UR3 for Exchange Server 2010 SP2 at http://www.microsoft.com/en-us/download/details.aspx?id=29899.
If you have a Multi server Exchange Environment, please be aware to install UR3 on all nodes in the same maintenance window to avoid rare problems.
For a complete list of all issues fixed in UR3 see http://www.microsoft.com/en-us/download/details.aspx?id=29899
Could not bind port 80 on TMG with Windows Server 2008 R2 SP1
The following post will guide you thought the issues i had and give you a solution to this problem.
During the installation of Service Pack 1 for Windows Server 2008 R2, the installation automatically installs the .NET Framework 3.5.1. feature. A side effect of installing this feature is that the "Web Server (IIS) role is dependent so this role will automatically install this role.
IIS shouldn't however be installed at all on a TMG machine. This will result in the binding of port 80 on the default network interface.
Before I figured it out, I received the following event in the event log.
Log Name: Application Source: Microsoft Forefront TMG Web Proxy Date: 12-7-2012 14:59:13 Event ID: 14148 Task Category: None Level: Warning Keywords: Classic User: N/A Computer: --- Description: The Web Proxy filter failed to bind its socket to 0.0.0.0 port 80. This may have been caused by another service that is already using the same port or by a network adapter that is not functional. To resolve this issue, restart the Microsoft Firewall service. The error code specified in the data area of the event properties indicates the cause of the failure. |
After performing a netstat I could see that port 80 was already in use:
C:\Windows\system32>netstat -a | findstr "80" TCP 0.0.0.0:80 WE-UTR01-TMG01:0 LISTENING TCP 10.31.1.98:8080 WE-UTR01-TMG01:0 LISTENING TCP 127.0.0.1:8008 WE-UTR01-TMG01:0 LISTENING TCP 127.0.0.1:8080 WE-UTR01-TMG01:0 LISTENING TCP [::]:80 WE-UTR01-TMG01:0 LISTENING |
After the removal of the Web Server (IIS) Role and .NET dependencies and performing the netstat again, I received the following information:
C:\Windows\system32>netstat -a | findstr "80" TCP 10.31.1.98:8080 WE-UTR01-TMG01:0 LISTENING TCP 127.0.0.1:8008 WE-UTR01-TMG01:0 LISTENING TCP 127.0.0.1:8080 WE-UTR01-TMG01:0 LISTENING |
So this looks OK. After configuring the Web Listener and Publishing rules voor Exchange 2010 OWA en ActiveSync i performed the netstat command again and received the following information:
C:\Windows\system32>netstat -a | findstr "80" TCP 10.31.1.98:80 WE-UTR01-TMG01:0 LISTENING TCP 10.31.1.98:8080 WE-UTR01-TMG01:0 LISTENING TCP 8.8.8.8:80 WE-UTR01-TMG01:0 LISTENING TCP 8.8.8.8:80 194:20682 ESTABLISHED TCP 127.0.0.1:8008 WE-UTR01-TMG01:0 LISTENING TCP 127.0.0.1:8080 WE-UTR01-TMG01:0 LISTENING TCP 127.0.0.1:8080 WE-UTR01-TMG01:10168 TIME_WAIT |
As you can see port 80 is now binded to both interfaces as it should be. After this I tested the redirection and it worked like a charm.
Good luck in solving this issue if you ever encounter it.
Exchange Server 2013 – A first glimpse – part 1
- In part 1 I will describe the new features and changes that this new version of Exchange is going to offer;
- In part 2 I will guide you through the installation of Exchange Server 2013;
- In part 3 we will have a deeper look into the management of Exchange Server 2013.
Earlier this year customers started asking questions about the new Exchange version. Back then my (and probably the whole community) curiosity was starting to rise, but my mission stranded indefinitely because the was simply no answer to find in what the new version of Exchange was going to offer. The only answer I could find was that everything there was to be told, should be told on the Microsoft Exchange Conference later this year in Orlando (www.mecisback.com).
Last week Microsoft suddenly released a preview version of Exchange Server 2013. Almost immediately I downloaded it and started to configure it in my demo lab. My findings I am trying to share in these coming blogs.
To start. It seems that in this new version of Exchange, the new strategy of Microsoft is to simplify Exchange Management and integration with Office 365 (cloud). Besides that Microsoft made some changes in the split roles that was introduced in Exchange Server 2007. This last change is interesting but not new because in Exchange Server 2010 the best practice was already to create multi-role servers instead of breaking down your Exchange organization in as many servers as you could find.
Basically Exchange Server 2013 provides you in two main roles. The Client Access server role and the Mailbox server role. In the RTM version of Exchange Server 2013 the Edge Transport role will probably be released but in this preview version it's not there. You could, if you want, install the Exchange Server 2010 Edge Transport server and create a edge subscription to it. This is supported for the moment.
- Client Access server role This role proxies connectivity for all clients, such as Microsoft Office Outlook, Outlook Web App, mobile devices, POP, and SMTP and also accepts mail from and delivers mail to other mail hosts on the Internet. Client access servers can be organized into Client Access server arrays.
- Mailbox server role This role stores mailbox data, performs processing and rendering for client connections proxied by the Client Access server, and handles Unified Messaging requests. Mailbox servers can be organized into back-end clusters that use database availability groups (DAGs).
So what's new?
Client Access servers accept connections from clients and proxy those requests to the back-end Mailbox server that houses the active mailbox database copy. Multiple Client Access servers can be grouped together into a load-balanced array. The Client Access server performs authentication, redirection, and proxy services; it doesn't perform any data rendering. Connections to the Client Access server are stateless which means that there is no need to maintain affinity between a client and an individual Client Access server for subsequent connections because all data processing and transformation occurs on the Mailbox server. Because of this change in architecture, Exchange 2013 Preview requires layer 4 load balancing. Layer 4 load balancing is protocol-unaware and balances traffic based on IP address and TCP/UDP port.
Layer 4 load balancing integrated in Exchange? Cool, but what does it mean? Is the need for a separate hardware load balancer not needed anymore? I really don't have a clue yet. I will come back to at a later stage.
A Client Access array includes two different components: the Client Access service and the Front End Transport service.
The Client Access service performs the following functions:
- Provides a unified namespace, authentication, and network security.
- Handles all client requests for Exchange.
- Routes requests to the correct Mailbox server.
- Proxies or redirects client requests for legacy servers, such as Exchange 2007 and Exchange 2010 Client Access.
- Enables the use of layer 4 (TCP affinity) routing.
The Front End Transport service performs the following functions:
- Protocol level filtering Performs connection, recipient, sender, and protocol filtering
- Network protection Centralized, load-balanced egress and ingress point for the organization.
- Mailbox locator Avoids unnecessary hops by determining the best Mailbox server to deliver the message to.
- Load-balances client and application SMTP requests.
Mailbox servers house the mailbox data for the organization and perform data rendering and other operations. Mailbox servers can be grouped into back-end clusters which consist of database availability groups (DAG). Mailbox servers perform the following functions:
- Host mailbox databases.
- Provide email storage.
- Host public folder databases.
- Calculate email address policies.
- Conduct multi-mailbox searches.
- Provide high availability and site resiliency.
- Provide messaging records management and retention policies.
- Handle connectivity because clients don't connect directly to the Mailbox servers.
- Provide all core Exchange functionality for a given mailbox where that mailbox's database is currently activated.
- Fails over mailbox access when a database fails over.
The following briefly describes some new and some improved features in the Mailbox role for Exchange 2013 Preview:
Evolution of Exchange 2010 DAG:
- Transaction log code has been refactored for fast failover with deep checkpoint on passive database copies.
- To support enhanced site resiliency, servers can be in different locations.
- Exchange 2013 Preview now hosts some Client Access components, the Transport components, and the Unified Messaging components.
- Exchange 2013 Preview Store has been re-written in managed code to improve performance in additional IO reduction and reliability.
- Each Exchange 2013 Preview database now runs under its own process.
- Smart Search has replaced the Exchange 2010 multi-mailbox search infrastructure.
Source: Microsoft Technet – Exchange 2013 Server Roles
Supported co-existence scenario's
A first impression is that Microsoft doesn't take customers who are still running on Exchange Server 2003 and older serious anymore. There is no way you can transition from Exchange Server 2003 to Exchange Server 2013 without transitioning to Exchange Server 2007 or Exchange Server 2010 first. In my opinion this is a big fail! A lot of companies are still running on Exchange Server 2003 and older. Some of these companies are actually waiting till Exchange Server 2013 arrives because they don't want to upgrade to Exchange Server 2010 when in a couple of months a new version is there. Now they still need to upgrade to Exchange Server 2010 first before going to Exchange Server 2013. This means that there is lot of extra costs and implementation involved that companies maybe scares off.
The following table shows the supported co-existence paths that are supported:
Exchange version Exchange organization coexistence | |
Exchange Server 2003 and earlier versions | Not supported |
Exchange 2007 | Not supported with Exchange 2013 Preview. Coexistence with Exchange 2007 will be supported in the release to manufacturing (RTM) version of Exchange 2013. |
Exchange 2010 | Not supported with Exchange 2013 Preview. Coexistence with Exchange 2010 will be supported with Exchange 2013 RTM. |
Mixed Exchange 2010 and Exchange 2007 organization | Not supported with Exchange 2013 Preview. Coexistence with Exchange 2007 and Exchange 2010 will be supported with Exchange 2013 RTM. |
Active Directory support
To install Exchange Server 2013 preview your Active Directory forest functionality mode must be Windows Server 2003 or higher. Next to that the following roles need to be compliant to the corresponding OS levels:
Schema Master | Windows Server 2012 |
Windows Server 2008 R2 Standard or Enterprise | |
Windows Server 2008 Standard or Enterprise (32-bit or 64-bit) | |
Windows Server 2003 Standard Edition with Service Pack 2 (SP2) or later (32-bit or 64-bit) | |
Windows Server 2003 Enterprise Edition with SP2 or later (32-bit or 64-bit) | |
Global catalog server | Windows Server 2012 |
Windows Server 2008 R2 Standard or Enterprise | |
Windows Server 2008 R2 Datacenter RTM or later | |
Windows Server 2008 Standard or Enterprise (32-bit or 64-bit) | |
Windows Server 2008 Datacenter RTM or later | |
Domain controller | Windows Server 2012 |
Windows Server 2008 R2 Standard or Enterprise SP1 or later | |
Windows Server 2008 R2 Datacenter RTM or later | |
Windows Server 2008 Standard or Enterprise SP1 or later (32-bit or 64-bit) | |
Windows Server 2008 Datacenter RTM or later |
OS Support
The following operating systems are supported to install Exchange Server 2013 preview on:
Component | Requirements |
Mailbox and Client Access server roles | One of the following: Windows Server 2012 Windows Server 2008 R2 Standard with SP1 Windows Server 2008 R2 Enterprise with SP1 Windows Server 2008 R2 Datacenter RTM or later |
Management tools | One of the following: Windows Server 2012 Windows Server 2008 R2 Standard with SP1 Windows Server 2008 R2 Enterprise with SP1 Windows Server 2008 R2 Datacenter RTM or later 64-bit edition of Windows 8 Release Preview 64-bit edition of Windows 7 with SP1 |
Supported clients
Exchange 2013 Preview supports the following minimum versions of Microsoft Office Outlook and Microsoft Entourage for Mac:
- Outlook 2013 Preview
- Outlook 2010 SP1 with April 2012 Cumulative Update
- Outlook 2007 SP3 with July 2012 Cumulative Update
- Entourage 2008 for Mac, Web Services Edition
- Outlook for Mac 2011
Outlook clients earlier than Outlook 2007 are not supported. Email clients on Mac operating systems that require DAV, such as Entourage 2008 for Mac RTM and Entourage 2004, are not supported.
Outlook Web App supports several browsers on a variety of operating systems and devices. For detailed information, see Supported Browsers for Outlook Web App.
Well that's all for now. I will be publishing part 2 of this blog series soon.
Unable to on-board and off-board mailboxes in an Exchange HybridConfiguration
If an Exchange Online mailbox is created via the Exchange 2010 Management Console, the ExchangeGUID of the MS Online Mailbox is not properly set in the remote-mailbox configuration of the Active Directory user object. In most cases this is no problem at all, but if you want to move an MS Online mailbox from the cloud to your on-premises Exchange 2010 server the process fails with the error "Exception has been thrown by the target of an invocation.".
This all took me a while to figure it out. I had a customer that had created about 5500 Active Directory users. During this stage the existing users needed to have an Exchange Online mailbox without removing them first, so we used the "create-remotemailbox" cmdlet to create all mailboxes in Exchange Online. In this cases some users who had an Exchange Online Kiosk subscription changed positions and the client wanted to off-board these mailboxes to on-premise (this was the business case). During these actions the process failed because the remote-moverequest process apparently compares the ExchangeGUID value on both sides. If they not match, the process will fail with this pretty unusable error.
If this happens you will need to copy the ExchangeGUID of the mailbox in Exchange Online and replace the ExchangeGUID value of the remote-mailbox setting on the Active Directory user.
Below you can find a script that I have created to do this for all your users at once.
Just some prerequisites before running this script:
- You can only run this script by using elevated permissions of User Account Control is turned off;
- You need the Exchange cmdlets, therefore you either run the script from within the Exchange Management Shell or you'll need to import the cmdlets for Exchange in your current powershell session.
First we are going to create a new session called "Remote" in our current powershell session to run the Microsoft Exchange Online cmdlets in. If you don't do this it will not work because the Exchange Online cmdlets are the same as the Exchange On-Premise cmdlets and they will interfere with each other if you run everything in the same session.
New-PSSession -Name remote #Creates a new local pssession to avoid cmdlets conflicts
After we have created the new session, the script needs to perform some actions in this session to create an output CSV file that we can use later on. This section of the script gets the userprincipalname and the ExchangeGUID from all Exchange Online mailboxes and saves them to a CSV file in the path "D:\temp".
Note: There are several ways to do this. I have chosen to use the "enter-pssession" and "exit-pssession" cmdlets.
Enter-PSSession -Name remote #Enters the new pssession to proces commands
$cred = Get-Credential ""
#creating a new remote powershell session to Microsoft Online
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $Session
# Recieving ExchangeGUID of all mailboxes in Microsoft Online and exports it to a CSV file
$temp = Get-Mailbox -ResultSize unlimited | select userprincipalname,exchangeguid
$temp | export-csv -Path d:\temp\export-o365-boxes.csv -NoTypeInformation
Exit-PSSession
In the following section we are going to use the created CSV file to check if the ExchangeGUID of the Exchange Online Mailbox matches the ExchangeGUID of the remote-mailbox attributes of the Active Directory user.
Start-Transcript -Path D:\temp\transcript.txt #writes all output into a transscript file
$csv = Import-Csv -Path d:\temp\export-o365-boxes.csv #imports the created CSV file
foreach ($item in $csv) { # create a loop to check if ExchangeGUID matches the MSonline Mailbox GUID. If not this script sets the value ExchangeGUID
$mbtemp = get-remotemailbox $item.userprincipalname
Write-Host $item.ExchangeGuid "is cached from csv file" -ForegroundColor Green
Write-Host $mbtemp.ExchangeGuid "is cached from get-mailbox"-ForegroundColor Magenta
if ($mbtemp.exchangeguid -ne $item.exchangeguid) {
Write-Host "No match. Writing GUID" $item.exchangeguid "into user" $mbtemp.userprincipalname -ForegroundColor Red
set-remotemailbox $mbtemp.userprincipalname -ExchangeGuid $item.exchangeguid
}
}
Stop-Transcript
The whole script you can download here:
<#
MS Online sets local Exchange 2010 remotemailbox ExchangeGUID
Author: Cor (C.J.H.) Reinhard
Copyright: 2012, Unauthorized use from author prohibited
Version: 1.0
Create date: 14-08-2012
Last modification date: 14-08-2012
Notes: Make sure script execution is set to unrestricted by running "Set-ExecutionPolicy -ExecutionPolicy unrestricted -Force"
Make sure to run this script from within the Exchange Server 2010 Management Shell
Change history:
13-08-2012: First version, v0.1
14-08-2012: Added pssessions, v1.0
Nice to have:
#>
New-PSSession -Name remote #Creates a new local pssession to avoid cmdlets conflicts
Enter-PSSession -Name remote #Enters the new pssession to proces commands
$cred = Get-Credential ""
#creating a new remote powershell session to Microsoft Online
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $Session
# Recieving ExchangeGUID of all mailboxes in Microsoft Online and exports it to a CSV file
$temp = Get-Mailbox -ResultSize unlimited | select userprincipalname,exchangeguid
$temp | export-csv -Path d:\temp\export-o365-boxes.csv -NoTypeInformation
Exit-PSSession
Start-Transcript -Path D:\temp\transcript.txt #writes all output into a transscript file
$csv = Import-Csv -Path d:\temp\export-o365-boxes.csv #imports the created CSV file
foreach ($item in $csv) { # create a loop to check if ExchangeGUID matches the MSonline Mailbox GUID. If not this script sets the value ExchangeGUID
$mbtemp = get-remotemailbox $item.userprincipalname
Write-Host $item.ExchangeGuid "is cached from csv file" -ForegroundColor Green
Write-Host $mbtemp.ExchangeGuid "is cached from get-mailbox"-ForegroundColor Magenta
if ($mbtemp.exchangeguid -ne $item.exchangeguid) {
Write-Host "No match. Writing GUID" $item.exchangeguid "into user" $mbtemp.userprincipalname -ForegroundColor Red
set-remotemailbox $mbtemp.userprincipalname -ExchangeGuid $item.exchangeguid
}
}
Stop-Transcript
Goodbye MCM! Hello MCSM!
First of all when I heard of this change on the MEC 2012 I was not very happy. I already had an approval to join the MCM program at the end of 2012 from my employer but due to other obligations I couldn't sign up. The best next thing for me was to wait for the MCM for Exchange Server 2013 somewhere in 2013. But…. Microsoft made the decision to change the MCM program to MCSM (Microsoft Certified Solutions Master) to fit the new certification paths. Now I wanted to know what the requirements of the new program where because I already had all the needed requirements to join the MCM program, so I did some research.
So what are the changes in the program?
- Microsoft wants the new MCSM's to be current. Therefore after finishing your MCSM program you need to do an update exam every 3 years.
- To join the program you need to be certified on:
- MCSA (Microsoft Certified Solutions Associate) on Windows Server 2012
- MCSE (Microsoft Certified Solutions Expert) on Messaging
- You also need to have proven experience in deploying Exchange Server 2013
How do I get certified?
At the moment? You can't. The MCSA certification is already there so you can certify on this, but there is no real preparation material available so you have to prepare yourself using the Microsoft Technet site. You also need to take a close look at what topics are questioned. If you hold one of the following certifications you can do the upgrade exam 70-417.
- MCSA: Windows Server 2008
- MCITP: Virtualization Administrator
- MCITP: Enterprise Messaging Administrator
- MCITP: Lync Server Administrator
- MCITP: Sharepoint Administrator
- MCITP: Enterprise Desktop Administrator
If you don't have one of these certifications you need to do the whole certification path. That means taking the exams 70-410, 70-411 and 70-412.
For the MCSE Messaging certification it is not possible to certify yet if you're not participating in the beta program. The required exams 70-341 and 70-342 will probably be available at the end of January 2013. You can of course prepare yourself by reading Microsoft Technet and the iammec websites and creating a demo lab, but although Exchange Server 2013 is RTM (since last week) it is still not available till November 2012 (see my friend Dave Stork's blog). So you'll have to stick with the preview release which is subject to change.
And how do I get proven deployment experience?
Now Exchange Server 2013 is RTM you should say it's easy. Just sell it! But you can only sell and implement Exchange Server 2013 when you're implementing it in a greenfield (new) environment. For Exchange Server 2013 to co-exist in an existing Exchange Server 2007 or 2010 organization you'll need to have either Rollup Update for Exchange Server 2007 or Service pack 3 for Exchange Server 2010. Both updates are not released yet. There is no real date given when these updates appear but it will be somewhere in the first half of 2013.
My conclusion
Looking at all the options and variables you'll simply need to get certified before you can participate in the MCSM Messaging program. I think changing the program to have you updated you skill every 3 years is a good thing. In 3 years a lot of things change (even in service packs) and in real life you simply not use all the features that Exchange Server 2013 provides. Retaking the exams will keep you're skill level on edge, what I think is needed for an MCM or MCSM to be one.
In my humble opinion you can't get any good experience with Exchange Server 2013 until you deployed it in a co-existing scenario. Therefore I think it's a big disappointment again from Microsoft to stop the current program and have no short term solution available.
At the end this will set ME back with at least a year!
Why Office 365 is no option in a European Tender
Once the project is initiated the new company often need to have external expertise in how to create it. In Europe this plan needs to be bought via a "European Tender". This procedure is often complex and sometimes misunderstood. But the tender is mandatory so not negotiable. Basically in a "European Tender" suppliers have the choice to sign up. Once this phase is done and all suppliers are known, the suppliers receive documentation about the requirements and wish lists and are asked to make a quotation. This quotation will be divided into chunks (like investment plans, overall plans, project plans and the solution itself) where the supplier receive points for. The supplier that has the most points has won and can start the project.
So far so good, but where does it goes wrong?
Well a big portion in scoring points is the initial investment of the complete project. This means the amount of money that is needed to implement and finalize the project within means and time. The tender often doesn't look at the Total Cost of Ownership (TCO) of the complete duration of the project.
To be more precise. A project always consists of multiple phases which are:
1. Initiating a project
2. Planning and directing a project
3. Managing product delivery (implementation)
4. Managing project boundaries (monitoring)
5. Closing a project
A project manager or initiator however often thinks his/her project is ended when the actual implementation or execution phase is done. Now this is where it goes wrong. Every project is has a life cycle. The life cycle of a project is from the initiation phase until the completion phase. The completion phase is however, despite what most people think, not the end of the implementation but the whole economical life cycle. As an example:
On September, 1st 2012 a company states that, if it wants to compete and still be cost effective, it needs to have a new IT infrastructure. Now the project is initiated. The company states that the economic life cycle of the new infrastructure needs to be five (5) years. However the implementation of the new infrastructure needs to be finished on March, 1st 2013. Now a project manager is assigned to successfully implement the solution within time and means, and does it before March, 1st 2013. Now the project is released and considered successful.
This is wrong thinking however. The implantation of the new solution is finished and was successful. Yeah! However the project (economic) life cycle is five years. This means that if you want to see if the project brought a success you need to calculate the TCO and the ROI (Return on Investment) over the complete five years. It could be that over these five years the project turned to be not so effective. Therefore the project was in this case not successful.
Ok and what does this have to do with the subject?
Well everything actually! Because the economic calculation of a (public) cloud service like Office 365 is on a monthly and per user base, the calculation of the initial investment needs to be done over the complete life cycle. In the case of the example this is five years. Where an on-premise solution is only calculated on the investment needed to deliver the new infrastructure and not on the complete life cycle.
Basically in an on-premise scenario the costs of hiring employees, server maintenance, technical life cycle, cooling, etc is not considered as a financial post in the project. Therefore a traditional solution (on-premise) is per definition cheaper if you only count the initial costs. If you however, calculate the TCO and ROI like you should do, a cloud based solution is often not more expensive and in most cases even cheaper.
And since most points in "European Tenders" are given based on the initial costs, a cloud solution is "often" not an option.
Conclusion
Considered all the facts and theories, the title should have been "Why Office 365 is often no option in a European Tender". Because of two reasons:
- The word "project" is often misunderstood and misinterpreted. If the project is handled as a project then the points in case of investments should go to the most economic friendly solution over the complete life cycle.
- The tender rules are often misinterpreted by all people involved in a project. There is nothing mentioned in the regulations about initial investments. If you want the give both solutions an equal chance you should calculate the TCO and ROI of both solutions as equals, so during the complete life cycle.
I hope my post brings people a better understanding in how you can have different perspectives about calculating the success of a project/solution.
IMHO: Coolest changes in Exchange Server 2010 since going RTM
Off course lot's of improvements where made to make Exchange Server 2010 an even better product then it already was, i will not deny this. In a blog however, i think, you need to describe the most noticeable and biggest improvements. Therefore my top ...
1. Office Outlook 2003 support (SP2)
Although Office Outlook 2003 was supported since the RTM of Exchange Server 2010, it had some struggles getting it to work with Exchange Server 2010. This was al because of the RPC/TCP connections that Outlook 2003 is relying on. For some reason Exchange Server 2010 could'n handle these connections properly which related in view update problems when using an Outlook 2003 client. Microsoft tried to fix it in several Update Rollups and even in Service Pack 1, but the problems stayed. Since Service Pack 2 however we (Me and my collegeas at PQR) didn't find any big problems, concerning this issue, anymore. There are still some minor issues with the calender and icons in the address book but no real big problems.
Therefore i think this is THE biggest improvements since going to RTM. It kept us advising customers going to Exchange Server 2010 and upgrading the Office Outlook client at a later stage.
2. Hybrid Configuration Wizard (SP2)
I have always been a great fan of Public SAAS services. Especially Microsoft Office 365. In my humble opinion going hybrid should always be a consideration when talking to customers and creating a business case for a new Messaging Environment and even more.
Why you ask? In some cases it could enable customers to split functionality of e-mail to fit the needs of different types of users. I did some projects for big healthcare companies who wanted to provide the "caring" people a corporate e-mail address but not wanted to wast expensive internal IT resources. In these cases going hybrid was the perfect way to go. Providing internal users an on-premises mailbox and providing the less e-mail relying "caring" users an Office 365 Kiosk mailbox which is federated with the on-premises Exchange organization.
Configuring a full hybrid solution however was, until Service Pack 2, a pretty time consuming and intensive thing to do. You manually needed to configure about 75 steps. Since Service Pack 2 you still need some configuration (no it's not easy), but the introduction of the Hybrid Configuration Wizard definitely made it easier.
Therefore it's on number 2 in my list.
3. Introduction of the "New-MailboxRepairRequest" cmdlet (SP1)
Before it was always a struggle in dealing with database corruption. You either needed to:
1. Take the corrupt DB offline and manually repair, defrag and check it which was very time consuming if you had large DB's, or;
2. Create a new DB and move all mailboxes to the new DB which would cost you temporary storage utilization, or;
3. In a DAG solution create a new DB and perform a reseed action which was very time consuming, or;
4. Restoring the DB from the latest proper backup.
Therefore this new feature introduced in Service Pack 1 deserves a good spot on my list.
4. The ability to soft-delete mailboxes after move completion (SP1)
Can you remember this great functionality in Exchange Server 2007, where you could move a mailbox and set the move-mailbox cmdlet to hold-on the source mailbox in case something went wrong during the mailbox move? Well i used it quite often and was pretty stunned that this option was not available anymore in Exchange Server 2010.
Luckily Microsoft also noted this and restored a similar function back in Service Pack 1. It's not the same feature but you are able to restore a soft-deleted mailbox, by using the MailboxRestoreRequest cmdlet's, in case a move request went wrong.
5. The ability to place archive mailboxes on a different DB (SP1)
Although i was never a big fan of how Microsoft looks at archiving, the biggest new thing and also the biggest shortcoming in the RTM of Exchange Server 2010 was the location of the archive mailbox in the same DB as the production mailbox. In my opinion and many with me it didn't make sense at all. Since Service Pack 1 you can place archives of archive enabled users to a different database. This makes more sense.
I still think that "Microsoft" archiving is no real archiving. Compared to Enterprise Archiving products like Symantec Enterprise Vault or Commvault Archiving, you are limited to retention policies based on time and it only moves the item to another location. It also is quite expensive, considering an Enterprise CAL and Office Professional Plus is required. Enterprise Archiving Products are, besides cheaper, way more sophisticated then Exchange Archiving. You can for example create different archiving policies based on attachment sizes or else. Enterprise Archiving products also have better understanding of how to use storage more efficiently by using technologies like single instance storage, compression and de-duplication. Which al can save you a lot of storage at the end.
Still, if you want to go for Exchange Archiving, this feature deserves a spot in my list.
6. Cross-Site Silent Redirection for OWA(SP2)
One of the cool new things introduced with Service Pack 2 is the Cross-Site Silent Redirection. With this option you can redirect CAS request to a better servicing CAS server in another AD Site. You can also create SSO experience with this feature.
7. Mailbox Auto-Mapping (SP2)
Some love it, others hate it. Personally i love it. If a user has full-control permissions on a mailbox, the mailbox is automatically added to the users Outlook profile when logging into Outlook by using the autodiscover service combined with the Auto-Mapping feature. In my experience this saved a lot of IT admins and Service Desks a lot of incidents to help users adding all the mailboxes when a profile became corrupt or else.
Well these where my 2 cents for now ;)
Microsoft Support Lifecycle. Hoe zit dat ook alweer?
Het support lifecycle beleid van Microsoft producten is eigenlijk heel simpel:
- 10 jaar ondersteuning (5 jaar algemene ondersteuning en 5 jaar uitgebreide ondersteuning) op het ondersteunde service pack niveau voor zakelijke- en developer producten en desktop besturingssystemen.
- 5 jaar algemene ondersteuning op het ondersteunde service pack niveau voor consumenten producten, multimedia producten en hardware.
- 3 jaar algemene ondersteuning voor producten met een jaarlijkse verschijning (Bijvoorbeeld Money, Encarta, Picture It!, Streets & Trips)
Wat houdt dit dan eigenlijk in? Als voorbeeld:
Hoe kan ik erachter komen wanneer een product uitgebracht is en wanneer de support verloopt?
Hier heeft Microsoft de "Lifecycle Support Database" voor ontwikkeld. Deze is te benaderen via http://support.microsoft.com/lifecycle/search/
Interessant weetje
Wist je dat de uitgebreide ondersteuning van Exchange Server 2003 en Windows XP verlopen op 8 april 2014? Je hebt dus nog een jaar de tijd om weer support te krijgen door te upgraden.
Thinking Out of the Box: Exchange 2013 and backup
- You'll probably need backup to perform a point in time restore based on a single item or complete mailbox.
- In any enterprise production environment you'll need a solution that provides you a solution to recover your data in case of an emergency.
- RPO (Recovery Point Objective) and
- RTO (Recovery Time Objective).
RTO
RTO is the duration of time in which a business process must be restored after a disaster (or disruption) in order to avoid unacceptable consequences associated with a break in business continuity. In other words in how much time does the service(s) need to be restored in case of an emergency.
Solution | Supported? | Level | |
1. | Symantec NetBackup | Support from version 7.5.0.6. | Database |
2. | Symantec BackupExec | Support from version 2012 Service Pack 2 | N/A |
3. | NetApp SnapManager | Supported in version 7 and higher | Database |
4. | CommVault | Supported in version 9 and higher | Database |
5. | VEEAM | No support. Support is going to be in version 7. Release date unknown | N/A |
6. | HP Dataprotector | Support from version 8. | Database |
7. | EMC Avamar/Networker | No support | N/A |
8. | IBM Tivoly Storage Manager | No Support | N/A |
- It saves you a lot of time to backup single items with any software;
- It saves you storage in case of snapshot backups on storage level;
- It saves you storage on your backup tapes;
- It saves your IT Helpdesk the burden to answer call's about restore of single items;
- And last but probably the most important, users don't have to call the IT department anymore. They can do it themselves! And that means, one step forward in pissing of users ;).
Updates
09-07-2013: Updated support matrix for Symantec NetBackup and HP Dataprotector09-08-2013: Updated support matrix for Symantec BackupExec
My best new features in Powershell v3 and v4
Now with the new version 3 of Powershell, the Microsoft Team introduced lot of new features. Here is a list of some of my quick favorites.
Show-Command
Do you ever get lost in all available cmdlets? Well I do. In Powershell v3 a new cmdlet is introduced called "Show-Command". When you run Show-Command a graphical window appears where you can search for cmdlets, create predefined syntaxes and read the help of the cmdlet. Very cool and it makes your life as a scripter much easier.
Out-Gridview
With Out-Gridview you can export a table or list to a graphical window called the GridView. Within GridView you can then Filter your output to narrow your results.Example syntax: Get-Process | Out-GridView
Easy insert
I always had problems inserting a cmdlet parameter after you created a oneliner. You couldn't do it. In Powershel v3 you now can. Just simply go to the place where you want to insert your parameter type - and the parameter name et voila.Module Auto-Loading
You now can just type in the cmdlet of a module that is not loaded into the runtime. This is very handy if you forget to import de module.As you can see below only two modules have been loaded:
Next I type (for example) the cmdlet Add-VpnConnection and I auto complete by hitting the TAB key.
Now when I type in get-module again, you can see the module where the Add-VpnConnection cmdlets resides is automatically added.
Checking if Office 365 wave 15 upgrade went OK
Check your tenant status
Import-Module MSOnline #for powershell v3 and v4 this step is not needed
Connect-MsolService -Credential $cred
(Get-MsolCompanyInformation).CompanyTags
Check your Exchange Online Organization status
Verifying mailbox version
Free TechSmith Software for Technology Leaders
Download can be done here:
-Snagit PC or MAC
Record onscreen activity at your desk or in front of an audience and create eye-catching HD-quality training, presentation, and demo videos. Enhance them with editing effects like callouts, transitions and more. Then share for viewers to watch on-demand…anytime, anywhere.
-Camtasia Studio PC or MAC
Quickly create professional quality videos that you can share with
anyone, on nearly any device – without formal training. Use Camtasia to give presentations, train audiences, share knowledge, and more.
@TechSmit Software Thanks for the software and free licenses!
@Henk Hoogendoorn Thanks for pointing it out to me
Auto add specific Office 365 licenses to all users
I have created this particular script for an academic company. Therefore the plan and the service options are specifically for an educational company.
This scripts add the users based on the attribute "Office". If this attribute is empty it's an employee, if the attributed is not empty it's a student. The scripts saves the output to a logfile and also to the display (including a progressbar :)).
If you want to know what plans are available in your tenant, you can type in the below commands in a powershell session:
Import-Module MSOnline
Connect-MsolService -Credential (Get-Credential)
Get-MsolSubscription
Once you have the subscriptions you can narrow it down to only the services available in the subscription by using the below command:
Get-MsolSubscription -SubscriptionId| select-object -ExpandProperty servicestatus
Here is the script. Have fun with it!
Import-Module MSOnline
Connect-MsolService -Credential (Get-Credential)
$GlobalLog = "D:\Scripts\Logs\$(gc env:computername)_$(get-date -format hhmm_ddMMyyyy).log"
$Date = get-date -Format "hh:mm:ss - dd MMMM yyyy"
$Users = Get-MsolUser -All
$Location = "NL"
$LicOptions = 'SHAREPOINTWAC_EDU','MCOSTANDARD','SHAREPOINTSTANDARD_EDU'
#Faculty members
$Faculty = "<TenantID>:STANDARDWOFFPACK_FACULTY"
$PlanFc = New-MsolLicenseOptions -AccountSkuId $Faculty -DisabledPlans $LicOptions
#Students
$Student = "<TenantID>:STANDARDWOFFPACK_STUDENT"
$PlanSt = New-MsolLicenseOptions -AccountSkuId $Student -DisabledPlans $LicOptions
function LogLine {
Param(
[string]$LogInput
)
Add-content $GlobalLog -value $LogInput
}
function LogHeader {
LogLine "--------------------------------------------------------------------------------"
LogLine "Adding user licenses:"
LogLine "Time: $Date"
LogLine "--------------------------------------------------------------------------------"
}
function LicAdd {
$Users | ForEach-Object -Begin {Clear-Host;$i=0;$Stu=0;$Fac=0} -Process `
{
if ($_.IsLicensed -ne "TRUE")
{
Set-MsolUser -UserPrincipalName $_.Userprincipalname -UsageLocation $Location
if ($_.Office -ne $null)
{
$User = $_.UserPrincipalName
Set-MsolUserLicense -UserPrincipalName $User -AddLicenses $Student -LicenseOptions $PlanSt
LogLine "Added student license for user $User"
Write-Host "Added student license for user" $User -ForegroundColor 'Gray'
#Start-Sleep -Milliseconds 30
$Stu++
}
else
{
$User = $_.UserPrincipalName
Set-MsolUserLicense -UserPrincipalName $User -AddLicenses $Faculty -LicenseOptions $PlanFc
LogLine "Added faculty license for user $User"
Write-Host "Added faculty license for user" $User -ForegroundColor 'Green'
#Start-Sleep -Milliseconds 30
$Fac++
}
}
write-progress -activity "Adding licenses" -status "Progress:" -percentcomplete ($i/$users.count*100)
$i = $i+1
} `
-end {}
LogLine "--------------------------------------------------------------------------------"
LogLine "Number licenses added for students: $Stu"
LogLine "Number licenses added for faculty employees: $Fac"
LogLine "--------------------------------------------------------------------------------"
LogLine ""
}
LogLine
LogHeader
LicAdd
To IE or not to IE?
Mijn antwoord: Nee natuurlijk niet, dit kan helemaal niet!
Ten eerste deze bug is niet nieuw en het nieuws ook niet. Dit is al een tijdje bekend!
Ten tweede, wat de Telegraaf vergeet te vermelden is het volgende:
"Microsoft suggests a few other workarounds, such as switching on IE's Enhanced Protected Mode or setting security levels to “High” to stop ActiveX controls and Active Scripting working.
The upside, if there is any, is that Windows Server's default settings make it hard to create the kind of honeypot website that could exploit this flaw."
Zoals gewoonlijk is de media weer eens verantwoordelijk voor het plaatsen van een verkeerde context door bewust informatie weg te laten.
Je kunt je bovendien natuurlijk altijd het volgende afvragen "Hebben andere browsers dan geen of nooit problemen?" en "Wordt door deze bug nu automatisch iedere IE browser aangevallen?". Het antwoord hierop is, natuurlijk, nee!
Hiermee praat ik uiteraard niet goed dat er een bug is die er niet had moeten zijn, maar ik probeer wel de context recht te zetten.
Heb jij andere meningen, deel ze, graag!
Is Office 365 really going to save me money?
What is Office 365?
Productivity Services
- Mail (Exchange Online)
- Communication (Lync Online)
- Collaboration (SharePoint Online)
- Social (Yammer)
- Document editing (Office Online)
Productivity Applications
- Office 365 Pro Plus. This is a desktop version of Office like Office 2013 only with a subscription service to activate or de-activate based on the users permission or license. With a typical Office 365 Pro Plus license you can install Office 365 Pro Plus on five different devices and on both PC and MAC.
- Project Online with Project Pro for Office 365. Project Online is a flexible online solution for project portfolio management (PPM) and everyday work. Delivered through Office 365 and designed for people who need to manage with full project management capabilities on the desktop as well as work online from virtually anywhere on almost any device
- Visio for Office 365. Visio for Office 365 requires a separate subscription. With a Visio for Office 365 subscription you can provide users who need Visio a possibility to install Visio on their client. This is the same way as users install Office 365 Pro Plus.
- Mobile Apps. Microsoft is providing several mobile apps (like OneNote for Business, Yammer, OWA and Office 365) to all main mobile platforms Android, iOS, Blackberry and Windows Phone*
Baseline
- Hardware
- Microsoft Software and Services
- Third-Party Software and Services
- Operations
- Deployment and Migration
- Disaster Recovery
Hardware
Microsoft Software and Services
- Licensing costs for the messaging solution (Exchange)
- Licensing costs for the communication solution (Lync)
- Licensing costs for the collaboration solution (SharePoint)
- Licensing costs for the clients (Office)
Third-Party Software and services
Operations
Deployment and Migration
Disaster Recovery
Advantages of Office 365
Scalable
High Availability
Accessibility
- Is or are your datacenter(s) available in the region where the user is?
- What is the user experience if the user is on a location which has limited internet connectivity?
- Are the Service Level Agreements met? For most subscriptions Microsoft guarantees 99,9% (in 2013 it was 99,6%) availability.
Complexity
Disadvantages of Office 365
Highly Configurable - Not Customizable
Data Location and Transfers
No Customer Right to Audit
Comfortable with the Office 365 Roadmap
Less complexity or more
Governance
Conclusion
Strange behavior AD FS Windows Server 2012 R2 after changing the service communications certificate
4. The Device Registration Service (DRS) on my AD FS server didn’t want to start anymore:
Because it took me some time to figure it out, I wanted to share my solution with you.
As you can see, after typing in “cd cert:\LocalMachine\My” and then a “ls” or “dir”, my new certificate thumbprint/hash was 2A4BF86B8387BA006C7AC63183557F4D009FE7C4.
hostnameport | Unicode hostname and port for binding. |
certhash | The SHA hash or thumbprint of the certificate. This hash is 20 bytes long and specified as a hex string. |
appid | GUID to identify the owning application. |
certstorename | Store name for the certificate. Required for Hostname based configurations. Defaults to MY for IP based configurations. Certificate must be stored in the local machine context. |
sslctlstorename | Store name under LOCAL_MACHINE where SslCtlIdentifier is stored. |
As you can see now, the bindings are successfully created and the Certificate Hash matches the SSL certificate installed on the AD FS server.
What you say? Windows Nano Server? Looking great, but…
In my years as a IT consultant, architect, trainer and scripting fanatic I love to see evolvements in the IT landscape.
As an early adopter for PowerShell back in 2006 when it was sort of launched with Exchange Server 2007 I really love to see what you can do with it. I wrote and still write a lot of advanced scripts to make our lives easier in the admin and migration process. I also am involved in the design and architecture of new Windows based infrastructure and trying to get customers or IT admins to adopt the new and rich possibilities the Windows Server and Windows client OS brings.
For some years now I’m trying to convince a lot of my customers to move on to use PowerShell and Windows Server Core edition (no personally not 2008 (I think this version was not really good), but since 2012), but still a lot of IT Pro’s and IT admins still don’t know how to use PowerShell and what you can do with it. To be more clear, I still see that IT admins for example are trying to change the same setting for 4000+ users within Active Directory. Not very efficient I think and also very fault sensitive. Therefore the adoption of Windows Server Core Edition is not happening as quickly as I would have wanted to see.
And this is where I have double feelings about Windows Server Nano. I personally I think it’s great to see you don’t have any overhead anymore in forms of a GUI, local logon, no more WOW64 support and many other stuff. I love to work with remote PowerShell. I think connecting to a server with RDP and then do your stuff on it is slow and you are limited to a maximum number of sessions. Also all these components require updating and installing a lot of hotfixes and patched and so on.
Removing all this overburden leaves you a much more hardened server, a lower footprint (less harddisk space, memory, etc). It also saves you the installation of a lot of updates that you don’t need and leave you with a lot of potential security risks if you don’t install them.
However, as I wrote earlier, in my experience is that the adoption of these new evolvements with the current generation of IT Pro’s (Yes unfortunately I now a lot of IT consultants and engineers that still don’t know how to use PowerShell) and IT admins is a thing to worry about while getting Windows Nano and Core edition server to be adopted.
I do hope it will be a success and personally I will adopt it and recommend it in my advise and designs to customers, but there needs to be a real change in the IT landscape and mindset of IT related people. I think…
Do you guys have any thought on this?
Let me know… I like to have interesting discussions about it
Reference:
http://blogs.technet.com/b/windowsserver/archive/2015/04/08/microsoft-announces-nano-server-for-modern-apps-and-cloud.aspx
Take upgrading to #Windows10 for phones under advise. @Microsoft @Windows
First of all it’s a good thing you want to try out and help to make Windows 10 better. I did the upgrade on my backup phone and with this post I will try to convince you to do the same. At least not on your primary phone. Since this is a beta release a lot of functions still not work or don’t work as you are used to. Microsoft also states this when enlisting for the insider program.
The version I currently have installed is 10.0.12534.59.
Here are my first experiences using the new Windows 10 for phones pre-release. I will try to update this post when I work more with it or install newer builds along the way. For now I hope it helps you to decide if you are pursuing the upgrade or not.