[英]PowerShell : How to run remote command prompt commands as admin from PowerShell?
[英]Run command prompt commands in powershell
以下是兩個在命令提示符下運行並創建所需證書文件的命令:
makecert –sv <cnName>.pvk -n "cn=<cnName>" <cnName>.cer -r -eku 1.3.6.1.5.5.7.3.1
pvk2pfx -pvk <cnName>.pvk -spc <cnName>.cer -pfx <cnName>.pfx -po <password>
我正在嘗試使用以下代碼在Powershell中運行相同的命令:
$cnName = <sampleCnName> + ".com"
$pvkName = $cnName + ".pvk"
$cerName = $cnName + ".cer"
$pfxName = $cnName + ".pfx"
$certificatePassword = <password>
& "Makecert\makecert –sv $pvkName -n "cn=$cnName" $cerName -r -eku 1.3.6.1.5.5.7.3.1"
& "Makecert\pvk2pfx -pvk $pvkName -spc $cerName -pfx $pfxName -po $certificatePassword"
當前錯誤是
& : The module 'Makecert' could not be loaded. For more information, run 'Import-Module Makecert'.
一個問題是,當我在命令提示符下的Makecert文件夾中運行makecert和pvk2pfx命令時,我想在父文件夾Makecert級別中寫入powershell腳本。 想知道什么是正確的方法。
更新:以下命令在Powershell中工作:
$currentDirectory = Split-Path $Script:MyInvocation.MyCommand.Path
& "$currentDirectory\Makecert\makecert.exe" –sv actualCnName.pvk -n "cn=actualCnName" actualCnName.cer -r -eku 1.3.6.1.5.5.7.3.1
您現在有2期-
如果要從當前目錄中的相對路徑調用工具,則Powershell需要.\\
限定。 即makecert\\makecert.exe
無法正常工作,您需要.\\makecert\\makecert.exe
。
如果使用&
,則后續字符串應僅包含路徑和工具名稱, 而不包含任何參數。 即& "sometool.exe -a foo -b bar"
錯誤, & "sometool.exe" -a foo -b bar
是正確的。
另請注意,除非路徑和/或工具名稱包含空格或其他特殊字符,或者由於其他原因路徑已存儲在字符串中,否則不需要&
。 給定您的示例代碼,此處並不一定需要它。
所以我建議:
$cnName = <sampleCnName> + ".com"
$pvkName = $cnName + ".pvk"
$cerName = $cnName + ".cer"
$pfxName = $cnName + ".pfx"
$certificatePassword = <password>
.\makecert\makecert.exe –sv $pvkName -n "cn=$cnName" $cerName -r -eku 1.3.6.1.5.5.7.3.1
.\makecert\pvk2pfx.exe -pvk $pvkName -spc $cerName -pfx $pfxName -po $certificatePassword
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.