Tuesday, March 15, 2011

Generate Computer names in MDT 2010/SCCM based on prefix and a sequence number including OU assignment

I must admit MDT and SCCM works nice together, but it lacks some features like auto generating names(sequentially) and dynamically assigns clients to OU based on multiple criteria’s (at least what I know…)
What I’ve been struggling with the last days are to auto generate names to unknown computers being installed with a new Win7 image. I came across http://www.deployvista.com/Home/tabid/36/EntryID/120/language/en-US/Default.aspx
Which solved my naming issue… Good work Johan Arwidmark:)

But I still had one issue left; the OU structure is more complex than just location or type. I need to put the computers in an OU structure based on location and type of client.
The OU structure is like this; OU=ComputerType,OU=Computers,OU=Location, DC=domain,DC=local.
To resolve this issue, I’ve expanded the stored procedure Johan created, and created an extra table to store the following info:
  • Location – The name of you Location example: New York
  • Gateway IP – The same as MDT. What Gateway identifies the New York location
  • Shortname – The shortname of location for use in computername example: NY
  • BaseOU – the OU string for this location: OU=Computers,OU=New York,OU=Locations,DC=domain,DC=local
To populate the information you want to use for generation, you have to use SQL Management Studio to add information to the table.

In addition you need to change the MachineObjectOU column in the MDT settings table to more than 50 characters. I used 255 since I know my OU paths aren’t longer than that. But in my case 50 characters are too short.

Based on the information above the stored procedure will create a computer name sequentially in the following format PCLOCATIONSEQUENCE, example PCNY00001. The computer account will also be created in the OU=Laptop,+BaseOU or OU=Desktop,+BaseOU or OU=VM,+BaseOU based on the %islaptop%, %isdesktop% or %isvm% parameters in MDT.

To change the naming convention for the computer name, edit the stored procedure to change the order or add hyphens (-) for segmentation.

In the MDT/SCCM task sequence you need to use the %OSDDomainOUName% and not the %machineobjectOU%

I’m not a SQL guy, so the code might be a mess, but it’s working. I’ll try to rewrite the procedure to optimize the code. But I don’t know when it will be finished.

Download files here:
http://cid-214999a8ebe4fcb4.office.live.com/browse.aspx/.Public/SCCM

Run the scripts on you MDT database and add the following configure to your current Customsettings.ini:

[Settings]
Priority=IdentifyComputer, CSettings

[CSettings]
SQLServer=SERVERNAME
Database=MDTDATABASENAME
Netlib=DBNMPNTW
SQLShare=DeploymentShareProd$
Table=ComputerSettings
Parameters=UUID, AssetTag, SerialNumber, MacAddress
ParameterCondition=OR

[IdentifyComputer]
SQLServer=SERVERNAME
Database=MDTDATABASENAME
Netlib=DBNMPNTW
SQLShare=DeploymentShareProd$
StoredProcedure=IdentifyComputer
Parameters=MacAddress, DefaultGateway,Islaptop,IsDesktop,IsVM
ParameterCondition=And

Monday, January 31, 2011

Routing Group Connector - Loop condition 2010

Today I’ve been troubleshooting a looping condition on a Exchange 2003 -> 2010 transition. The mail flow from Exchange 2010 -> 2003 is working fine, and with a new SMTP connector for internet mail the Exch2010 is able to send to the internet.

But one thing does not work, and that is mail flow between the Exc2003 and Exc2010. No NDRs, nothing is reported back from the system, but the mails are located in the “Messages queued for deferred delivery”queue. When the SMTP service is stopped, I receive a NDR for the messages saying it’s a loop:

Your message did not reach some or all of the intended recipients.
Subject: Test 11
Sent: 5/01/2010 3:34 PM
The following recipient(s) could not be reached:
user@domainname.com on 5/01/2010 3:34 PM
A configuration error in the e-mail system caused the message to bounce between two servers or to be forwarded between two recipients. Contact your administrator.


The exchange 2003 organization does not have other routing group connectors, and is not using Smarthost for outgoing emails. The Exc2010 RoutingGroupConnector created during install has been deleted and recreated to see if that did the trick, but it didn’t.

It turns out that the Exc2003 cluster had 2 SMTP virtual servers, where as one was stopped due to some old errors, and the on the routinggroupconnector this was the SMTP server used. I could not find any powershell parameters to define a different SMTP virtual server, so I had to use ADSIEDit to change the default SMTP virtual server on the connector. Thanks to Winroute for giving me a red cross on the RoutingConnector, and sending me in the direction of multiple SMTP servers.


After changing this and wait for the Exchange to pick up the config from AD, mail flow is now working both ways between Exc2003<->Exch2010.

Friday, November 12, 2010

MapiExceptionNoSupport: IExchangeFastTransferEx.TransferBuffer failed hr=0x80040102, ec=-2147221246

