Мы создали репозиторий пакетов в стиле Nuget для наших локально работающих инструментов. Это делается с помощью общего файлового ресурса. Однако модуль, который я пытаюсь обновить, выдает ошибку о сигнатуре authenticode старой версии, не соответствующей издателю новой версии.
Сертификат подписи от нашей системы AD PKI и является доверенным, и он не изменяется / не изменялся никаким образом.
Очевидно, что использование -SkipPublisherCheck
является приемлемым решением, но это не является долгосрочным решением.
Я не получаю ошибок или предупреждений при первоначальной установке пакета. Только при выполнении обновления.
На подписывающем компьютере есть только 3 сертификата, и все три находятся в хранилище LocalMachine. У них нет одинаковых тем (это упоминается как возможная причина на некоторых сайтах, которые я нашел через Google)
Код
$cert = get-ChildItem Cert:\LocalMachine\My\5B3B66061B02EBF0986CF7969F36C6FB58060046
Set-AuthenticodeSignature "C:\Jenkins\workspace\Scripts - Master\MyModule_Src\dist\MyModule\MyModule.psm1" -Certificate $cert
#... Pester tests
Publish-Module -Name MyModule -Repository ORGPSGet -Verbose -force
Сообщение об ошибке
PackageManagement\Install-Package : Authenticode issuer 'System.Object[]' of the new module 'MyModule' with version
'4.0.4' is not matching with the authenticode issuer 'System.Object[]' of the previously-installed module 'MyModule'
with version '4.0.3'. If you still want to install or update, use -SkipPublisherCheck parameter.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:2089 char:20
+ ... $sid = PackageManagement\Install-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Exc
eption
+ FullyQualifiedErrorId : AuthenticodeIssuerMismatch,Validate-ModuleAuthenticodeSignature,Microsoft.PowerShell.Packag
eManagement.Cmdlets.InstallPackage