Задать вопрос

Как упаковать в exe скрипт?

Всем привет. ЕГИСЗ распространяет новые сертификаты без которых не работают федеральные сайты. Как можно в exe упаковать сертификат и bat скрипт для установки на компьютеры которые находятся не в домене?
  • Вопрос задан
  • 376 просмотров
Подписаться 3 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@MaxKozlov
Скрипт на Powershell пойдёт ?
# PSv7   $cert = [Convert]::ToBase64String((Get-Content D:\Path\To\Certificate.pfx/cer -AsByteStream), 'InsertLineBreaks')
# PSv5.1 $cert = [Convert]::ToBase64String((Get-Content D:\Path\To\Certificate.pfx/cer -Encoding Byte), 'InsertLineBreaks')
$Cert = @"
MIILYgIBAzCCCx4GCSqGSIb3DQEH
.....
.....
.....
1y1lZqkQICB9A=
"@

#LocalMachine
$location = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser

#ls Cert:\CurrentUser\
#ls Cert:\LocalMachine\
$storeName = 'TrustedPublisher'

$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, $location)
$store.Open('ReadWrite')
[byte[]]$content = [Convert]::FromBase64String($cert)
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($content)
$store.Add($certificate)
$store.Close()

В комментариях сверху показано, как получить содержимое сертификата, которое надо подставить в $cert
В комментариях к $location показано что ещё бывает
В комментариях к $storeName Показано откуда его брать

Поддерживается как импорт просто сертификата, так и pfx с ключом
Пароль для pfx не проверял, но по идее будет работать если он будет указан как new($content, $password)
Ответ написан
Комментировать
Adler_lug
@Adler_lug
Самый простой вариант - самораспаковывающийся архив (WinRar, 7Zip, 7Zip SFX Mod и т.д.). Сделать, что бы он распаковывался во временную папку, например, и запускался оттуда.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы