Friday, September 28, 2012

Microsoft, What did you do to Forefront?

ForeFront Logo

I am shocked but not surprised by Microsoft's decisions about Forefront as recently announced on September 12th, 2012 (the same same day as Apple's iPhone 5 launch) on their Server and Cloud Blog titled "Important Changes to Forefront Product Map". The following products from the Forefront Product Set will no longer be sold as December 1st, 2012:
    • Forefront Protection 2010 for Exchange Server (FPE)
    • Forefront Protection 2010 for SharePoint (FPSP)
    • Forefront Security for Office Communications Server (FSOCS)
    • Forefront Threat Management Gateway 2010 (TMG)
    • Forefront Threat Management Gateway Web Protection Services (TMG WPS)
Also mentioned in Microsoft's blog post is that Forefront Online Protection for Exchange (FOPE) will be called Exchange Online Protection (EOP) for the next release. EOP can be combined with the new Anti-malware protection built-in to Exchange Server 2013. SharePoint and Lync Servers will continue to offer the built-in security capabilities also Forefront Unified Access Gateway (UAG) and Forefront Identity Manager (FIM) will still be be available.

Mary Jo Foley, from ZDNET, wrote a post called "Microsoft axes many of its Forefront enterprise security products" shortly after the announcement. She also mentioned that Forefront Endpoint Security will be rolled into the new System Center 2012 Endpoint Protection. The comments on her blog post, on Twitter as well as Microsoft's post show the confusion among users about the Forefront changes. People are wondering what will happen to their TMG deployments, will signatures be updated, Windows Server 2012 support, what exactly is the new Anti-malware protection built-in to Exchange Server 2013 and how is Exchange Online Protection different from that offering? Do you have any questions or comments about what your options will be once these changes take effect?

For us, we were considering replacing Internet Security and Acceleration (ISA) servers with Forefront Threat Management Gateway 2010 servers but now we are exploring other solutions I think partly based on this recent news. I will be watching closely to see what Microsoft does with new Forefront offerings. Comments, thoughts and opinions welcomed.

Friday, August 3, 2012

How to get around, bypass or defeat "A program is trying to automatically send email on your behalf" in Outlook 2010

If you've encountered this error like I have, you know it is a pain in the ass. You're writing code and trying to test it and you get blocked by Outlook security. Today I found a good solution that should be more widely available on the internet, then it is. These two registry keys disable that functionality. A C sharp code example is below and what I used to send emails in a console app. It loops and send a new incrementing subject email every 5 seconds. The code is from the internet and other people, that I've tweaked, same as the reg hacks. I have not tried this with some of the other programmatic ways to interact with Office, nor with other versions of Office. This may also work or affect the "A program is trying to access e-mail addresses you have stored in Outlook" as well.


[HKEY_CURRENT_USER\Software\Policies\Microsoft\Security] "CheckAdminSettings"=dword:00000002
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Outlook\Security] "ObjectModelGuard"=dword:00000002 



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Threading;

/*

 Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Policies\Microsoft\Security] "CheckAdminSettings"=dword:00000002
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Outlook\Security] "ObjectModelGuard"=dword:00000002 
  
  
  
 */

namespace LateBindingTest
{
    class OutlookEmailerLateBinding
    {

        private object oApp;
        private object oNameSpace;
        private object oOutboxFolder;
        public static int messageNumber = 0;

        public OutlookEmailerLateBinding()
        {
            int loopNumber = 0;
            Type outlook_app_type;
            object[] parameter = new object[1];
            //Get the excel object
            outlook_app_type = Type.GetTypeFromProgID("Outlook.Application");
            //Create instance of excel
            oApp = Activator.CreateInstance(outlook_app_type);
            //Set the parameter which u want to set
            parameter[0] = "MAPI";
            //Set the Visible property
            oNameSpace = outlook_app_type.InvokeMember("GetNamespace",
            BindingFlags.InvokeMethod, null, oApp, parameter);

            var Logon_parameter = new object[4] { null, null, true, true };
            oNameSpace.GetType().InvokeMember("Logon",
            BindingFlags.InvokeMethod, null, oNameSpace, Logon_parameter);

            var GetDefaultFolder_parameter = new object[1] { 6 };
            oOutboxFolder =
            oNameSpace.GetType().InvokeMember("GetDefaultFolder",
            BindingFlags.InvokeMethod, null, oNameSpace,
            GetDefaultFolder_parameter);

            Console.WriteLine(messageNumber + " - Press enter to exit");
        }

