2016-04-13 42 views
0

我在PowerShell中創建了一個腳本,用於從.INF文件創建.REQ。然後必須將該文件(.REQ)導入PKI,然後生成.CERT。在Powershell中對Windows Server 2012的身份驗證PKI

我的問題是我不知道如何從Powershell向PKI驗證自己。第二個問題,如果我可能會問,我該如何選擇證書模板(在PKI在線屏幕上,我有一個選擇框,在其中我選擇了我的模板(例如Wifi客戶端)

這是我的代碼當然,我不知道如何進行身份驗證,這是我的主要問題在這裏,我確切,我知道登錄名和密碼(我自己成功使用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中的遠程會話

相關問題