The GroupWise MMC plugin for Active Directory crashes with a "DirectoryNotFoundException" at the end of the configuration.
The GroupWise MMC plugin for Active Directory works with 2 Windows environment variables that are created during install / configuration process of the plugin.
One is called HOMEDRIVE and the other is HOMEPATH.
It was discovered that when the customer checked the values of the variables at a Dos window on the server , the following values showed :
The combination of the path formed by the values of HOMEDRIVE and HOMEPATH form the location where the file
"gwiseconfig.key" is created that the MMC plugin install / config needs. If the logged in user does not have permissions to this location, a crash occurs.
The customer manually just changed the values of both the HOMEDRIVE and HOMEPATH variables to a location they had full permissions, then the crash no longer occurred. The values were changed in the standard Windows Server configuration location for Environment Variables.
The crash was as a result of the user logged into the Windows 2012 Server, who was running the MMC plugin install / configuration did not have Windows permissions to root of the H:\ drive. The file that could not be created was H:/gwiseconfig.key, as noted in the Additional Information section of this document. This file contains an ID value that is generated in the file as a result of a potentially successful install / configuration.
The exception shows:
************** Exception Text **************
System.IO.DirectoryNotFoundException: Could not find a part of the path 'H:/gwiseconfig.key'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize,
FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath,
Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
at GwisePluginUtils.EncryptionUtils.encodeBase64(String text)
at GWisePluginConfig.PluginConfig.button1_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)