Numer ID artykułu: 2383895 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Symptomy

Po otwarciu listy (.cil) w woluminie aktywacji zarządzania narzędzie (VAMT) 2.0 na komputerze z systemem Windows 7 może pojawić się następujący komunikat o błędzie:

Element o tym samym kluczu został już dodany.

Przyczyna

Ten problem może wystąpić, jeśli w komputerze jest wiele kart sieciowych i kart sieci te mają ten sam adres MAC. Na przykład ten problem może wystąpić, jeśli masz dwie karty sieciowe dla maszyny wirtualnej i skonfigurować te karty sieciowe mają ten sam adres MAC.

Po otwarciu pliku .cil w takiej sytuacji można zauważyć wpis podobny do następującego:

Identyfikator NetworkName="contoso.com" = "e3f3f83c-f050-4 d 81-9117-xx" >
<macaddresses></macaddresses>
<macaddress>00:11:11:CF:FC:xx</macaddress>
<macaddress>00:11:11:CF:FC:xx</macaddress>

Rozwiązanie

Aby obejść ten problem, należy ręcznie usunąć zduplikowane wpisy z.CIL lub aby zautomatyzować ten proces, należy użyć następującego kodu źródłowego do utworzenia

Skryptu PowerShell do automatyzacji.
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 "Error while attempting to load VAMT assembly. Provide the correct path to your VAMT installation if VAMT is not installed to the default directory.";
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);




Następnie wykonaj następujące kroki na komputerze z systemem Windows 7:
  1. Skopiować swoje zapisane.CIL pliku c:\script. Na przykład c:\script\saved.cil
  2. Skopiuj kod źródła zawarte z tego artykułu KB do Schowka
  3. Kliknij przycisk Start, wszystkie programy, Akcesoria, środowiska Windows Powershell, "Windows powershell ise"
  4. W systemie Windows PowerShell, kliknij w oknie Untitled1.ps1
  5. Wklej zawartość skryptu w tym artykule
  6. Kliknij plik, Zapisz jako, c:\script\ScrubCil.ps1
  7. Kliknij przycisk Start, wszystkie programy, Akcesoria, środowiska Windows Powershell, "Windows powershell"
  8. Wpisz następujące polecenia w wierszu powershell
    CD \script
    .\ScrubCil.ps1 saved.cil

Uwaga: Być może trzeba zmienić zestaw ExecutionPolicy do RemoteSigned w zależności od konfiguracji środowiska powershell


Właściwości

Numer ID artykułu: 2383895 - Ostatnia weryfikacja: 27 czerwca 2011 - Weryfikacja: 2.0
Informacje zawarte w tym artykule dotyczą:
Słowa kluczowe: 
kbmt KB2383895 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:2383895

Przekaż opinię

 

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