Вопрос или проблема
У меня есть файл .PXF, который используется для строгой именования нескольких наших сборок .NET. VS2010/MSBUILD, похоже, ожидает, что он будет в личном контейнере для учетной записи пользователя, запускающего VS2010/MSBUILD. Это вполне удобно, когда работаешь в интерактивной пользовательской учетной записи, но при попытке автоматической сборки через TFS 2010 на агенте сборки учетная запись, используемая агентом сборки (по умолчанию), – это NT-AUTHORITY/NetworkService.
Поскольку я не могу войти в интерактивную сессию как NetworkService, я не могу просто установить PFX из оболочки интерактивной сессии.
Так может кто-нибудь сказать мне, как установить сертификат PFX в личное хранилище сертификатов учетной записи NetworkService?
Вам нужно открыть хранилище сертификатов Network Service и добавить его.
Чтобы открыть хранилище:
- Из меню Пуск | Выполнить:
mmc.exe
- Файл | Добавить/Удалить оснастки и выберите Сертификаты, затем Добавить.
- Когда вас спросят о типе учетной записи, выберите Учетную запись службы
- Выберите локальный/удаленный компьютер, в зависимости от необходимости
- Выберите любую службу, которая работает как Network Service (“Удалённый вызов процедур (RPC)” работает как Network Service по умолчанию)
- Завершите мастер и нажмите ОК, чтобы закрыть диалоговое окно добавления/удаления.
- В соответствующей категории щелкните правой кнопкой мыши и выберите добавить задачи, чтобы найти операции импорта и т.д.
Вышеупомянутая принятая ответ не сработала для меня. Но использование утилиты psexec от Microsoft/sysinternals решило мою проблему.
-
Скачайте psexec. https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
-
Откройте новую консоль с помощью psexec, которая будет работать как NETWORK SERVICE:
.\PsExec64.exe -i -u “nt authority\network service” powershell
-
Запустите mmc
-
Добавьте оснастку для сертификата и используйте сертификаты из “Моя учетная запись пользователя”
-
Сделайте всё, что хотите с личными сертификатами для этой учетной записи
Теперь все личные сертификаты должны быть видны для NETWORK SERVICE. Это каким-то образом не те же сертификаты, которые я получил, выполняя принятый ответ на службу, которая работала как NETWORK SERVICE.
Это было необходимо для меня, чтобы запустить инструмент mage.exe, который испытывал трудности с подписыванием кода под учетной записью NETWORK SERVICE, так как он использует только личные сертификаты.
Ответ или решение
Установка сертификата из файла PFX в личный контейнер NT-AUTHORITY\NetworkService
Установка сертификата из файлового формата PFX в личный контейнер учетной записи NT-AUTHORITY\NetworkService может быть сложной задачей, особенно если вы работаете с автоматизированными процессами сборки, такими как TFS 2010. Ниже приведена подробная инструкция по выполнению этой операции.
1. Подготовка
Перед началом убедитесь, что у вас есть доступ к файлу PFX, а также необходимые привилегии для выполнения операций с сертификатами. Возможно, вам понадобятся дополнительные утилиты, такие как PsExec, для выполнения команд от имени учетной записи NetworkService.
2. Установка утилиты PsExec
- Скачайте PsExec: Перейдите на официальный сайт Sysinternals и загрузите пакет PsTools.
- Распакуйте файл: Извлеките содержимое архива в удобное для вас место на диске.
3. Запуск PowerShell от имени NetworkService
Откройте командную строку и выполните следующую команду для запуска PowerShell в контексте учетной записи NetworkService:
.\PsExec64.exe -i -u "nt authority\network service" powershell
4. Использование MMC для работы с сертификатами
- Запустите MMC: В открывшемся окне PowerShell введите команду следующую команду для запуска Microsoft Management Console:
mmc
-
Добавьте оснастку сертификатов:
- В меню MMC выберите Файл → Добавить или удалить оснастку….
- Найдите Сертификаты и добавьте его.
- При выборе типа учетной записи выберите Учетная запись службы.
- Убедитесь, что вы выбираете Локальный компьютер, а затем выберите Службу, работающую под учетной записью NetworkService (например, Удаленный вызов процедур (RPC), который по умолчанию работает от этой учетной записи).
-
Импортируйте PFX файл:
- После добавления оснастки расширьте раздел Личные.
- Щелкните правой кнопкой в области Персональные сертификаты, выберите Все задачи и затем Импорт.
- Пройдите через мастер импорта, указав путь к вашему PFX файлу и введите пароль при необходимости.
5. Завершение работы
После успешного импорта сертификата вы можете закрыть MMC, сохранив изменения при запросе.
Заключение
Следуя данным шагам, вы сможете установить сертификат из PFX файла в личный контейнер учетной записи NT-AUTHORITY\NetworkService. Это необходимо для успешного выполнения операций, таких как подписание кода, когда вы используете инструменты, такие как mage.exe.
Если у вас возникнут дополнительные вопросы или потребуется помощь, пожалуйста, не стесняйтесь обращаться за поддержкой.