These last couple of days I've been migrating a customer from Exchange 2003 to Exchange 2010 SP1.
All users were moved successfully, except one. On this user we got some strange error messages in the move-requeststatistics command and on the HUB transport responsible for the move.
The complete error message is posted at the bottom.

On this user the move-request failed after just some MB, and the troubleshooting begun.
These are the steps I took:
  • Use Exmerge on 2003 for .pst migration - Failed. The error message in the exmerge logfile is as follow:
    Error copying messages from folder '\Inbox' (MAPI_W_PARTIAL_COMPLETION) [22:14:27] Trying to copy messages in folder '\Inbox', individually. To avoid duplicates in the target store, messages will be merged and not copied into the target store. [22:14:27] Error getting Contents Table. (CopyMessagesToDestFolder)
  • Migration to another Exchange 2003 mailbox store - OK
  • Migration to Exchange 2010, gives the error message below.
  • Export to .pst from Outlook - OK
The solution for me was to use PFDAVAdmin and to reset the DACL on the mailbox. Tried the Check DACL state, before the Fix, and it said it was ok. But apparently not.


When the DACL was reset, the move-request went successfull.

Complete Error message:
Request domain.fqdn/OU/name' (f71639ea-0868-4527-b71e-7b6311359e98) failed.
Error code: -2147221246
MapiExceptionNoSupport: IExchangeFastTransferEx.TransferBuffer failed (hr=0x80040102, ec=-2147221246)
Diagnostic context:
Lid: 55847 EMSMDBPOOL.EcPoolSessionDoRpc called [length=470]
Lid: 43559 EMSMDBPOOL.EcPoolSessionDoRpc returned [ec=0x0][length=645][latency=0]
Lid: 23226 --- ROP Parse Start ---
Lid: 27962 ROP: ropFXDstCopyConfig [83]
Lid: 27962 ROP: ropTellVersion [134]
Lid: 27962 ROP: ropFXDstPutBufferEx [157]
Lid: 17082 ROP Error: 0x80040102
Lid: 31329
Lid: 21921 StoreEc: 0x80040102
Lid: 27962 ROP: ropExtendedError [250]
Lid: 1494 ---- Remote Context Beg ----
Lid: 1238 Remote Context Overflow
Lid: 32762 dwParam: 0x3FD60040
Lid: 30106 StoreEc: 0x471
Lid: 18842 StoreEc: 0x471
Lid: 20234
Lid: 3625 StoreEc: 0x471
Lid: 25066
Lid: 21970 StoreEc: 0x8004010F PropTag: 0x668F0040
Lid: 21970 StoreEc: 0x8004010F PropTag: 0x674A0014
Lid: 21970 StoreEc: 0x8004010F PropTag: 0x36138000
Lid: 31473 StoreEc: 0x8004010F
Lid: 39287
Lid: 17916 StoreEc: 0x80040102
Lid: 32252 StoreEc: 0x80040102
Lid: 7915 StoreEc: 0x80040102
Lid: 20320
Lid: 4559 StoreEc: 0x80040102
Lid: 21802
Lid: 19994 StoreEc: 0x80040102
Lid: 20202
Lid: 3305 StoreEc: 0x80040102
Lid: 32762 dwParam: 0x3FE00102
Lid: 32762 dwParam: 0x675C0102
Lid: 32762 dwParam: 0x67510003
Lid: 26346
Lid: 4073 StoreEc: 0x80040102
Lid: 28570 StoreEc: 0x80040102
Lid: 29738
Lid: 3401 StoreEc: 0x80040102
Lid: 1750 ---- Remote Context End ----
Lid: 26849
Lid: 21817 ROP Failure: 0x80040102
Lid: 22630
Context:
--------
Operation: IMapiFxProxy.ProcessRequest
OpCode: TransferBuffer
DataLength: 404
--------
Operation: IMapiFxProxy.ProcessRequest
OperationSide: Target
Primary (f71639ea-0868-4527-b71e-7b6311359e98)
OpCode: TransferBuffer
DataLength: 404

Friday, October 22, 2010

File Server Resource Manager migration - Filescrn

Today I'm working on a Win2003 File Cluster upgrade to Win2008R2 Cluster.
The customer are using the File Screening feature in Windows 2003 R2, and would like to have the templates, file groups and file screens on the new 2008R2 cluster.

To do this migration, you have to have at least one cluster disk in your 2008R2 cluster.
On Win2003R2:
  • Start command prompt and do the following commands
  • filescrn filegroup export /path:C:\temp\filegroupname.xml /filegroup:NameOfFilegroupToExport
  • filescrn template export /path:C:\temp\templatename.xml /filegroup:NameOfTemplateToExport

If you know try to import these files into 2008R2, you'll get the following error message:

The version of the configuration file you are trying to import is not supported.
You cannot import configuration files with database versions earlier than 2.0.

To resolve this, open the .xml files you exported and change the
  to

You are now able to import the files on the 2008R2 server.

