Skip to main content

system:huy32.sys

So my work machine just magically started rebooting recently, great fun. Big project + tight deadlines + all source code on my machine + random blue screens = me losing my mind in panic

Today I actually read the blue screen of death out of deperation, had an odd line in it: system:huy32.sys

After a few searches I found out this precious little file (which is well hidden thanks to the ":") is part of a trojen. YEAH!! Like I don't have enough to think about.
The current supplied anti-virus at work is "Office Scan" which I would have thought would pick it up. I think I know why it is not (virus definations aren't 100% fresh right now, or maybe it's just crap). So after a call to Nic-Nap (the trusty office admin) to get the admin password for the Office Scan anti-virus, an uninstall of Office Scan and an install of the 30 day trial of Nod32 and a reboot. Nod32 picked it up, deleted it and the blue screen hasn't returned.....yet ;)

UPDATE: See the followup for more information on the return of the BSOD

Worst product name (really this is even worse than powershell)

Ok, I thought PowerShell was bad, I take it all back. It's not that bad, atleast what it is called is what it promises (a powerful shell). So in powershell today I ran this: Get-WmiObject -query "SELECT NetConnectionStatus FROM Win32_NetworkAdapter"

The assumption is that PowerShell would connect to WMI (which it did) and return network connection status. It is all lies, LIES!!!!
I have no idea what it did return but it was not the connection status this layman wanted, it is just lots of:
__GENUS : 2
__CLASS : Win32_NetworkAdapter
__SUPERCLASS :
__DYNASTY :
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
NetConnectionStatus :

Follow this up with Get-WmiObject 'Win32_NetworkAdapter' which I assume will give me useful network adapter info, which it does give, but it leaves out a little bit of useful info... THE IP ADDRESS! (and the speed but thats a nice to have)

ServiceName : iBcT0201
MACAddress : 02:C0:EE:XX:XX:XX
AdapterType : Ethernet 802.3
DeviceID : 12
Name : iBurst Modem Type02-01
NetworkAddresses :
Speed :

I don't blame powershell for this crazyness, I blame WMI. It promises so much in it's arguments and gives you something completely else.

CCF with floating windows

CCF comes in pretty much any design you like, thanks to having the source code for the agent desktop available. One of the properties of the applications you add is a "Display Group" property which allows you to set where you want the application to go. If you leave it blank, then it defaults to the first CCF panel it finds. If you fill it in and it matches the name of an existing panel it will go on that panel (have a look at the out of box examples for Workflow, Current Session and Session Explorer). What is not documented anywhereUpdated: It is in the developer guide is you can also put in either "floating" or "floatingtool" which will cause the window not to be in the CCF SDI interface (i.e. on the tabs or on some other area) but in it's own pop-up window. The "floatingtool" option changes the type of pop-up form to a tool form (i.e. thin header). it is possible to push the boundry on this one further by putting in your own terms, and then modifing the "AddApplication" method of UIConfiguration.cs to handle those special terms. An idea I had here is that you could do something like have the window be stay on top, align to the right of the window and have it load a reporting services report with graphs on it. Nice mini-dashboard!

www.InformationWorker.co.za

I have been offered the great opportunity of having a blog on www.informationworker.co.za. IW, is a community site driven by Microsoft and a core group of Partners focused on Information Workers (thus the name of the site, in case you did not pick that up). As that is going to be more (completely) CRM focused, I won't publish much CRM stuff here, but I will continue to go on about all the other crazy stuff.

My blog their can be found at: http://www.informationworker.co.za/Blogs/robertm/default.aspx

(ooh btw IW runs on SharePoint 2007, which makes blogs and wiki's easy)

Worst product name (for developers)

Microsoft PowerShell may be the worst product name for developers. If you write scripts I'm not classing you as a developer, I am classing people who understand Assemblies, Namespaces and Generics as developers for this post.

Anyway if you are a developer it should be called .Net Object to Text Render (and if Motorola made it NOTR), since that is what it actually does, it converts .Net objects to text. Once you understand that concept it gets a lot more powerful than the whole "DIR", "COPY" on a blue background than it appears the first time.

So it understands strings so this is possible:
PS C:\Documents and Settings\rmaclean> 'sadev'+'.co.za'
sadev.co.za

It also understands ints so this is also possible:
PS C:\Documents and Settings\rmaclean> 67 * 34 + 9 - 22
2064

And since .Net understands how to translate int's to strings, this becomes possible:
PS C:\Documents and Settings\rmaclean> 'sadev'+'.co.za' + (67 * 34 + 9 - 223) + 999
sadev.co.za2064999

And since objects can have properties you can start with Get-ChildItem which is like DIR for the old school in the audience, then add | where-object { $_.CreationTime -gt "1/29/2007" } to get all items created since Jan 29th 2007. Example
Get-ChildItem | where-object { $_.CreationTime -gt "1/29/2007" }

Then add on | epcsv to export the results to a CSV file.

Pure madness I say, pure developer insanity :D

CCF Wikipedia Entry

There is an entry in Wikipedia for CCF :) It is unfortunately very light in content.

