Отчет о системах с установками Office 32/64 бит в домене

Вопрос или проблема

Наш домен имеет сервер активации KMS и ряд виртуальных рабочих столов, обычных рабочих столов и ноутбуков, на которых установлены Office 2010 или 2013. Большинство из них должны быть 32-битными, но я знаю, что некоторые из них 64-битные. Есть ли способ (с использованием системы центра, PowerShell, Active Directory, ???) получить читаемый отчет о том, на каких компьютерах установлена какая версия Office?

Я использовал типичный монитор приложений, но он выдал огромный список компонентов, связанных с Office, включая вещи, которые выглядят как модули для 64-битных компонентов Office, даже если на этих машинах установлены 32-битные Office.

Спасибо за любую помощь!

Я использую Get-InstalledSoftware_32_And_64.ps1. Это невероятно полезно и может сделать то, что вам нужно. Вы даже можете настроить его так, чтобы он добавлял расширенные атрибуты к объектам компьютеров с небольшим количеством дополнительного сценария, а затем использовать эти расширения с другими компонентами AD. Но это выходит за рамки данного ответа.

https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Installed-70d0c0f4

Вот простой способ получить ваши списки.
Примечание: Это зависит от того, что Get-InstalledSoftware_32_And_64.ps1 настроен с Import-Module перед выполнением следующего скрипта.

# Импортировать модуль AD
Import-Module ActiveDirectory
# Настроить массив имен компьютеров
$computers = Get-ADComputer -Filter 'ObjectClass -eq "Computer"' | Select -Expand DNSHostName
# цикл foreach - выполняем действия...
foreach ( $computer in $computers ) {
    $output = Get-SoftwareList -Computername $computer | Select-String "Microsoft Office 2013"
    if ( $output -match "64" ) {
        echo "$computer >> Office2013-64_Installs.txt"
    }
    elseif ( $output -match "32" ) {
        echo "$computer >> Office2013-32_Installs.txt"
    }
    else {
        $recheck = Get-SoftwareList -Computername $computer | Select-String "Microsoft Office"
        echo "$Computer :: $recheck >> Office2013_Check_ErrorLog.txt"
    }
}

Журнал ошибок будет перечислять компьютеры, на которых либо не установлен Office 2013, либо установлена неправильная версия. Вы можете сделать гораздо больше валидации, но это поможет вам начать.

Ответ или решение

Для администраторов ИТ в доменах, работающих с Microsoft Office, задача сбора информации о версиях установленных приложений может стать не просто важной, но и критически необходимой для поддержания нормального функционирования офисных процессов. В данном ответе мы рассмотрим, как провести аудит установки 32-битного и 64-битного Microsoft Office с использованием PowerShell и Active Directory.

Понимание проблемы

В вашей инфраструктуре домена имеется KMS-сервер активации и различные устройства, на которых установлены версии Office 2010 и 2013. При этом вы подозреваете, что некоторые компьютеры используют 64-битную версию Office, в то время как большинство должно работать с 32-битной. Эта ситуация может усложнять совместимость приложений и требует эффективного способа учета всех установленных вариантов.

Решение через PowerShell

Существует скрипт Get-InstalledSoftware_32_And_64.ps1, который позволяет получить актуальную информацию о версиях Office на компьютерах в вашей сети. Вот пример того, как можно использовать этот скрипт вместе с другими встроенными инструментами PowerShell для создания отчета.

Подготовка к использованию скрипта

Во-первых, вам нужно убедиться, что скрипт загружен и доступен для использования. Предполагается, что вы уже сохранили Get-InstalledSoftware_32_And_64.ps1 и разместили его в доступном месте. Подключите модуль Active Directory:

Import-Module ActiveDirectory

Сбор информации об установленных версиях Office

Следующий шаг заключается в создании массива с именами компьютеров в сети и последующей проверке каждой машины на наличие нужных версий Office:

# Получаем список всех компьютеров в домене
$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty DNSHostName

# Создаем пустые файлы для вывода информации
"Office 2013 32-битные установки" | Out-File "Office2013-32_Installs.txt"
"Office 2013 64-битные установки" | Out-File "Office2013-64_Installs.txt"
"Ошибки проверки установки" | Out-File "Office2013_Check_ErrorLog.txt"

# Обходим каждый компьютер
foreach ($computer in $computers) {
    try {
        # Получаем список установленных программ
        $output = Get-SoftwareList -Computername $computer | Select-String "Microsoft Office"

        # Проверяем наличие версии 64-бит
        if ($output -match "64") {
            "$computer >> Office2013-64_Installs.txt" | Out-File -Append -FilePath "Office2013-64_Installs.txt"
        }
        # Проверяем наличие версии 32-бит
        elseif ($output -match "32") {
            "$computer >> Office2013-32_Installs.txt" | Out-File -Append -FilePath "Office2013-32_Installs.txt"
        }
        else {
            "$computer :: Никакой версии Office не установлено или неправильная версия >> Office2013_Check_ErrorLog.txt" | Out-File -Append -FilePath "Office2013_Check_ErrorLog.txt"
        }
    }
    catch {
        "$computer :: Ошибка при проверке >> Office2013_Check_ErrorLog.txt" | Out-File -Append -FilePath "Office2013_Check_ErrorLog.txt"
    }
}

Итого

Запустив приведенный выше скрипт, вы получите три файла:

  1. Office2013-32_Installs.txt – список компьютеров с 32-битной версией Office 2013.
  2. Office2013-64_Installs.txt – список компьютеров с 64-битной версией Office 2013.
  3. Office2013_Check_ErrorLog.txt – лог ошибок для компьютеров, на которыхOffice не установлен или возникают ошибки при проверке.

Заключение

С помощью данного подхода вы сможете с легкостью получить четкую картину о том, какие версии Microsoft Office установлены в вашей сети. Это не только позволит вам решать проблемы совместимости, но и упростит процесс управления лицензиями и обновлениями. Важно периодически проводить такие проверки, чтобы поддерживать стабильную работу вашего ИТ-окружения.

Оцените материал
Добавить комментарий

Капча загружается...