2016-04-13 14 views
0

.INFファイルから.REQを作成するために、powershellでスクリプトを作成しました。次に、このファイル(.REQ)をPKIにインポートし、次に.CERTを生成する必要があります。Powershellのwindows server 2012への認証PKI

私の問題は、Powershellから自分自身を認証する方法がわかりません。 2番目の質問ですが、私はどのように証明書のテンプレートを選択するのですか(PKIのオンライン画面でテンプレートを選択する選択欄があります)。

これまでのコードですもちろん、私は(私が正常にRDPを使用して自分自身を接続して)ログインとパスワードを知っている私は、正確な。それはここに私の主な質問ですが、認証する方法がわからない。

# Generate Request File .req 

Write-Host " This script generates a .REQ (step 1/3 in certificate creation)" 
Write-Host " " 
Write-Host " Step 1/3: create .INF file with Key length and other parameters, create a .REQ file" 
Write-Host " Step 2/3: import the .REQ file into the Intermediate PKI and generate a .CER" 
Write-Host " Step 3/3: from the .CER file, create a .PFX with the exportable key" 


# Variables declaration 
# 
# UID = nom du PDA ou son numero de serie 
# $Login = login sur la PKI intermediate 
# $Pass = Password sur la PKI intermediate 

$Date = (Get-Date).ToString('ddMMyyyy') 
Write-Host " " 
[string]$UID = read-host "Please enter the Device Name (or Serial Number)" 
$Path = "C:\users\youcef\Desktop\Julie\" 

$Login = "me" 
$Pass = "pass" 



# INF File content 

$ReqFile = "$UID" + "_" + "$Date" + ".req" 
$InfFile = @" 
[NewRequest]`r 
Subject = "CN=$UID"`r 
KeySpec = 1 
Exportable = TRUE 
RequestType = PKCS10 
[PolicyStatementExtension] 
Policies=InternalPolicy 
[InternalPolicy] 
OID= 1.2.3.4.1455.67.89.5 
Notice="Legal Policy Statement 
[Certsrv_Server] 
RenewalKeyLength=1024 
RenewalValidityPeriod=Years 
RenewalValidityPeriodUnits=2 
CRLPeriod=weeks 
CRLPeriodUnits=52 
CRLDeltaPeriod=Days 
CRLDeltaPeriodUnits=0 
LoadDefaultTemplates=1 
AlternateSignatureAlgorithm=0 
"@ 


# Generate Request File from INF File 

Write-Host "Generating Certificate Request file..." -ForegroundColor Yellow; 
$MYCERTNAME = "$UID" + "_" + "$Date" + ".inf" 
New-Item $MYCERTNAME -type file -value $InfFile 


certreq -new $path\$MYCERTNAME $path\$ReqFile 
    Write-Host " " 
Write-Host "Certificate request file for $UID successfully generated!" -foregroundcolor DarkGreen; 


# Authentication on PKI: HERE I AM TOTALLY LOST 

Connect-CertificationAuthority -ComputerName ca01.company.com 
$password = ConvertTo-SecureString "password" -AsPlainText -Force 
$cred = new-object -typename System.Management.Automation.PSCredential ` 
    -argumentlist $Login, $Pass 

$serverNameOrIp = "192.168.1.1" 
Restart-Computer -ComputerName $serverNameOrIp ` 
      -Authentication default ` 
      -Credential $cred 
      <any other parameters relevant to you> 
$cred = new-object -typename System.Management.Automation.PSCredential ` 
    -argumentlist $username, $password 

$serverNameOrIp = "https://pki.mycompany.fr/certsrv/certrqxt.asp" 
Restart-Computer -ComputerName $serverNameOrIp ` 
      -Authentication default ` 
      -Credential $cred 
      <any other parameters relevant to you> 


certreq -submit -config "https://pki.mycompany.fr/certsrv/certrqxt.asp"  $path\$ReqFile $path\$UID.cer 
#certreq -submit -config "https://pki.mycompany.fr\certsrv"   $path\$ReqFile $path\$UID.cer 

certreq -accept $path\$UID.cer 
certutil -exportpfx -p "Welcome123" MY $UID $path\clientcerts\$UID.pfx 

答えて

0

私はで私の問題を解決しましたサーバー上で直接スクリプトを起動する 最高の解決策ではありませんが、PowerShellでリモートセッションを使用することができました。