Şu senaryoyu inceleyin. Internet ınformation Services (IIS) 7.0 çalışan Windows Server 2008 tabanlı bir sunucunuz vardır. Windows Server 2008 tabanlı sunucu, Windows 2000 tabanlı bir etki alanının veya Windows Server 2003 tabanlı bir etki alanının etki alanı denetleyicisi olarak ayarlayın. Bu senaryoda yerleşik IIS hesaplarına IIS_IUSRS grubu gibi veya IUSR guest kullanıcı hesabını çözümlenemiyor. Yalnızca ham güvenlik tanımlayıcısı (SID) yerleşik IIS hesapların görebilirsiniz.
Not Windows Server 2008 tabanlı bir etki alanının etki alanı denetleyicisi olarak Windows Server 2008 tabanlı sunucu ayarlarsanız, bu sorun oluşmaz.
Bu sorun, önceki etki alanlarında, etki alanları Windows 2000 tabanlı ve Windows Server 2003 tabanlı etki alanlarını Windows Server 2008'in IIS 7.0 yerleşik hesaplar belirtimi yok nedeniyle oluşur. IIS 7.0 sunucusunun Windows 2000 tabanlı etki alanı denetleyicisine veya Windows Server 2003 tabanlı etki alanı denetleyicisi olarak ayarlandığında, Windows Server 2008 hesaplarını çözümlenemiyor.
Bu sorunu gidermek için <a0></a0>, aşağıdaki örnek komut dosyası'nı kullanın.
Not Bu komut dosyasını çalıştırdıktan sonra sunucuyu yeniden başlatmalısınız.
/*
SamUpgradeTask.js
(c) 2007, Microsoft Corp.
*/
// Check the version of the operating system. Stop the script if the version is earlier than 6.
if ( ! CheckOSVersion() )
{
WScript.Echo("ERROR: This script will only work on Longhorn Server or above.");
WScript.Quit(1);
}
// Retrieve the local computer's rootDSE LDAP object.
var localRootDse = null;
try
{
localRootDse = GetObject("LDAP://localhost/rootDSE");
}
catch(e)
{
WScript.Echo("There was an error attempting to retrieve the localhost RootDSE object.");
WScript.Echo("Perhaps this machine is not a Domain Controller on the network?");
WScript.Echo("ErrorCode: " + e.number);
WScript.Quit(1);
}
// Retrieve several rootDSE properties
var dnsHostName = localRootDse.Get("dnsHostName");
var dsServiceName = localRootDse.Get("dsServiceName");
var defaultNamingContext = localRootDse.Get("defaultNamingContext");
// Open the default naming context
var ncObj = GetObject("LDAP://" + defaultNamingContext);
// Get the "FSMO Role Owner"
var strfsmoNtdsa = ncObj.FsmoRoleOwner;
var fsmoNtdsaObj = GetObject("LDAP://" + strfsmoNtdsa);
// Get the parent object of "FSMO Role Owner"
var fsmoServerObj = GetObject(fsmoNtdsaObj.Parent);
// By using the Server Reference, retrieve the name of the PDC computer
var strFsmoComputer = fsmoServerObj.ServerReference;
var fsmoComputerObj = GetObject("LDAP://" + strFsmoComputer);
var pdcName = fsmoComputerObj.Get("name");
// Get the RootDSE object for the PDC
var pdcRootDse = GetObject("LDAP://" + pdcName + "/rootDSE");
// Check whether the PDC is a legacy domain or not.
var domainControllerFunctionality = pdcRootDse.Get("domainControllerFunctionality");
if ( domainControllerFunctionality > 2 )
{
WScript.Echo("Domain is already operating in a mode higher than Windows Server 2003 mode. Stopping script execution.");
WScript.Quit(0);
}
// Get the default naming context for the PDC
var pdcDefaultNamingContext = pdcRootDse.Get("defaultNamingContext");
// Retrieve the well known object from the PDC
var pdcSystem = GetObject("LDAP://" + pdcName + "/<WKGUID=AB1D30F3768811D1ADED00C04FD8D5CD," + pdcDefaultNamingContext + ">");
// Get the distinguished name for the well known object
var pdcDistinguishedName = pdcSystem.Get("distinguishedName");
// Check whether the task has already been run
var taskMarker = null;
try
{
taskMarker = GetObject("LDAP://" + pdcName + "/<WKGUID=6ACDD74F3F314ae396F62BBE6B2DB961,CN=Server," + pdcDistinguishedName + ">");
}
catch(e)
{
if ( e.number == -2147016656 ) // Check and see if error code is ERROR_DS_NO_SUCH_OBJECT
{
taskMarker = null;
}
else
{
WScript.Echo("Error attempting to retrieve well known object from PDC.");
WScript.Echo("Name: " + e.name + "\nDescription: " + e.description + "\nCode: " + e.number + "\nMessage: " + e.message);
WScript.Quit(1);
}
}
// If the well known object exists, the SAM upgrade is already running. Therefore, stop the script.
if ( taskMarker != null )
{
WScript.Echo("SAM upgrade task already being run. No work done.");
WScript.Quit(1);
}
// Get the Server container with that distinguished name
var serverObj = GetObject("LDAP://" + pdcName + "/CN=Server," + pdcDistinguishedName);
// Prepare a safe array (for example, VBArray) with one entry
var jsArray = new Array(1);
jsArray[0] = "B:32:6ACDD74F3F314ae396F62BBE6B2DB961:"+ dsServiceName;
var vbArray = JS2VBArray(jsArray);
try
{
// Append an entry to the "Other-Well-Known-Objects" attribute for the
// previous server object.
serverObj.PutEx(3, "otherWellKnownObjects", vbArray);
serverObj.SetInfo();
}
catch(e)
{
WScript.Echo("Unexpected error attempting to put the well known GUID.");
WScript.Echo("ErrorCode: " + e.number);
}
WScript.Echo("Running upgrade task.");
// Set the "runSamUpgradeTasks" attribute in the local rootDSE
localRootDse.Put("runSamUpgradeTasks", 1);
localRootDse.SetInfo();
// Remote the binary data from the previous well known object entry
serverObj.PutEx(4, "otherWellKnownObjects", vbArray);
serverObj.SetInfo();
// The upgrade is complete.
WScript.Echo("Done!");
function CheckOSVersion()
{
var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;
var objWMIService = GetObject("winmgmts:\\\\.\\root\\CIMV2");
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext()) {
var objItem = enumItems.item();
var fullVersion = objItem.Version;
var indexPoint = fullVersion.indexOf(".");
if ( indexPoint == -1 )
{
return false;
}
var majorVersion = fullVersion.substring(0, indexPoint);
return (majorVersion >= "6");
}
return false;
}
function JS2VBArray( objJSArray )
{
var dictionary = new ActiveXObject( "Scripting.Dictionary" );
for ( var i = 0; i < objJSArray.length; i++ )
{
dictionary.add( i, objJSArray[ i ] );
}
return dictionary.Items();
}
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:946139
(http://support.microsoft.com/kb/946139/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.