Ошибка параметра "-e" при запуске команды makecert в powershell

758
JennaTime

Я пытаюсь запустить следующую команду в Powershell на компьютере под управлением Server 2012:

makecert -r -pe -n CN="*.$domainVariable" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine 

Я получаю ошибку:

makecert : The term 'makecert' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + makecert -r -pe -n CN="*.$domainVariable" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6 ... + ~~~~~~~~ + CategoryInfo : ObjectNotFound: (makecert:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException 

Итак, я выполнил эту команду после некоторых онлайн-исследований:

set-location 'C:\Program Files\QACloneAutomation' makecert -r -pe -n CN="*.$domainVariable" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine 

Теперь я получаю эту ошибку:

Set-Location : Parameter cannot be processed because the parameter name 'e' is ambiguous. Possible matches include: -ErrorAction -ErrorVariable. At C:\Users\Administrator\Desktop\cloneSetup.ps1:48 char:107 + ... -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine + ~~ + CategoryInfo : InvalidArgument: (:) [Set-Location], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameter,Microsoft.PowerShell.Commands.SetLocationCommand 

Мне интересно, если кто-нибудь знает о решении этой проблемы. Я видел, как один человек отправил билет в Microsoft Connect около 8 лет назад на ту же проблему (билет № 183738), но у меня не было доступа к Connect, чтобы узнать, каков был результат.

0
Вы уверены, что у вас есть утилита с именем makecert? Кроме того, почему вы пытаетесь предшествовать makecert с Set-Location? Это действительно не имеет особого смысла. Zoredache 9 лет назад 0
У меня есть файл makecert.exe в папке, из которой я пытаюсь его выполнить. Есть ли что-то еще, что мне нужно, чтобы это заработало? JennaTime 9 лет назад 0
Это сработало! Спасибо! Я изменил свою команду следующим образом:. \ Makecert.exe -r -pe -n CN = "*. $ DomainVariable" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3. 1-я моя местная машина JennaTime 9 лет назад 0
Хорошо, я добавил это как ответ. Zoredache 9 лет назад 0

1 ответ на вопрос

0
Zoredache

Когда дело доходит до Powershell, вам действительно нужно дать полное название ваших команд, не являющихся PowerShell. Так что вместо makecert, вы должны использовать makecert.exe.