mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
6.1 KiB
195 lines
6.1 KiB
var _bFriendlyUIEnabled = false;
|
|
var _bMultipleUsersEnabled = false;
|
|
|
|
function PageInit()
|
|
{
|
|
top.window.PopulateLeftPane(idRelatedTaskContent.innerHTML, idLearnAboutContent.innerHTML);
|
|
|
|
var oWShell = top.window.GetWShell();
|
|
var strAbort = null;
|
|
|
|
//
|
|
// NTRAID#NTBUG9-298329-2001/03/30-jeffreys
|
|
//
|
|
// If the Netware client is installed, disable the friendly UI.
|
|
//
|
|
try
|
|
{
|
|
// This throws an error if the key or value doesn't exist
|
|
var strNetProviders = oWShell.RegRead("HKLM\\SYSTEM\\CurrentControlSet\\Control\\NetworkProvider\\Order\\ProviderOrder");
|
|
|
|
if (-1 != strNetProviders.indexOf("NWCWorkstation") || -1 != strNetProviders.indexOf("NetwareWorkstation"))
|
|
{
|
|
// The Netware client is installed
|
|
strAbort = top.window.L_NetWareClient_ErrorMessage;
|
|
}
|
|
}
|
|
catch (error)
|
|
{
|
|
// No provider info, so assume no Netware; proceed normally
|
|
}
|
|
|
|
if (null == strAbort)
|
|
{
|
|
//
|
|
// NTRAID#NTBUG9-307739-2001/03/14-jeffreys
|
|
//
|
|
// Some apps install their own Gina, which prevents the friendly
|
|
// logon UI and FUS from running.
|
|
//
|
|
try
|
|
{
|
|
// This throws an error if the key or value doesn't exist
|
|
var szGinaDLL = oWShell.RegRead("HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon\\GinaDLL");
|
|
|
|
//
|
|
// If that didn't throw an error, then a GinaDLL value exists.
|
|
// Doesn't matter what it is; disable everything and tell the user.
|
|
//
|
|
// See CSystemSettings::IsMicrosoftGINA in shell\ext\gina\systemsettings.cpp.
|
|
//
|
|
strAbort = top.window.L_NonStandardGina_ErrorMessage.replace(/%1/g, szGinaDLL);
|
|
}
|
|
catch (error)
|
|
{
|
|
// GinaDLL value is not set; proceed normally
|
|
}
|
|
}
|
|
|
|
// If necessary, disable the page and quit.
|
|
if (null != strAbort)
|
|
{
|
|
idWelcomeGroup.checked = false;
|
|
idWelcomeGroup.disabled = true;
|
|
idShutdown.checked = false;
|
|
idShutdownGroup.disabled = true;
|
|
idOK.disabled = true;
|
|
alert(strAbort);
|
|
return;
|
|
}
|
|
|
|
var oLocalMachine = top.window.GetLocalMachine();
|
|
_bFriendlyUIEnabled = oLocalMachine.isFriendlyUIEnabled;
|
|
_bMultipleUsersEnabled = oLocalMachine.isMultipleUsersEnabled;
|
|
|
|
idWelcome.checked = _bFriendlyUIEnabled;
|
|
idShutdown.checked = _bMultipleUsersEnabled;
|
|
|
|
idWelcome.onclick = OnClickWelcome;
|
|
OnClickWelcome();
|
|
|
|
if (!_bMultipleUsersEnabled && oLocalMachine.isOfflineFilesEnabled && confirm(top.window.L_CSCNoFUS_ErrorMessage))
|
|
{
|
|
top.window.GetShell().ShellExecute('rundll32.exe','cscui.dll,CSCOptions_RunDLL '+top.window.document.title);
|
|
top.window.g_Navigator.back();
|
|
}
|
|
|
|
idWelcome.focus();
|
|
}
|
|
|
|
function OnClickWelcome()
|
|
{
|
|
// only allow Fast User Switching if Friendly Logon is ON
|
|
// and we're not running on ia64 and Offline Files is disabled (if FUS is already off).
|
|
|
|
if (idWelcome.checked && (_bMultipleUsersEnabled || !top.window.GetLocalMachine().isOfflineFilesEnabled))
|
|
{
|
|
idShutdown.checked = _bMultipleUsersEnabled;
|
|
idShutdownGroup.disabled = false;
|
|
}
|
|
else
|
|
{
|
|
idShutdown.checked = false;
|
|
idShutdownGroup.disabled = true;
|
|
}
|
|
}
|
|
|
|
function ApplyAdvChanges()
|
|
{
|
|
var nErr = 0;
|
|
var szMsg = null;
|
|
|
|
if (idShutdown.checked != _bMultipleUsersEnabled)
|
|
{
|
|
try
|
|
{
|
|
top.window.GetLocalMachine().isMultipleUsersEnabled = idShutdown.checked;
|
|
_bMultipleUsersEnabled = idShutdown.checked;
|
|
}
|
|
catch (error)
|
|
{
|
|
nErr = (error.number & 0x7fffffff);
|
|
szMsg = top.window.L_MultiUser_ErrorMessage;
|
|
|
|
// The interesting errors occur when disabling FUS
|
|
if (!idShutdown.checked)
|
|
{
|
|
switch (nErr)
|
|
{
|
|
case 0xA0046: // CTL_E_PERMISSIONDENIED
|
|
// We get Access Denied when we try to disable multiple
|
|
// user mode with multiple users logged on.
|
|
szMsg = top.window.L_MultiUserMulti_ErrorMessage;
|
|
break;
|
|
|
|
case 0x71B7E: // ERROR_CTX_NOT_CONSOLE
|
|
// Can't disable FUS remotely.
|
|
szMsg = top.window.L_MultiUserRemote_ErrorMessage;
|
|
break;
|
|
|
|
case 0x70032: // ERROR_NOT_SUPPORTED
|
|
// Can't disable FUS from the console when remote
|
|
// connections are enabled and we're not in session 0.
|
|
szMsg = top.window.L_MultiUserSession0_ErrorMessage;
|
|
break;
|
|
}
|
|
}
|
|
|
|
idShutdown.checked = _bMultipleUsersEnabled;
|
|
}
|
|
}
|
|
|
|
if (idWelcome.checked != _bFriendlyUIEnabled)
|
|
{
|
|
if (0 == nErr)
|
|
{
|
|
try
|
|
{
|
|
top.window.GetLocalMachine().isFriendlyUIEnabled = idWelcome.checked;
|
|
_bFriendlyUIEnabled = idWelcome.checked;
|
|
}
|
|
catch (error)
|
|
{
|
|
nErr = (error.number & 0x7fffffff);
|
|
szMsg = top.window.L_FriendlyUI_ErrorMessage;
|
|
|
|
if (_bMultipleUsersEnabled && !_bFriendlyUIEnabled)
|
|
{
|
|
// We evidently enabled FUS above but failed to enable
|
|
// Friendly UI. FUS can't be on without Friendly UI,
|
|
// so turn it off again.
|
|
try
|
|
{
|
|
top.window.GetLocalMachine().isMultipleUsersEnabled = false;
|
|
_bMultipleUsersEnabled = false;
|
|
}
|
|
catch (error)
|
|
{
|
|
// give up
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (0 != nErr)
|
|
{
|
|
idWelcome.checked = _bFriendlyUIEnabled;
|
|
OnClickWelcome();
|
|
}
|
|
}
|
|
|
|
if (0 == nErr)
|
|
top.window.g_Navigator.navigate("mainpage2.htm", true);
|
|
else if (szMsg)
|
|
alert(szMsg);
|
|
}
|