        static void Main(string[] args)
        {
            //int messageNumber = 0;
            while (true)
            {
                messageNumber += 1;
                try
                {
                    OutlookEmailerLateBinding app = new OutlookEmailerLateBinding();
                    app.SendOutlookEmail("user1@domain.com; user2@domain.com", "Duplicate test message email " + messageNumber, "Test message. Testing. Only reply back if you see a duplicate.");
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error Stack {0} ", e.Message);
                }

                //Console.ReadLine();

                Thread.Sleep(5000);
            }
        }

        public void SendOutlookEmail(string toValue, string
subjectValue, string bodyValue)
        {
            var CreateItem_parameter = new object[1] { 0 };
            object oMailItem =
oApp.GetType().InvokeMember("CreateItem", BindingFlags.InvokeMethod,
null, oApp, CreateItem_parameter);

            var mail_item_type = oMailItem.GetType();
            mail_item_type.InvokeMember("To",
                BindingFlags.SetProperty, null, oMailItem, new
object[] { toValue });
            mail_item_type.InvokeMember("Subject",
                BindingFlags.SetProperty, null, oMailItem, new
object[] { subjectValue });
            mail_item_type.InvokeMember("Body",
                BindingFlags.SetProperty, null, oMailItem, new
object[] { bodyValue });
            mail_item_type.InvokeMember("Send",
                BindingFlags.InvokeMethod, null, oMailItem, null);

        }

    }
}




On a side note, here is how to do it in PowerShell in a slightly different way by connecting directly to the Client Access Server (CAS).
.
if ( (Get-PSSnapin | Where-Object { $_.Name -eq "Microsoft.Exchange.Management.PowerShell.Admin"}) -eq $null )
  {
    add-pssnapin Microsoft.Exchange.Management.PowerShell.Admin
  }


 $emailattachment = "xx" # full path to attachment file

 $body = "xx" # body of email

 $smtp = new-object Net.Mail.SmtpClient("xxx") # Dns name or IP of your cas server
 $smtpuser = new-object System.Net.networkCredential
 $smtpuser.domain = "xx" # your domain
 $smtpuser.username = "xx" # your username
 $smtpuser.password = "xx" # your password
 $smtp.Credentials = $smtpuser
 
 $SmtpClient = new-object system.net.mail.smtpClient
 $MailMessage = New-Object system.net.mail.mailmessage
 $SmtpClient.Host = "xxx" # Dns name or IP of cas server
 $mailmessage.from = "xxx" # your email address
 $mailmessage.To.add("xx@xx.xx") # email address to send to
 $mailmessage.Subject = "xxx" # subject
 $MailMessage.IsBodyHtml = $False
 $mailmessage.Body = $body 
 $attachment = New-Object System.Net.Mail.Attachment($emailattachment, 'text/plain') # you may have to change the file type or encrypt file with 7zip to get around gmail file attachment restrictions
   $mailmessage.Attachments.Add($attachment)
 $smtp.Send($MailMessage)




  

Tuesday, July 31, 2012

Windows Server 2012 I hate your start button ...

Windows Server 2012 I hate your start button but I love your virtualization capabilities. I'm hoping my organization will be able to take advantage of your increased number of remote desktop connections, from the current OS we are using. I'm also totally stoked to use your virtualization failover services although I doubt my management will allow me to do that except for Sunday morning at 4am.

I tried [windowskey]+r and I did not get a run prompt, that better have been a fluke. There is no reason to take away my shortcut keys, it is just going to make more work for me to figure out how to put them back into the image. Edit, I just checked again and it was a fluke, but this lack of a my computer icon on the desktop is really throwing me. Hopefully the RTM has the ability to put a Computer icon and some other customizations that some of us admins have gotten used to, on the desktop. Fortunately all of the run commands such as mmc, services and calc are there, although I see you've taken my beloved charmap away. I see we are also back to a boxy, unasthetically pleasing look as a default, of which I can deal with because that graphic rendering is probably just additional overhead and it harkens back to my favorite OS of all time, Windows 2000.

All in all, I think you and I have a lot of potential Windows Server 2012. As long as you run my code and programs well, which I see no problem with because you are running .net 4.0, I'll be mostly happy. It make take a while to get used to your GUI changes, and I may never like them since I am much more efficient with a my computer desktop icon, but I'm willing to give it a chance if you are.


** UPDATE ** On a windows 8 laptop, I've installed http://www.classicshell.net/ . I'm not sure how keen management will be with having this on production boxes, but if you can sneak it into the default profile the Classic Shell is spectacular.

Tuesday, July 17, 2012