What does spur me to post about it is not the article itself, but the comments in the history:
"(cur) (last) 21:07, 25 September 2006 Jmcnamera (Talk | contribs) (This reads like an ad plus I can not find anything notable on the web about this except some vague marketing material at MS web site. I'm an MS booster but this doesn't look real.)"

The whole "it doesn't look real" is bad, and it is not the first time this has been brought up. Because so few people know of CCF and the website is tiny (compared to others like MSCRM or Dynamics GP, let alone someone like Office) it really does appear to be a vaporware or beta or some other product which does not exist yet.

Definately the CCF community needs to put more content up in public places, but Microsoft also needs to help drive this, even if it is just with a better website (which links to the forums would also help show real activity with the product).

Bug with CRM Outlook Client

Thanks to Greg Nichols for highlighting this the bug caused by a security update which is killing off MS Outlook with CRM installed. This is definately something we are seeing in production enviroments everywhere at the moment.

Agent Desktop: Error: Failed to connect to the web server.

It appears that a few people have had the problem where everything works great in agent desktop, but not when selecting a contact to work with, as they get some thing like
The underlying connection was closed: The remote name could not be resolved.\n\nStack:\n at Microsoft.Ccf.Csr.Sessions.SetActiveSession(Guid sessionID)
at Microsoft.Ccf.Csr.Sessions.AddSession(String name, Int32 callID, Object customer)
at Microsoft.Ccf.Samples.Csr.AgentDesktop.Desktop.AddSession(CustomerRecord customer, CallClassProvider call)

and/or
Customer Care Framework 2005 - Agent Desktop: Error: Failed to connect to the web server. Please verify that you can connect to the web server.

Well it would appear from the outside that the SetActiveSession method (atleast in the .Net 1.1 QFE 3 version, and likely the earlier .Net 1.1 version) has the server hard coded (since this is one of the few assemblies you don't get the code for and reflector wasn't much help in finding out I can not state for sure).

If it is hard coded it is insanity and *hopefully* fixed in the .Net 2.0 release. But if you do hit this because your CCF server is not named CCFIIS the simple fix is either add an entry to the DNS server on your network to redirect to that or (if you can't due to security restrictions during development) add it to the hosts file in c:\Windows\System32\Drivers\Etc\

Once that is done, restart agent desktop and enjoy.

Update:Thanks to MattB on the CCF Forum for confirming it is hard coded and that a hotfix is available for 1.1 from PSS and 2.0 is already fixed :)

CCF Workflow and Workflow step addition fails with "Unable to update the requested information"

When in the CCF admin console you may get an "Unable to update the requested information" when trying to add a new workflow or workflow step (from here I will just say workflow but I mean both). This is because you can not add a workflow when no others exist. i.e. DON'T delete the demo ones until you create one of your own.

What is happening is the ID field in the table in the database is used in a relationship and thus can not be an identify field. So the admin tool does a check for the highest value and adds one to it and uses it as the new ID. When there is no items it fails.

If you need to manually add a workflow in to the database (instead of doing a redeploy) it is in dbo.ContactCenterAIF.WorkflowsMaster and for workflow steps it is in dbo.ContactCenterAIF.WorkflowStepsMaster

RegisterListener Exception

If you get an exception with the CCF agent desktop which involves "RegisterListener" then likely you got a little too confident in your deployment and didn't follow the deployment guide like for line. If you had you would have installed Microsoft WSE 2.0 SP3 Runtime.msi which is in the Others folder of the deployment on the desktop prior to trying.

So you are also aware, if this fails pretty much a ton of other items (menu's, status updates etc...) will also fail.