All of a sudden, stsadm has stopped working, crashing on all commands it is run with (even -help!)
e.g.
> stsadm.exe -help
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: path
at System.IO.DirectoryInfo..ctor(String path)
at Microsoft.SharePoint.StsAdmin.SPStsAdmin.EnsureExtendedOperationMap()
at Microsoft.SharePoint.StsAdmin.SPStsAdmin.EnsureFullOperationMap()
at Microsoft.SharePoint.StsAdmin.SPStsAdmin.LookupOperationName(String strOperation)
at Microsoft.SharePoint.StsAdmin.SPStsAdmin.Main(String[] args)
I'm baffled as to why. The only significant thing to change on the server between yesterday and today was the installation of the Citrix Web Interface for SharePoint webparts.
UPDATE: I also receive the following error when starting Central Administration from the Start Menu (Start -> Microsoft Office Server -> SharePoint 3.0 Central Administration)
A failure occurred when accessing the HKEY_LOCAL_MACHINE\Software\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS registry key. Repair this product by selecting it from the Add/Remove Programs menu.
If I access Central Administration via a browser and typing in the URL (e.g. http://intranet:8080), it works fine.
MORE UPDATE: I dug into stsadm a bit by disassembling with .NET Reflector. Turns out the line it is bailing on is:
FileInfo[] files = new DirectoryInfo(SPUtility.GetGenericSetupPath("config")).GetFiles("stsadmcommands.*.xml");
in the EnsureExtendedOperationMap()
method.
The reason being, I believe, because SPUtility.GetGenericSetupPath("config")
is returning null. I set up a test console app and sure enough, SPUtility.GetGenericSetupPath("config")
returns null. So something is obviously severely hosed somewhere.
I noticed when running the test console app that I get the following output:
A first chance exception of type 'System.DllNotFoundException' occurred in Microsoft.SharePoint.dll
which doesn't sound good. So I ask Visual Studio to break on all exceptions, even handled ones, and the exception is as follows:
System.DllNotFoundException: Unable to load DLL 'onetnative.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Note: I've started a separate question regarding this onetnative.dll problem...