Microsoft Exchange Server 2013 Released!

Microsoft has recently released Exchange Server 2013 Preview as well as an Outlook 2013 preview. I cannot go into all the changes in the Exchange Server 2013 Preview release but some of the things you can expect are:
  • Smart Search that learns from your communication and collaboration interactions.
  • Social integration of contact data from multiple sources to provide a single contact view.
  • A new look for Outlook and OWA with A touch aware streamlined UI for OWA and Offline Access in OWA 
  • Improved integration with SharePoint 2013 and Lync 2013
  • Improved E-Discovery searching across Exchange Server 2013, SharePoint 2013, Lync 2013 and Windows File Share
  • A redesigned resilient deployment.
Prerequisites for deploying Microsoft Exchange Server 2013 include:
  1. First join the computer to the appropriate internal Active Directory forest and domain.
  2. Make sure that the functional level of your forest is at least Windows Server 2003, and that the schema master is running Windows Server 2003 with SP1 or later
  3. The full installation option of Windows Server 2012 and Windows Server 2008 R2 SP1 must be used for all servers running Exchange 2013 Preview server roles or management tools.
  4. You should also uninstall 64-bit version of Microsoft Visual C++ 11 Beta Redistributable.
Please note that Mailbox and Client Access Server (CAS) Roles are the only choices. The transport pipeline in Exchange 2013 Preview is now made up of several different services: the Front End Transport service on Client Access servers, the Hub Transport service on the Mailbox servers, and the Mailbox Transport service on the Mailbox servers.

RPC is no longer a supported direct access protocol. Outlook connectivity uses RPC over HTTPS.

There are also standalone Help Files for Microsoft Exchange Server 2013 Preview, Microsoft Exchange Online Preview, and Microsoft Exchange Server 2013 Preview Hybrid Deployments release as well as a Resource Page that has more information.

You are encouraged to send feedback to Microsoft using the Exchange Server 2013 Feedback option.

More information will be revealed at the upcoming Microsoft Exchange Conference (MEC) in Florida from September 23rd to 26th 2012. I hope to be in attendance at my first MEC.

You can engage in the discussions at the forums. I will be reading and maybe posting there also.

Please note due to the nature of this product information and links can be changed without warning.

Wednesday, June 20, 2012

Windows Phone Summit Highlights



This information is hot off the Windows Phone 8 Summit held on June 20th 2012 in San Francisco. The show was kicked of by the same DJ using the transparent touchscreen seen before the opening keynote at TechEd North America 2102 in Orlando last week. The major highlights of the event are:
  1. No device upgrade to Windows Phone 8 OS(Apollo)
  2. Hardware Multicore Processor support
  3. A new Start Screen with different Tile Sizes
  4. Mobile Wallet Hub
  5. New "Shared" Kernel
Here is a bit more about the major highlights I listed above:

No device upgrade to Windows Phone 8 OS(Apollo)
This one hurt me the most.  There will be a Windows Phone 7.8 OS upgrade for devices running Windows Phone 7.5 (Mango) that cannot take advantage of all the new features due to hardware requirements. It seems that all devices will get this upgrade independent of carrier and over the air (3G, 4G or WiFi) instead of being forced through Zune. Windows Phone 8 is expected to be available by fall 2012.

Hardware Multicore Processor support
Windows Phone 8 will support for multi-core processors including dual core initially and quad core and more in the future. The first devices are expected to be dual core processors.

A new Start Screen  with different Tile Sizes
Microsoft introduced three sizes of Live tiles, small, medium, and large. Please note that existing Windows Phone devices have the medium and large Live tiles but are not resizable. Windows Phone 7.8 and Windows Phone 8 should support three resolutions in total: WVGA, WXGA,(both 15:9) and 720p (16:9). The new screen also offers more color customization and personalization options. The arrow on the right side of the screen is gone and all tiles now take up the whole screen with a smaller tile layout.

Mobile Wallet Hub
The Mobile Wallet in Windows Phone 8 will support Near Field Communication (NFC) payments as well as the Passbook type of e-wallet offered by Apple on their iOS Devices. Microsoft promises the “most complete” mobile wallet solution, because they are working directly with the carriers.

New "Shared" Kernel
Windows Phone 8 will share the same kernel as Windows 8. This will allow the use of Micro SD cards as external storage which is a big change from how it was done in Windows Phone 7 and Windows Phone 7.5. Device Encryption, Secure Boot and Device management are another benefits gained via the new shared kernel. Developers will be able to use managed code developed for Windows 8 with Windows Phone 8. They will be able to use C, C++, C#, HTML 5 and Direct X in development of apps for both platforms.

