2016-04-13 10 views
0

Ich machte ein Skript in Powershell, um eine .REQ aus einer INF-Datei zu machen. Diese Datei (.REQ) muss dann in die PKI importiert werden, die dann eine .CERT generiert.Authentifizierung in Powershell zu Windows Server 2012 PKI

Mein Problem ist, dass ich nicht weiß, wie ich mich von PowerShell zur PKI authentifizieren. Zweite Frage, wenn ich fragen darf, wie wähle ich die Zertifikatvorlage (im PKI-Online-Bildschirm habe ich ein Auswahlfeld, in dem ich meine Vorlage auswähle (zB für Wifi-Client)

Hier ist mein Code soweit natürlich, ich weiß nicht, wie zu authentifizieren, das ist meine Hauptfrage hier. ich genau, dass ich das Login und das Passwort kennen (ich erfolgreich verbinde ich 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 

Antwort

0

ich löste mein Problem in Startet mein Skript direkt auf dem Server Nicht die beste Lösung, aber ich habe es nie geschafft, Remote Session in Powershell

zu verwenden