To import on 2008R2, do as follow:
  • Start command prompt and do the following commands:
  • filescrn filegroup import /path:C:\temp\filegroupname.xml /filegroup:NameOfFilegroup
  • filescrn template import /path:C:\temp\templatename.xml /filegroup:NameOfTemplate
Your templates and filegroups should now be configures as they were in the 2003 cluster.

All you have to do now is to create the screening rules, associate a template to a volume, and your good to go.

After this configuration has been made, do a cluster failover and verify that the configuration is correct on the other nodes in the cluster.

Thursday, October 21, 2010

Exchange 2010 - Lotus Notes - Transporter Suite - Directory Sync

Im doing a Exchange 2010 migration from Exchange 2003. The customer are using the Exch2003 Notes Connector, and we have to move this solution so we can remove the Exchange 2003 solution.
As we all know, Microsoft has statet that they don't want to create a new Transporter Suite which was shipped for Exchange 2007 to support Exchange 2010. We have chosen to use the Transporter Suite, but to do this in a supported way, we installed a Exch2007 Mailbox /CAS server.
My customer uses the Notes connector for Directory import with a partner, and are not used for migration between Notes and Exchange.

To use the Transporter Suite in a Exchange 2010 environment for directory syncronization, you have to do as follow:
  • Install an Exchange 2007 server holding MBX and HUB or CAS in your environment.
  • Install Lotus Notes version 7.1 or higher (I used 8.x) in "this user only". Transporter Suite does not like multiple notes.ini files
  • Make sure your server can do name resolution to Notes server, and that the ports are open.
  • Create a new connector with the settings you want regarding notes server, Notes addressbook name, domain name, what to syncronize to Notes.
  • Get GUID from legacy connector (powershell)
  • Get GUID from new connector (powershell)
  • Delete legacy Notes Connector from AD (Adsiedit.msc)
  • Create a OU where you want the users to be created in AD. If you do an upgrade from Exchange 2003 skip this.
  • Give the computer account running the Transporter Suite Account Operator permissions / FC on the OU where notes contacts should be created
  • If your Notes hosts multiple SMTP domains, you have to edit the file dominotoexchangerules.tbl. This file does some matching against the SMTP domain you specify on your connector. If the SMTP domain does not match, you get a lot of Notes users with primary SMTP addresses with / and % which gives a lot of errors. If the match failes, it adds the Notes internal address and adds the domain specified which gives you for sure an unsupported  SMTP address.
    I changed the following fields to just put the Notes InternetEmailAddress as primary SMTP on the Contact object.
    TA=InetAddr
    PriSMTP=InetAddr
    SecSMTP= Deleted
  • Run Full import to AD and Full Import to Notes
  • Only neccary if you are upgrading legacy connector:
    Run the following command to upgrade/ take overship of existing Connector contacts:
    Start-DominoDirectoryConnector -Identity newconnectorGUID -TakeOwnership -LegacyConnectorID
  • All your Notes Contacts should now ha primary e-mail as a legal SMTP address, and not notes user id or notes interal address.
  • Uninstall Notes connector tool on Exchange 2003.
Since the new transport suite uses SMTP for routing you could create a SMTP send connector to send the mail to the specific servers if necessary. But since SMTP is enabled, you could relay on the MX on internet to deliver the mail for you.

This is my solution to using Transporter Suite in Exchange 2010 environment.

Thursday, October 7, 2010

Direct Access - UAG - 2003 File Cluster Access

At a customer who has deployed DA, we have a strange problem.
The clients using DA suddenly got disconnected from the networks share on a 2003 FileCluster.
This could be only seconds after they connected, that they got a red cross on the network drive. when accessing the drive, they either got an error saying it could not connect, or it connected as normal. If the error message was thrown, they tried again, and got connected.

After a lot of troubleshooting, the explanation was found. When one user is connected to the fileshare over DA its OK, when a new user connects to the fileshare, the new connection resets the old one. This is because the UAG server is using NAT64 the UAG server is responsible for terminating the DA sessions and transalating them to Ipv4. More info here: http://blogs.technet.com/b/edgeaccessblog/archive/2009/09/08/deep-dive-into-directaccess-nat64-and-dns64-in-action.aspx.

If the fileserver had been 2008 servere this would not have been an issue, since DA would not use NAT64, and IPv6 could have been used for the entire session.

Due to NAT64 the UAG server needs to create a sessions for each DA user to the 2003 file cluster share. This is not supported in  SMB1 http://support.microsoft.com/kb/301673,
but is supported in SMB2.
Microsoft gives you 2 option, block port 445 and use Netbios, or upgrade the file cluster to 2008, which support SMB2.


*************UPDATE*****************
Microsoft has confirmed this issue, and are working on a hotfix KB2444558 that will fix this issue.

This issue can also affect the authentication between DA and 2003 domain controllers, since this also uses SMB. 
The expected release date is week 48.
*******************************************

Monday, September 6, 2010

Paternity leave and vacation

I'm on paternity leave and vacation.

Will be back 13 sept.