Other fun things to note. Internet Explorer 10 is the new browser. Skype will take advantage of the deep VOIP integration.There will be new devices from Nokia, Samsung and HTC. There are now 100,000 apps in the Marketplace. Zynga has promised Draw Something and Words with Friends to come later this year. New Tap + Send app will allow content sharing. Nokia Maps will replace Bing Maps.

Is it enough to make you switch or wait? Your Thoughts and comments are welcomed.

Tuesday, June 19, 2012

How to Have a Daily PowerShell Report of your Exchange 2007 backups sent to you everyday.

Have you ever needed a way to quickly tell what was going on with your Exchange 2007 backups at night when you are not in the office? I came up with this script back in 2010 that helps you do that using PowerShell combined with Scheduled tasks on a Windows Server. Tested on Exchange 2007 and PowerShell v1 and v2.

We do Full Backups daily but if you want to, you can add “LastIncrementalBackup”or “LastDifferentialBackup” to suit your needs.

Here is the script:
------------------------------------------------------------------------------------------------------------
#######################################
#Backup_report_vs1.ps1                #
#http://imjustanengineer.blogspot.com #
#Created by DJ 6/2/2010               #
#######################################

Add-PSSnapin Microsoft.Exchange.Management.powershell.admin;

Get-Mailboxserver | Get-MailboxDatabase -Status |FL Name,Server,lastfullbackup,backupinprogress,Mounted > c:\exch2007_backups.txt

start-sleep -s 120

$filename = “c:\exch2007_backups.txt”
$smtpServer = “your.smtpserver.com” #Enter FQDN of your SMTP server

$msg = new-object Net.Mail.MailMessage
$att = new-object Net.Mail.Attachment($filename)
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = “BackupReportingScript@yourdomain.com” #Enter senders email address $msg.To.Add(”recipient1@yourdomain.com, recipient2@yourdomain.com,”) #Enter one or more recipient addresses
$msg.Subject = “Exchange 2007 Servers Backup Report" #Enter subject of message $msg.Body = “Attached is the Daily Exchange 2007 Servers Backup Report. Please note any servers that have not been backed up for more than a day.” $msg.Attachments.Add($att)

$smtp.Send($msg)
-----------------------------------------------------------------------------------------------------------

In the created text file on your C: drive you should output that looks like

Name             : EXCH-SERVER01_SG01DB01
Server           : EXCH-SERVER01
LastFullBackup   : 6/7/2010 2:33:10 AM
BackupInProgress : False
Mounted          : True



Please let us know if this is helpful to you.  

Wednesday, June 6, 2012

World IPv6 Day June 6th 2012



World IPv6 Day is today June 6th 2012. It is also called IPv6 Launch Day since it is the the day major websites and Internet Service Providers (ISPs) permanently enabled IPv6 and began the transition from IPv4.

What are IPv4 and IPv6?
IPv4 is the current version of the Internet Protocol, the identification system the Internet uses to send information between devices. This system assigns a series of four numbers (each ranging from 0 to 255) to each internet connected device. IPv4 only allows for about 4 billion addresses.

In 1998, the Internet Engineering Task Force (IETF) released standards for a new Internet Protocol, IPv6 under RFC2460. IPv6 is a 128-bit IP address space (each broken into hexadecimal groups), which means around 340 trillion trillion trillion addresses. An IPv4 address looks like 192.168.1.1 whereas an IPv6 address would look like 2001:0470:82a9:0007:f2de:f1ff:fe5b:b324 (Thanks to Ed Horley for the correction to my IPv6 address)
History
On June 8th 2011, World IPv6 Day was held for the first time organized by The Internet Society. The aim last year was to test the public deployment of the IPv6 protocol by a few hundred sites including Akamai Technologies,Microsoft,Google,Facebook, Yahoo to name a few. Another goal was to get a sense of what it will take to transition to IPv6 addresses when addresses in the IPv4 space run out which actually happened in 2011.

Happening now
As Internet Service Providers(ISPs) enable IPv6, and support it, home users at home with modern operating systems and devices will start using IPv6 automatically. Windows Vista, Windows 7, and Mac OS X 10.7 support IPv6. You can check your home router’s documentation to see if it support’s IPv6, and contact your ISP to ask if IPv6 is deployed in your service area.

In the June issue of Microsoft's Springboard Insider newsletter, I see that attendees at TechEd North America 2012 can be a part of the IPv6 BootCamp: Get Up to Speed Quickly. I was happy to see that deploying IPv6 with Microsoft Exchange Server 2010, Windows 7, and Windows Server 2008 R2 will be covered.

