Getting your ADO.NET Data Services uris right: the easy way
Mon, Nov 9 2009 12:13

Here we are again, for more on the MS AJAX library. In the previous post, we’ve seen that we can interact with ADO.NET Data Services by using the AdoNetDataContext instances. Today, we’ll be looking at more advanced features of the ADO.NET Data Services which are also available in the MS AJAX library.

Before going on, I must confess that I’m not really an ADO.NET Data Service user (I guess this has made me curious enough for taking a peek in the future). However, since the MS AJAX library offers such great support for it, I couldn’t resist doing some digging and seeing which options are available for interacting with an existing data service.

According to the docs, ADO.NET Data Services can “be surfaced as a REST-style resource collection that is addressable with URIs and that agents can interact with using standard HTTP verbs such as GET, POST, PUT or DELETE”. In practice, and if we go back to our previous example, we can get all the images by using the uri http://:…/Services/ImageDataService.svc/Images. Besides this simple option, which returns all the images contained in the object, there are still other interesting options. For instance:

  • we can navigate through related properties;
  • we can expand associated properties;
  • we can filter the returned results;
  • we can paginate the returned data.

All these operations are specified through uris. We can easily do them by building the uris by hand. For instance, we can modify the previous example so that it also displays the associated :

<body xmlns:sys="BLOCKED SCRIPTSys"
      xmlns:dv="BLOCKED SCRIPTSys.UI.DataView">
    <div 
      id="myView"
      class="sys-template"
      sys:attach="dv"      
      dv:autofetch="true"
      dv:dataprovider="{{ _ctx }}"
      dv:fetchoperation="Images"
      dv:fetchparameters="{{ {$expand: 'Tags'} }}">
        <h2>{{Name}}</h2>
        <img sys:src="{{Uri}}" sys:alt="{{Name}}" />      
        <div class="sys-template"
            sys:attach="dv"
            dv:data="{{ Tags }}">
            <span>{{Name}}</span>,
        </div>
    </div>
</body>

By using the $expand parameter, we’ll end up getting each image’s associated tags and we can display them by using a nested DataView control. The next image shows what happens when we load the previous page:

expand

We could specify all the “special” parameters this way. However, there is another way: we can rely on the Sys.Data.AdoNetQueryBuilder class for doing building the uri for us.

The AdoNetQueryBuilder’s constructor expects the base uri and exposes several properties which we can use to build the uri which performs a specific operation against the existing ADO.NET Data Service. You’ll probably end up using the ones which are present in the following list:

  • skip and top: we can combine them for paginating data;
  • orderby: used for indicating the sorting order;
  • filter: responsible for filtering the returned data;
  • expand: used for specifying the properties which will be “expanded” and included in the response.

I must confess that I really didn’t find the use of this object intuitive at first. However, after running some experiences, everything started making sense. In order to show you how you might end up using this object, suppose we want to get all the images and associated tags and that we want to order them by name. Here’s a possible solution:

