«Элемент с тем же ключом уже был добавлен» ошибка при открытии списка в средство VAMT 2.0 на компьютере с Windows 7

Переводы статьи Переводы статьи
Код статьи: 2383895 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

При открытии списка (.cil) в управления многопользовательской активацией средства (VAMT) 2.0 на компьютере под управлением Windows 7 может появиться следующее сообщение об ошибке:

Элемент с таким ключом уже был добавлен.

Причина

Эта проблема может возникнуть, если в компьютере имеется несколько сетевых адаптеров и адаптеров таких сетей имеют один и тот же адрес MAC. Например эта проблема может возникнуть при наличии двух сетевых адаптеров для виртуальной машины, и настроить сетевые адаптеры для имеют один и тот же адрес MAC.

Если открыть файл CIL в данной ситуации отображается запись следующего вида:

NetworkName="contoso.com" Id = "e3f3f83c-f050-4 d 81-языку xx" >
<macaddresses></macaddresses>
<macaddress>00:11:11:CF:FC:xx</macaddress>
<macaddress>00:11:11:CF:FC:xx</macaddress>

Решение

Чтобы обойти эту проблему, вручную удалите повторяющиеся записи из.CIL или автоматизировать этот процесс, используйте следующий исходный код для создания

PowerShell сценарий автоматизации.
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);




Затем выполните следующие действия на компьютере Windows 7.
  1. Скопируйте ваши сохраненные.Файл CIL c:\script. Например, c:\script\saved.cil
  2. Копировать из этой статьи включен исходный код в буфер обмена
  3. Нажмите кнопку Пуск, все программы, стандартные, Windows Powershell, «Windows powershell ise»
  4. В Windows PowerShell, выберите в окне «Untitled1.ps1»
  5. Вставьте в содержимое сценария из этой статьи
  6. Щелкните файл, Сохранить как, c:\script\ScrubCil.ps1
  7. Нажмите кнопку Пуск, все программы, стандартные, Windows Powershell, «Windows powershell»
  8. Powershell в командной строке введите следующие команды
    \script компакт-диска
    .\ScrubCil.ps1 saved.cil

Примечание: Может потребоваться изменить Set-ExecutionPolicy RemoteSigned в зависимости от конфигурации powershell


Свойства

Код статьи: 2383895 - Последний отзыв: 30 мая 2011 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • Windows 7 Корпоративная
Ключевые слова: 
kbmt KB2383895 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:2383895

Отправить отзыв

 

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