Windows 7 tabanlı bir bilgisayarda VAMT 2.0'daki bir listeyi açtığınızda "Aynı anahtara sahip öğe zaten eklenmiş" hatası

Makale çevirileri Makale çevirileri
Makale numarası: 2383895 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Belirtiler

Windows 7 tabanlı bir bilgisayarda Toplu Etkinleştirme Yönetimi Aracı (VAMT) 2.0'daki bir listeyi (.cil) açtığınızda aşağıdaki hata iletisini alabilirsiniz:

Aynı anahtara sahip öğe zaten eklenmiş.

Neden

Bu sorun, bilgisayarda çoklu ağ bağdaştırıcıları bulunuyorsa ve bu ağ bağdaştırıcıları aynı MAC adresine sahipse oluşabilir. Örneğin, sanal bir makine için iki ağ bağdaştırıcınız varsa ve bu ağ bağdaştırıcılarını aynı MAC adresine sahip olacak şekilde yapılandırdıysanız bu sorun oluşabilir.

Bu durumda .cil dosyasını açtığınızda, aşağıdakine benzer bir girdi görürsünüz:

NetworkName="contoso.com" Id="e3f3f83c-f050-4d81-9117-xx">
<MacAddresses>
<MacAddress>00:11:11:CF:FC:xx</MacAddress>
<MacAddress>00:11:11:CF:FC:xx</MacAddress>
</MacAddresses>

Çözüm

Yinelenen girdileri .CIL dosyasından sizin adınıza silmemizi isterseniz, "Benim adıma düzelt" bölümüne gidin. Yinelenen girdileri .CIL dosyasından kendiniz silmeyi tercih ediyorsanız, "Kendim düzeltmek istiyorum" bölümüne gidin.

Benim adıma düzelt



Bu sorunu otomatik olarak düzeltmek için Fix it düğmesini veya bağlantısını tıklatın. Ardından, Dosya İndirme iletişim kutusunda Çalıştır'ı tıklatın ve Fix it sihirbazındaki adımları uygulayın.


Bu sorunu düzelt
Microsoft Fix it 50785


Notlar
  • Lütfen yinelenen girdilerini silmek istediğiniz .CIL dosyasını seçin.
  • Fix it çözümü, VAMT (Toplu Etkinleştirme Yönetimi Aracı) 2.0 varsayılan yolda yüklü değilse çalışmaz.
  • Bu sihirbaz yalnızca İngilizce olabilir. Ancak otomatik düzeltme, Windows'un diğer dil sürümleri için de çalışmaktadır. 
  • Sorun olan bilgisayarda değilseniz, Fix it çözümünü bir flash sürücüye veya CD'ye kaydedin ve sonra sorunun yaşandığı bilgisayarda çalıştırın.

Ardından "Bu işlem sorunu düzeltti mi?" bölümüne geçin.



Kendim düzeltmek istiyorum

Bu soruna geçici bir çözüm bulmak için yinelenen girdileri .CIL'den el ile silin veya bu işlemi otomatikleştirmek üzere

otomatikleştirilecek bir Powershell komut dosyası oluşturmak için aşağıdaki kaynak kodunu kullanın.
param($inputFilePath, $vamtDirPath)

$cilFilePath = Resolve-Path $inputFilePath;
if (!$cilFilePath)
{
Write-Error "Expected input file name of target CIL";
exit 1;
}

if ($vamtDirPath)
{
$vamtDirPath = Resolve-Path $vamtDirPath;
}
else
{
$prograPath = [environment]::GetEnvironmentVariable("ProgramFiles(x86)");

if (!$prograPath -or $prograPath -eq "")
{
$prograPath = [environment]::GetEnvironmentVariable("ProgramFiles");
}

$vamtDirPath = $prograPath + "\VAMT 2.0"
}

try
{
$assembly = [System.Reflection.Assembly]::LoadFile($vamtDirPath + "\Vamtrt.dll");
}
catch
{
Write-Error "VAMT derlemesi yüklenmeye çalışılırken hata. VAMT varsayılan dizine yüklenmiyorsa VAMT yüklemeniz için doğru bir yol belirtin.";
exit 1;
}

$fileSerializer = new-object Microsoft.SoftwareLicensing.Vamt.FileSerializer($cilFilePath);

$softwareLicensingData = $fileSerializer.Deserialize();

for ($i = 0; $i -lt $softwareLicensingData.Machines.Length; $i++)
{
$machine = $softwareLicensingData.Machines[$i];

if ($machine.MacAddresses.Count -gt 0)
{
$distinctMacAddrs = new-object System.Collections.ObjectModel.Collection[string];

foreach ($mac in $machine.MacAddresses)
{
if (!$distinctMacAddrs.Contains($mac))
{
$distinctMacAddrs.Add($mac);
}
}

$machine.MacAddresses.Clear();

foreach ($distinctMac in $distinctMacAddrs)
{
$machine.MacAddresses.Add($distinctMac);
}
}
}

$fileSerializer.Serialize($softwareLicensingData);




Daha sonra, bir Windows 7 bilgisayarında şu adımları uygulayın:
  1. Kaydedilmiş .CIL dosyanızı c:\script yoluna kopyalayın. Örneğin, c:\script\saved.cil
  2. İlgili kaynak kodunu bu KB makalesinden panoya kopyalayın
  3. Başlat'ı, Tüm Programlar'ı, Donatılar'ı, Windows Powershell'i ve "Windows powershell ise"yi tıklatın
  4. Windows PowerShell'de Untitled1.ps1 penceresinin içini tıklatın
  5. Bu makaledeki komut dosyasına ait içeriği yapıştırın
  6. Dosya'yı tıklatın ve c:\script\ScrubCil.ps1 şeklinde farklı kaydedin
  7. Başlat'ı, Tüm Programlar'ı, Donatılar'ı, Windows Powershell'i tıklatın ve "Windows powershell"i sağ tıklatıp "Yönetici Olarak Çalıştır"ı seçin
  8. Powershell istemine aşağıdaki komutları yazın
    cd \script
    set-executionpolicy unrestricted
    .\ScrubCil.ps1 saved.cil


Bu işlem sorunu düzeltti mi?

  • Sorunun giderilip giderilmediğini denetleyin. Sorun düzeltilmişse bu bölümle işiniz bitti demektir. Sorun düzeltilmemişse, destek hizmetlerine başvurabilirsiniz.
  • Görüşleriniz bizim için önemlidir. Görüşünüzü veya bu çözümle ilgili sorunları bildirmek için, "Benim adıma düzelt" web günlüğüne bir yorum yazın veya bize bir e-posta gönderin.

Özellikler

Makale numarası: 2383895 - Last Review: 20 Aralık 2011 Salı - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Windows 7 Enterprise
Anahtar Kelimeler: 
kbfixme kbmsifixme KB2383895

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com