<head runat="server">   
    <style type="text/css">
      .sys-template{
        display: none;
      }      
      img{
        width:320px;
        height:212px;
      }
    </style>
    <script type="text/javascript" 
      src="../Scripts/MicrosoftAjax/start.debug.js">
    </script>
    <script type="text/javascript">
      var _ctx = null;
      Sys.require([Sys.components.adoNetDataContext,
                   Sys.components.dataView],
      function () {
        var uriBuilder = 
new Sys.Data.AdoNetQueryBuilder("Images"); uriBuilder.set_expand("Tags");//$expand uriBuilder.set_orderby("Name");//$orderby _ctx = Sys.create.adoNetDataContext({ serviceUri: "../Services/ImagesDataService.svc" }); Sys.create.dataView( Sys.get("#myView"), { dataProvider: _ctx, autoFetch: true, fetchOperation: uriBuilder.toString() }); }); </script> </head> <body xmlns:sys="BLOCKED SCRIPTSys" xmlns:dv="BLOCKED SCRIPTSys.UI.DataView"> <div id="myView" class="sys-template"> <h2>{{Name}}</h2> <img sys:src="{{Uri}}" sys:alt="{{Name}}" /> <div class="sys-template" sys:attach="dv" dv:data="{{ Tags }}"> <span>{{Name}}</span>, </div> </div> </body>

This time, I’ve opted for using an imperative approach. Things are really similar to what we had before; however, notice that now we’re using an AdoNetQueryBuilder object to set the fetchOperation property of the DataView object.

We start by instantiating the AdoNetQueryBuilder object. If you recall it, I said that this wasn’t really intuitive…it was only looking at the source code that I’ve understood that I was supposed to pass the name of the resource I wanted to access (instead of passing the base uri for the service – not sure on why the constructor’s only parameter is called uri, when resource would have make things so much easier!). Since I was interested in retrieving images, I only had to pass the string “Images” to the constructor.

After having an instance and setting the required properties (recall from above that we wanted to get images+tags and to order everything by name), we can simply call the toString method to get the string which represents the operation we need to perform. And that’s it. We’ll still be speaking about MS AJAX in future posts, so stay tuned for more!

by luisabreu | with no comments
Filed under: ,
O carro dos sonhos
Mon, Nov 9 2009 5:56

Olá Amigos,

Resolvi escrever um post fora de tecnologia ... uma homenagem especial ao meu carro Smile

Comprei essa máquina o ano passado após ter retornado dos EUA e agora vendi, com muito pesar, para suprir outros planos ....

Deixo aqui uma foto para apreciarem essa belezura ......rs

abs

by andrey | with no comments
Filed under:
What’s in the ZuneHD firmware update?
Mon, Nov 9 2009 5:52
Microsoft released the v4.3 firmware update for Zune HD players and it includes the following additions and fixes: Support for the upcoming 3D games and applications. Auto Suggest feature for text input. Faster web browsing experience. Landscape keyboard...
Don't Miss the Silverlight Toolkit for Getting Additional Silverlight Mojo!
Mon, Nov 9 2009 6:41

Regardless of whether you have installed Silverlight for VS 2008 or VS2010, you will want to install the additional Silverlight Toolkit:

http://www.codeplex.com/Silverlight

This toolkit gives you additional controls, components and utilities released outside the regular Silverlight release cycle. This is good news because Microsoft is releasing new Silverlight functionality iteratively. Rather than providing these controls with a "big bang" release, Microsoft is releasing them iteratively to get feedback from the developer community (can anyone say "user stories") before officially including them in the product.

These new controls are designated with different quality bands, indicating their level of maturity. This helps you decide whether you want to include them in your projects right now, or possibly wait until more mature versions of the controls are released. Here is a list of the four quality bands, listed in ascending order from least to most mature:

- Experimental
- Preview
- Stable
- Mature

Check out this link for a description of each quality level: http://silverlight.codeplex.com/wikipage?title=Quality%20Bands&referringTitle=Home.

This kind of iterative release is a good example for developers to follow. Software developers often have difficulty "letting go" of their code because they don't want to put something in front of end uers that isn't perfect, so they wait until they are finished to get feedback. The problem with this approach is that users can't really provide solid feedback until they have something in front of them that they can play with. So, developers who wait until their software is complete before letting users provide feedback often find themselves rewriting and refactoring their code, and ultimately delaying the release of their software.

The moral is, get feedback as early and often as possible!

Best Regards,
Kevin McNeish
INETA Speaker
Chieft Architect, MM .NET Application Framework
www.oakleafsd.com

 

OpsMgr: Le pack d'administration Exchange 2007 NATIF pour Operations Manager 2007 SP1 est enfin disponible.
Mon, Nov 9 2009 12:03

Microsoft vient de publier une nouvelle version du pack d'administration Exchange 2007 pour Operations Manager 2007 SP1. Il s'agit d'une version native, comme celle qui est disponible pour Operations Manager 2007 R2.

Beaucoup de choses ayant changées, bien lire la documentation avant.

Téléchargement : Exchange Server 2007 Management Pack for System Center Operations Manager 2007 SP1 v6.0.6741.0.

by Yann Gainche | with no comments
Filed under:
OpsMgr: Correctif cumulatif important pour Operations Manager 2007 SP1 (971541)
Mon, Nov 9 2009 11:55

Un correctif important pour Operations Manager 2007 SP1 vient d'être publié. Il s'agit du correctif KB971541 qui intègre de nombreux correctifs POST-SP1 et permet la prise en charge de Windows 7 et de Windows Server 2008 R2.

Ce correctif permet également la mise à jour des serveurs SQL hébergeant les bases OpsMgr de SQL Server 2005 vers SQL Server 2008.

Enfin, ce correctif est nécessaire pour utiliser la dernière version du pack d'administration Operations Manager qui permet de gérer des applications 32 Bits avec un agent 64Bits comme cela est le cas avec les serveurs SCCOM 2007 déployés sur Windows 64Bits.

Téléchargement : Update Rollup for Operations Manager 2007 Service Pack 1 (KB971541).

by Yann Gainche | with no comments
Filed under:
Getting started with the AdoNetDataContext
Mon, Nov 9 2009 10:54

Today we’re going to start looking at the AdoNetDataContext. This class expands the DataContext object and uses several specific methods for ensuring the correct interaction with an existing ADO.NET Data Service.

These internal methods added by the AdoNetDataContext are essentially used in identity related operations. In other words, it extends the base DataContext class by introducing several methods which turn on identity support (btw, I’m talking about the stuff we’ve seen in several of the previous posts).

In this post, I’ll be reusing the sample ADO.NET Data Service which is included in MS AJAX preview 6. Here’s the model used internally by the ImageDataService.svc ADO.NET service:

adonetmodel

In this case, and since this is just an intro post, we’ll build a simple page which shows all the images returned by this ADO.NET service:

<head runat="server">   
    <style type="text/css">
      .sys-template{
        display: none;
      }      
      img{
        width:320px;
        height:212px;
      }
    </style>
    <script type="text/javascript" 
      src="../Scripts/MicrosoftAjax/start.debug.js">
    </script>
    <script type="text/javascript">
      var _ctx = null;
      Sys.require([Sys.components.adoNetDataContext, 
                   Sys.components.dataView],
      function () {
        _ctx = Sys.create.adoNetDataContext({
            serviceUri: "../Services/ImagesDataService.svc",
            mergeOption: Sys.Data.MergeOption.appendOnly
        });        
    });
    </script>
</head>
<body xmlns:sys="BLOCKED SCRIPTSys"
      xmlns:dv="BLOCKED SCRIPTSys.UI.DataView">
    <div 
      id="myView"
      class="sys-template"
      sys:attach="dv"      
      dv:autofetch="true"
      dv:dataprovider="{{ _ctx }}"
      dv:fetchoperation="Images">
        <h2>{{Name}}</h2>
        <img sys:src="{{Uri}}" sys:alt="{{Name}}" />      
    </div>
</body>

By now, you shouldn’t really be surprised by anything that is shown in the previous snippet. As you can see, the AdoNetDataContext class protects us from all those nasty details associated with the communication with the ImageDataService.svc server side service. I’m not going to show you how to add, edit or remove items because the samples released with preview 6 already have code which shows how to do those things.

On the next post, we’ll see how to do more interesting operations by using the AdoNetQueryBuilder object. Stay tuned for more on MS AJAX.

Watching the file system
Mon, Nov 9 2009 8:15

We saw how to watch for WMI events http://msmvps.com/blogs/richardsiddaway/archive/2009/11/07/powershell-wmi-events.aspx. In this post we will look at watching the file system. This time we will use the .NET System.IO.FileSystemWatcher object which means we use Register-ObjectEvent instead of Register-WmiEvent.

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
## folder to watch
$folder = "C:\test"
## watch all files
$filter = "*"
## events to watch
$events = @("Changed", "Created", "Deleted", "Renamed")
##
## create watcher
$fsw = New-Object -TypeName System.IO.FileSystemWatcher -ArgumentList $folder, $filter
$fsw.IncludeSubDirectories = $true
##
## register events
foreach ($event in $events){
    Register-ObjectEvent -InputObject $fsw -EventName $event -SourceIdentifier "File System $event"
}

 

We can start by defining the folder we want to watch and which files.  In this case I want to watch all files. We can restrict it to certain files e.g. $filter = “*.txt”

Wildcards work in the normal way for this filter.  We could even restrict to a single file. The events we are interested in are defined.

After creating a System.IO.FileSystemWatcher object using the folder and filter in the construction we set the IncludeSubDirectories property so we are watching the whole path.

Finally we need to register an event for each event we are interested in. Notice how the SourceIdentifier changes to identify the particular event.

We can see the Eventsubscribers we have created.

PS> Get-EventSubscriber | Select SubscriptionId, EventName, SourceIdentifier | ft -a

SubscriptionId EventName SourceIdentifier
-------------- --------- ----------------
             3 Changed   File System Changed
             4 Created   File System Created
             5 Deleted   File System Deleted
             6 Renamed   File System Renamed

We now need to perform some actions on the files – create, change, rename, delete that we are monitoring

PS> Get-Event | group SourceIdentifier

Count Name                      Group
----- ----                      -----
    7 File System Changed       {System.Management.Automation.PSEventArgs, System.Management.Automation.PSEventArgs,...
    1 File System Renamed       {System.Management.Automation.PSEventArgs}
    1 File System Created       {System.Management.Automation.PSEventArgs}
    1 File System Deleted       {System.Management.Automation.PSEventArgs}

If we look at this in more detail

PS> Get-Event | select EventIdentifier, SourceIdentifier, TimeGenerated

                        EventIdentifier SourceIdentifier                        TimeGenerated
                        --------------- ----------------                        -------------
                                      1 File System Changed                     08/11/2009 11:46:39
                                      2 File System Changed                     08/11/2009 11:46:39
                                      3 File System Renamed                     08/11/2009 11:49:53
                                      4 File System Changed                     08/11/2009 11:49:53
                                      5 File System Created                     08/11/2009 11:53:18
                                      6 File System Changed                     08/11/2009 11:53:18
                                      7 File System Changed                     08/11/2009 11:53:31
                                      8 File System Changed                     08/11/2009 11:53:31
                                      9 File System Deleted                     08/11/2009 11:54:22
                                     10 File System Changed                     08/11/2009 11:54:22

 

Note that we get pairs of events – the second event of the pair is always a change event.  If we just want to see the changes (and remove duplicates). Just be careful on this and check whether its the odd or even record you need if running multiple registered events. 

001
002
003
004
Get-Event -SourceIdentifier "File System Changed" | where {($_.EventIdentifier % 2) -eq 1} | foreach {
    "{0}, {1}, {2}" -f   $_.SourceIdentifier, $_.SourceEventArgs.FullPath, $_.TimeGenerated
   
}

 

We can use Get-Event to pull the change events from the queue. The modulo arithmetic on the EventIdentifier ensures that we only get the first change record. We can then dump the file path and time of change.

In a similar way we can interrogate the other events

001
002
003
004
Get-Event -SourceIdentifier "File System Created" | foreach {
    "{0}, {1}, {2}" -f   $_.SourceIdentifier, $_.SourceEventArgs.FullPath, $_.TimeGenerated
   
}

 

001
002
003
004
Get-Event -SourceIdentifier "File System Renamed" | foreach {
    "{0}, {1}, {2}, {3}" -f   $_.SourceIdentifier, $_.SourceEventArgs.OldFullPath, $_.SourceEventArgs.FullPath, $_.TimeGenerated
   
}

 

001
002
003
004
Get-Event -SourceIdentifier "File System Deleted" | foreach {
    "{0}, {1}, {2}" -f   $_.SourceIdentifier, $_.SourceEventArgs.FullPath, $_.TimeGenerated
   
}

 

These four could be combined into a single script if required.

Combined with the process tracing we did previously we can now track what programs are started on a system and what files are accessed.

Technorati Tags: ,,
Migration Step Eigheen: Moving the trusted cert
Sun, Nov 8 2009 23:06

If you are like me and already have a godaddy cert ...and believe me when I say I have one... I bought the dang thing for ten years in advance so I wouldn't accidentally forget to renew it.  So I kinda want to keep this cert and not rebuy it.

But we can move it from the one box to the other...no prob.

http://www.microsoft.com/downloads/details.aspx?FamilyID=52b7ea63-78af-4a96-811e-284f5c1de13b&DisplayLang=en

From the detailed migration documentation is this step:To export a trusted certificate from the Source Server

1.   On the Source Server, click Start, click Run, type mmc.exe, and then press ENTER.

2.   On the console, click File, and then click Add/Remove Snap-in.

3.   Click Add, choose Certificates from the list, click Add again, and then click OK.

4.   On the pop-up window, click Computer Account, click Finish, and then click OK.

5.   Expand Certificates, expand Personal, and then click Certificates.

6.   Right-click the certificate that is issued to your Web site (for example: remote.contoso.com), and then click All Tasks, and then click Export.

Note

There may be multiple certificates with the same name. Ensure that you choose a certificate that has a valid expiration date and that was issued by a trusted authority. If you are not sure which one to use, open Internet Information Services (IIS), determine which certificate IIS is using on the Source Server, and then choose that certificate.

7.   In the Certificate Export Wizard, click Next.

8.   Ensure Yes, export the private key is selected, and then click Next.

9.   Ensure Include all certificates in the certificate path if possible and Export all extended properties are selected, and then click Next. Do not select Delete the private key if the export is successful.

10.  Type a password to protect the certificate file, and then click Next.

11.  Choose a location to save the .pfx file (for example, C:\trustedcert.pfx), and then click Next.

12.  Finish the wizard.

 

To import the trusted certificate to the Destination Server

1.   Move the trustedcert.pfx file to the Destination Server by using either the network or a USB drive.

2.   On the Destination Server, click Start, type mmc.exe, and then press ENTER.

3.   On the console, click File, and then click Add/Remove Snap-in.

4.   Choose Certificates from the list, and then click Add.

5.   On the pop-up, select Computer Account, click Finish, and then click OK.

6.   Expand Certificates, expand Personal, and then click Certificates.

7.   Right-click Certificates, click All Tasks, and then click Import.

8.   On the Certificate Import Wizard Welcome page, click Next.

9.   Browse to the location of the saved .pfx file, and then click Next.

10.  Type the password that you typed in the Export procedure, ensure that Mark this key as exportable and Include all extended properties are selected, and then click Next.

11.  Ensure that the certificate will be imported to the Personal folder, and then click Next.

12.  Finish the wizard.

 

On the next screen where you can't see the cert... don't panic.  Click the drop down menu to see the pfx file format

Voila...there's your transfered cert from the other box

Make sure that "mark the key as exportable" so that when we ever do this again...we can move it again.

To do this next step at this point in the migration you can hit cancel on the migration steps, jump over to the main console and run the Add a trusted certificate wizard.

To ensure that the Destination Server is using the newly imported certificate, run the Add a Trusted Certificate Wizard.

To run the Add a Trusted Certificate Wizard

1.   Open the Windows SBS Console.

2.   On the navigation bar, click the Network tab, and then click Connectivity.

3.   In the task pane, click Add a trusted certificate.

4.   On the Welcome page, read the information, and then click Next.

5.   On the Get the certificate page, click I want to use a certificate that is already installed on the server, and then click Next.

6.   On the Choose an installed certificate page, click the certificate that you just imported, and then click Next.

7.   When the wizard finishes, click Finish.

 One thing I moved over as well and put in the trusted root cert store is the godaddy intermediary cert bundle. 

Using our handy dandy virtual floppy disk and moving it from one machine to the other and importing it, this time into the trusted root certs

 

And now to test..we can go to http://domain.com or go into the IIS 7 (not 6) console and go down to SBS web applications and browse to the port 80 and it should slighly freak out and give off a pink warning because internal to the network there's no WWW and my cert has a WWW on the front.

So there you have it, we just moved my umpteen year cert from my one box to the other.

Stay tuned for our next chapter Nineteen ....in "How the server migrated"

Tomorrow's episode... Exchange migration.  Will our email move?  Will our public folders replicate?  Stay tuned you'll be on the edge of your seats for this next blog post!

by bradley | with no comments
Filed under:
Migration Step Seventeen: Migrate network settings
Sun, Nov 8 2009 22:57

 Migrate network settings

This migration step is so easy...that you click the button and go....

uh... that's it?

The next step ...because I have a trusted cert I can migrate the cert from one box to the other.. on to step eighteen

by bradley | with no comments
Filed under:
Migration Step Sixteen: Setting up the domain name
Sun, Nov 8 2009 22:27

Configure the Internet address and leave IPv6 enabled. If you disable it improperly or incorrectly, you will see numerous network issues, including Exchange failing to start. For more information see this blog post on the Microsoft Web site (http://blogs.technet.com/sbs/archive/2008/10/24/issues-after-disabling-ipv6-on-your-nic-on-sbs-2008.aspx ).

Do yourself a favor and plan on using a godaddy cert for the Remote Web Workplace.  Why?  Because then you won't have to worry about getting the cert package on the remote systems, you get rid of the pink SSL warning in IE7 and IE8, your phones will sync easier with the server.

You can buy the cheap godaddy $20 cert as long as you put the autodiscover records up in the DNS.  If your DNS holder can't do that, maybe you need to consider another DNS provider?

http://msmvps.com/blogs/bradley/archive/2008/12/18/autodiscover-and-dns.aspx  Read that post
http://www.thirdtier.net/2009/02/setting-up-an-external-autodiscover-record-for-sbs-2008/ and that one
http://sbs.seandaniel.com/2009/02/installing-godaddy-standard-ssl.html and that one

I'm going to control the DNS myself.

If you want something OTHER than remote.domain.com as your remote access portal, click on Advanced and choose exactly what you want

You then choose whatever you like

You can't use Office Live ...but in my case I won't use that integration.

It is absolutely positively normal that with a REAL proper firewall (in my case www.Calyptix.com ) that it cannot use uPnP to set ports 25, 80, 443 and 987.  You don't need to open up port 80, you can merely open up 443.  Port 25 can also be better protected using mail hygiene providers where you set the Calyptix to only allow port 25 to be accessed by your mail hygiene provider (in my case www.exchangedefender.com who is pulling off and cleaning out all those lovely Facebook phishing scam emails that are overwhelming email boxes everywhere).  This means that I don't get those drive by port scans/password attempts as well.

If you want to host multiple emails on the server follow this blog post:

http://blogs.technet.com/sbs/archive/2008/10/13/hosting-multiple-e-mail-domains-on-sbs-2008.aspx

 

by bradley | with no comments
Filed under:
Migration Step Fifteen: Network configuration
Sun, Nov 8 2009 22:19

Configure the network

We're on to the next step....

When you have a GOOD firewall (that is one that doesn't have the uPnP enabled and you have to manually set it up.

Enter the router IP and then the server IP.

It will run the wizard and complete successfully.

 

 

 

by bradley | with no comments
Filed under:
Migration Step Fourteen: It's moving time!
Sun, Nov 8 2009 20:48

http://msmvps.com/blogs/bradley/archive/2009/11/07/just-a-reminder-of-all-of-the-key-migration-resources.aspx

    Migrate settings and data to the new server. Follow the instructions on pages 28 through 70 in the Microsoft migration document.
    Change where to store data on the Destination Server
    Configure the network
    Configure the Internet address and leave IPv6 enabled. If you disable it improperly or incorrectly, you will see numerous network issues, including Exchange failing to start. For more information see this blog post on the Microsoft Web site (http://blogs.technet.com/sbs/archive/2008/10/24/issues-after-disabling-ipv6-on-your-nic-on-sbs-2008.aspx ).
    Migrate network settings
    Migrate certificates
    Migrate Exchange mailboxes and settings
    Remove Internet connectors
    Migrate POP3 connectors
    Move Exchange Server public folders
    Move the Offline Address Book
    Move mailboxes
    Enable circular logging on storage groups
    Remove legacy Group Policy objects and logon settings
    Remove old logon scripts
    Remove old Group Policy objects
    Migrate users' shared data
    Configure a new shared volume on the Destination Server
    Copy users' shared folders to the Destination Server
    Copy additional shared folders to the Destination Server    
    Migrate the internal Web site
    Steps performed on the Source Server
    Steps performed on the Destination Server
    Migrate fax data
    Migrate user accounts and groups
    Enable folder redirection on the Destination Server
    Migrate SQL Server data
    Install a new instance of SQL Server 2008
    Migrate a SharePoint instance of SQL Server 2000 Standard
    Migrate a SharePoint instance of SQL Server 2005 Workgroup
    Migrate a SQL Server 2000 instance or SQL Server 2005 instance to SQL Server 2008
    Specify SQL Server collation settings
    Migrate Terminal Service licensing server

Okay that's not all of step 14.... so let's take this a bit at a time.

First off I'm going to add a drive to the newly built SBS 2008 so that we have a place for the Data drive.

Mikael Nystrom (www.thirdtier.net ) said the other day that when you add another drive, add additional drives via SCSI. Make the first drive an IDE drive.  It allows you to hot add harddrives without rebooting the box.

You will have to go into computer management and convert the drive.

Also don't forget on the new server, just because the mouse and everything works, don't forget to install the HyperV integration:

Networking driver on 'SBS 2008' loaded but has a different version from the server. Server version 3.2 Client version 0.2 (Virtual machine ID ED1469AD-4443-436F-9BF6-E695AF0AA786). The device will work, but this is an unsupported configuration. This means that technical support will not be provided until this problem is resolved. To fix this problem, upgrade the integration services. To upgrade, connect to the virtual machine and select Insert Integration Services Setup Disk from the Action menu.

In the event logs you can see that indicating that I have not.

Click OK and then it will want to boot the box.

Now on to moving the data from the old server to the new server:

On page 28 of the migration doc it talks about folder redirection.  In my firm we don't do folder redirection because we train folks not to store stuff on the local harddrives

Configure folder redirection on the Destination Server

When the Windows SBS 2008 installation finishes, the users’ folder redirection data on the Destination Server is on drive C. If you use folder redirection on the Source Server or if you plan to start using folder redirection when you finish migrating to Windows SBS 2008, you should move the users’ redirected data to another partition or hard disk drive. For instructions, see Change where to store data on the Destination Server.

After you move the users’ redirected data, you should edit the Folder Redirection Group Policy object on the Destination Server to change the location of the users’ redirected data from the Source Server to the Destination Server. After you finish migrating user accounts and groups, you will enable folder redirection on the Destination Server.

 On a production server you'll want to move the WSUS, the Data and the Exchange to other drives.  Depending on how you set up servers, you may want multiple drives for this purpose. I'm going to be very simple for purposes of the test migration and not make multiple drives.  On a real production server you'll want to slice and dice depending on your needs and storage space.

To change where to store data on the Destination Server

1.   On the Migration Wizard Home page, click Change where to store data on the Destination Server, and then click Next.

2.   If you do not want to change where to store data at this time, click Skip this task, and then click Next.

3.   If you want to change where to store data, click each data type to start the Move Data Folders Wizard, and then follow the instructions in the wizard.

4.   When you finish changing where to store data, return to the Migration Wizard, click Task Complete, and then click Next.

We're going to move the data locations....

So I'll choose to move all of this data over

Before we do this, we should backup the server

As a FYI if you start to move WSUS soon after ABC's Brothers and Sisters is on at 10:00 p.m., that's also the same time that the WSUS starts it's sync schedule.

So if you try to move the data location, it will say "oops sorry, I'm not going to let you"

Okay I'm impatient tonight so I stopped the WSUS sync and moved the WSUS data location.

So now we tick off "task completed" and go on to the next one

by bradley | with no comments
Filed under:
Odds and Ends
Sun, Nov 8 2009 20:13

Just a quick note, I don't necessarily recommend an 80 gig server here.. I just did a minimum install for purposes of the migration test.  IMHO 60 gigs is too small as the WinSXS file grows.  And I plan to move the Exchange, WSUS and data to another driver. 

I don't consider 60 gigs a good partition and I certainly don't consider 4 gigs of ram enough for SBS 2008.

by bradley | with no comments
Filed under:
Access 2010 and Sharepoint discussion part 2
Sun, Nov 8 2009 20:56

In this blog entry Access 2010 and Sharepoint discussion I mentioned an interesting discussion   A second thread titled Access 2010 with Sharepoint 2010 was also started with a lot of additional interesting discussion.   Keep checking back on these threads.  David Fenton, as expected, is asking some tough questions as are others.  I expect this discussion to go on for a while. 

Note that you might want to click on the Options button on the right hand side of the grey bar and choose to view the thread as a tree.

PASS Regional Committee for the Central and Southern America Region
Sun, Nov 8 2009 21:26

Olá Amigos,

Boa noite! Como estão?

Estou entrando em contato com vocês para informar que fui convidado por Greg Low e Blythe Morrow, da PASS (Professional Association For SQL Server), a integrar o PASS Regional Committee for the Central and Southern America Region, com o objetivo de promover novos capítulos, assistir e auxiliar eventos, encontros e outras atividades.

Tenho grandes idéias para isso e sei que posso contar com o apoio de todos vocês, inclusive para divulgar (se possível) essa notícias e assim servir de apoio para grupos e comunidades que queiram participar. Em breve, estarei falando mais sobre esse novo projeto.

Você pode ver mais em: http://www.sqlpass.org/PASSChapters/CentralandSouthernAmerica.aspx

Agradeço a vários amigos que tenho conquistado nessa jornada, e espero com isso poder ajudar mais ainda a nossos grupos e nossas Comunidades.

Muito obrigado a cada um dos maigos que conquistei e a todos os membos dos Grupos MS-InfraRio, MSRio.NET, Code4all, WITS Brasil e MS-InfraES.

The search for drivers..
Sun, Nov 8 2009 17:52

I watched a video of a Windows House Party. The organisers put on a great show, and I was impressed, especially with the six year old PC which is running Windows 7 well, presumably the 32-bit variant.

I have a six year old Intel G845WN. Lets take a look at what I would have to do to get a usable Windows 7 onto it..

It presently has 640mb RAM spread across all three slots, so that would need to go and be replaced by three 512mb modules if I am to get any performance at all. Cost $150. Video is an ATI Radeon 9250 c/w 128mb. This is a keeper as long as I don’t want Aero anything..

Hard drive is a 40gb Maxtor. Hmmmm. No, it has to go too, maybe replace it with a WD 80gb IDE.. Cost $60. The modem is an Intel 536EP, and onboard sound is courtesy of Intel. I am fairly sure that both would work.

So, a quick total.. cdn$210 for parts plus $119 for Windows 7 Home Premium = $329.00.

Ouch!! At the end of the day, I will have a very expensive six year old machine sporting memory that will be useless in the event that the mainboard falls over and dies, and it still will not perform all that well. Certainly not $329 well. The picture would be worse if the machine had a 3rd party sound card installed that I didn’t want to lose, or a webcam, printer, scanner.. 

Manufacturer websites are again taking hits as XP users start the search for Windows 7 drivers. I have done a bit of it while helping computer users in the Microsoft Answers forum, and it is definitely a case of ‘déjà vu’. I remember doing the same thing two years ago for XP users who wanted to upgrade to Vista. Very little has changed.

The problem is that XP users have been told that Windows 7 will run on their machines..

by Mike Hall | with no comments
Filed under: , ,
How to be a Problem Solver
Sun, Nov 8 2009 14:53

How to be a Problem Solver   Or how to deal with an angry customer.  In particular note the over communicate concept even if it’s nothing more than we’re still working on it and here’s what we’ve done so far.

by Tony | with no comments
Un guide complet sur le déploiement de Windows 7 en téléchargement
Sun, Nov 8 2009 21:53

Je n’avais pas vu l’info (merci William !!) Microsoft vient de publier un guide dé déploiement très complet.

Brief Description

Deploying Windows® 7 Essential Guidance from the Windows 7 Resource Kit and TechNet Magazine
Download the New eBook: Deploying Windows® 7 Essential Guidance from the Windows 7 Resource Kit and Microsoft® TechNet Magazine. Looking for guidance specific to Windows 7 deployment? Check out what the industry's leading experts have to say in this free Microsoft Press eBook with selected chapters from the Windows 7 Resource Kit on Deployment Platforms, Planning, Testing Application Compatibil

image

Voici le sommaire (332 pages) :

Chapter 3 Deployment Platform
Chapter 4 Planning Deployment
Chapter 5 Testing Application Compatability
Chapter 6 Developing Disk Images
Chapter 7 Migrating User State Data
Chapter 8 Deploying Applications
Chapter 9 Preparing Windows PE
Chapter 10 Confi guring Windows Deployment Services
Chapter 11 Using Volume Activation
Chapter 12 Deploying with Microsoft Deployment Toolkit

 

Pour le télécharger :

http://www.microsoft.com/downloads/details.aspx?FamilyID=EE2A1D38-88A9-43B3-95BC-7E962F0B6030&displaylang=en

 

Laurent Gébeau

Source :

http://danstoncloud.com/blogs/william/archive/2009/11/08/document-pdf-de-332-pages-sur-le-d-233-ploiement-de-windows-7.aspx

First iPhone worm discovered - ikee changes wallpaper to Rick Astley photo
Sun, Nov 8 2009 20:52

Apple iPhone owners in Australia have reported that their smartphones have been infected by a worm that has changed their wallpaper to an image of 1980s pop crooner Rick Astley.

The worm, which could have spread to other countries although we have no confirmed reports outside Australia, is capable of breaking into jailbroken iPhones if their owners have not changed the default password after installing SSH. Once in place, the worm appears to attempt to find other iPhones on the mobile phone network that are similarly vulnerable, and installs itself again

On each installation, the worm - written by a hacker calling themselves "ikex" - changes the lock background wallpaper to an image of Rick Astley with the message:

ikee is never going to give you up

What's clear is that if you have jailbroken your iPhone or iPod Touch, and installed SSH, then you must always change your root user password to something different than the default, "alpine". In fact, it would be a good idea if you didn't use a dictionary word at all.

The worm will not affect users who have not jailbroken their iPhones or who have not installed SSH.

http://www.sophos.com/blogs/gc/g/2009/11/08/iphone-worm-discovered-wallpaper-rick-astley-photo/

by donna | with no comments
More Posts Next page »