There will also be a session entitled IPv6: HardCore Networking Services covering differences between IPv4/IPv6 and ARP, DHCP, DNS, DNSSEC and their new roles. This session will also cover common misconceptions about IPv6 and how you should avoid them.

I plan to be at both of these sessions at Teched North America 2012. If you get a chance to attend Teched North America 2012 I would hope you take the time to get the knowledge about IPv6.

Comments are welcomed.

Monday, June 4, 2012

TechEd North America Attendee Tips





These are some tips from a  TechEd North America Attendee.
  1. Chewing gum for the flight. Years ago someone told me about chewing gum during takeoff and landing helps with air pressure in your inner ear (known as airplane ear)when ascending and descending. I always pack some gum in my carry-on just for this purpose.  
  2. Do not to pack too many clothes. You can get free T-shirts from most vendors and they usually have incentives for wearing their shirt on the Expo Floor. You will not have time to wear all the extra clothes if you bring them but you will have room in your bag to take home all the T-shirts you will get.
  3. Bring comfortable shoes (not new shoes) for all the walking you will have to do to get to sessions and meals (breakfast and lunch are provided at TechEd) and maybe back to your hotel.
  4. You will most likely get a backpack as a TechEd Attendee so unless you really like yours or it is a road warrior type or laptop bag, one is not needed.
  5. Bring your cell phone charger(s) and/or power strip. There should be outlets available in sessions and powerstrips in the Alumni Lounge (For past attendees only).
  6. Try to arrive early for breakfast and lunch at TechEd. Lines can be long but they move quickly. There are separate serving stations for pre-registered dietary needs (Vegetarian, Indian Vegetarian, Halaal, Kosher).
  7. Plan to arrive for sessions early. Rooms can fill up for some of the more popular speakers and topics. Try to attend the second session of a topic if there is one available. Use the Schedule Builder to know what will be available. If you are above a 101 level skip those sessions and attend the ones that will be more beneficial to you and your company. Also add multiple sessions to the same timeslot on your schedule, it can help if a session is full and there is only that one for the entire conference.
  8. If you really want to attend the early morning sessions(8:30 am), try not to stay up too late at night. Keep in mind most sessions will be recorded and available later for attendees to download after the conference.
  9. Get to registration early with your final confirmation email and Government Issued ID. In past years, there is a self-checkin process that was really efficient.
  10. Do NOT lose your badge. This is needed to get into sessions, events and will be scanned by the vendors on the Expo Floor so they can contact you after the show.(it's a business card without walking around with 500 cards).
  11. Use the MyTeched Site formerly CoMMNet. It contains all the latest changes including room swaps, cancellations and other updated information during the conference.
  12. If you are on twitter follow hashtag  #msteched since there are other TechEds out there now. Last I checked that was the official hashtag. Also follow @Teched_NA Account for great information. Another wonderful resource is @TheKrewe and hashtag #thekrewe
  13. Pack a fleece or light jacket or long sleeved shirt that you can remove when you go outside. The air conditioning units may be on blast in some of the rooms.
  14. Use the Hands-On Labs. Those are great opportunities to get familiar with the Microsoft products and there usually very helpful staff nearby that can help with technical issues. Tip: Get to these early since they are usually in high demand.
  15. Remember to recycle your unwanted papers etc from the TechEd backpack. There is usually a recycle station the booth for THE CODE PROJECT.
  16. Save your wristband for the TechEd Closing party. It is usually a tear-off perforated strip on the side of the flyer announcing the closing party. Do not throw it away without removing the wristband first.
  17. Take advantage of the available computers on the expo floor and throughout the convention center. This can help you with your cellphone's battery life and/or lugging around two bags or trying to put your laptop in the TechEd backpack.
  18. Schedule some break time to recover from the walking and food. If you are a past attendee, you can join me in the Alumni Lounge.
  19. Provide feedback about the sessions you attend. Microsoft is listening and you can help shape the next TechEd by just filling out the surveys.
  20. Ice-cream bars come out around 2:30. Be on the lookout for the coolers. They disappear fast. There are usually frozen fruit bars available too. Last TechEd these were not there so maybe they are cutting back.
  21. For you coffee and tea drinkers, you should bring a travel mug with you or if you get one as swag from a vendor, you can use that since it will hold more liquid and keep your drink hot longer than the paper cup at the coffee and tea stations.
Enjoy TechEd North America and go back to your job and share what you have learned! Comments are welcomed.