about_Certificate_Provider
Szolgáltató neve
Tanúsítvány
Meghajtók
Cert:
Képességek
ShouldProcess
Rövid leírás
Hozzáférést biztosít az X.509-tanúsítványtárolókhoz és -tanúsítványokhoz a PowerShellben.
Részletes leírás
Ezek az információk csak a Windows rendszeren futó PowerShellre vonatkoznak.
A PowerShell-tanúsítványszolgáltató lehetővé teszi a tanúsítványok és tanúsítványtárolók lekérését, hozzáadását, módosítását, törlését és törlését a PowerShellben.
A tanúsítványmeghajtó egy hierarchikus névtér, amely a számítógépen található tanúsítványtárolókat és tanúsítványokat tartalmazza.
A tanúsítványszolgáltató a következő parancsmagokat támogatja.
- Hely lekérése
- Beállítás helye
- Elem lekérése
- Get-ChildItem
- Meghívás-elem
- Elem áthelyezése
- Új elem
- Elem eltávolítása
- Get-ItemProperty
- Set-ItemProperty
- Clear-ItemProperty
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
A szolgáltató által közzétett típusok
A tanúsítványmeghajtó a következő típusokat teszi elérhetővé.
- Microsoft.PowerShell.Commands.X509StoreLocation, amely olyan magas szintű tárolók, amelyek az aktuális felhasználó és az összes felhasználó tanúsítványait csoportosítják. Minden rendszer rendelkezik egy
CurrentUser
ésLocalMachine
(minden felhasználó) tárolóhellyel. - System.Security.Cryptography.X509Certificates.X509Store, amelyek fizikai tárolók, ahol a tanúsítványok mentése és kezelése megtörtént.
- System.Security.Cryptography.X509Certificates.X509Certificate2, amelyek mindegyike egy X.509-tanúsítványt jelöl a számítógépen. A tanúsítványokat ujjlenyomataik azonosítják.
Navigálás a tanúsítványmeghajtón
A tanúsítványszolgáltató meghajtóként teszi elérhetővé a tanúsítványnévteret a Cert:
PowerShellben. Ez a parancs a Set-Location
parancs használatával módosítja az aktuális helyet az Root
áruházban található LocalMachine
tanúsítványtárolóra. Használjon fordított perjelet (\
) vagy perjelet (/
) a Cert:
meghajtó szintjének jelzéséhez.
Set-Location Cert:
A tanúsítványszolgáltatóval bármely más PowerShell-meghajtóról is dolgozhat. Ha más helyről szeretne aliasra hivatkozni, használja az Cert:
elérési út meghajtónevét.
PS Cert:\> Set-Location -Path LocalMachine\Root
Fájlrendszer-meghajtóra való visszatéréshez írja be a meghajtó nevét. Írja be például a következőt:
Set-Location C:
Feljegyzés
A PowerShell aliasokkal teszi lehetővé a szolgáltatói útvonalakkal való munkavégzést. Az olyan parancsok, mint például dir
a ls
Get-ChildItem aliasai, cd
a Set-Location aliasai, és pwd
a Get-Location aliasai.
A Cert: meghajtó tartalmának megjelenítése
Ez a parancs a Get-ChildItem
parancsmaggal jeleníti meg a tanúsítványtárolókat a CurrentUser
tanúsítványtároló helyén.
Ha nem a Cert:
meghajtón van, használjon abszolút elérési utat.
PS Cert:\CurrentUser\> Get-ChildItem
Tanúsítványtulajdonságok megjelenítése a Tanúsítvány: meghajtón belül
Ez a példa lekéri a tanúsítványt Get-Item
, és egy változóban tárolja.
A példában az új tanúsítványszkript tulajdonságai (DnsNameList, EnhancedKeyUsageList, SendAsTrustedIssuer) Select-Object
láthatók.
$c = Get-Item cert:\LocalMachine\My\52A149D0393CE8A8D4AF0B172ED667A9E3A1F44E
$c | Format-List DnsNameList, EnhancedKeyUsageList, SendAsTrustedIssuer
DnsNameList : {SERVER01.contoso.com}
EnhancedKeyUsageList : {WiFi-Machine (1.3.6.1.4.1.311.42.2.6),
Client Authentication (1.3.6.1.5.5.7.3.2)}
SendAsTrustedIssuer : False
Az összes CodeSigning-tanúsítvány megkeresése
Ez a parancs a parancsmag CodeSigningCert és Recurse paramétereit használja a Get-ChildItem
kódaláíró jogosultsággal rendelkező számítógépen található összes tanúsítvány lekéréséhez.
Get-ChildItem -Path cert: -CodeSigningCert -Recurse
Lejárt tanúsítványok keresése
Ez a parancs a parancsmag LejáratinDays paraméterét használja a Get-ChildItem
következő 30 napon belül lejáró tanúsítványok lekéréséhez.
Get-ChildItem -Path cert:\LocalMachine\WebHosting -ExpiringInDays 30
Kiszolgálói SSL-tanúsítványok keresése
Ez a parancs a parancsmag SSLServerAuthentication paraméterét használja az Get-ChildItem
összes kiszolgálói SSL-tanúsítvány lekéréséhez a tárolókban és WebHosting
a My
tárolókban.
$getChildItemSplat = @{
Path = 'cert:\LocalMachine\My', 'cert:\LocalMachine\WebHosting'
SSLServerAuthentication = $true
}
Get-ChildItem @getChildItemSplat
Lejárt tanúsítványok keresése távoli számítógépeken
Ez a parancs a Invoke-Command
parancsmaggal futtat egy Get-ChildItem
parancsot az Srv01 és az Srv02 számítógépeken. A LejáratinDays paraméter nulla (0
) értéke lekéri a lejárt Srv01- és Srv02-számítógépek tanúsítványait.
$invokeCommandSplat = @{
ComputerName = 'Srv01', 'Srv02'
ScriptBlock = {
Get-ChildItem -Path cert:\* -Recurse -ExpiringInDays 0
}
}
Invoke-Command @invokeCommandSplat
Szűrők kombinálása adott tanúsítványkészlet megkereséséhez
Ez a parancs lekéri az összes olyan tanúsítványt az LocalMachine
áruházban, amely a következő attribútumokkal rendelkezik:
fabrikam
a DNS-ük nevébenClient Authentication
az EKU-ban- a SendAsTrustedIssuer tulajdonság értéke
$true
- nem jár le a következő 30 napon belül.
A NotAfter tulajdonság tárolja a tanúsítvány lejárati dátumát.
[DateTime] $ValidThrough = (Get-Date) + (New-TimeSpan -Days 30)
$getChildItemSplat = @{
Path = 'cert:\*'
Recurse = $true
DnsName = "*fabrikam*"
Eku = "*Client Authentication*"
}
Get-ChildItem @getChildItemSplat |
Where-Object {$_.SendAsTrustedIssuer -and $_.NotAfter -gt $ValidThrough }
A Tanúsítványok MMC beépülő modul megnyitása
A Invoke-Item
parancsmag az alapértelmezett alkalmazással nyit meg egy megadott elérési utat. Tanúsítványok esetén az alapértelmezett alkalmazás a Tanúsítványok MMC beépülő modul.
Ez a parancs megnyitja a Tanúsítványok MMC beépülő modult a megadott tanúsítvány kezeléséhez.
Invoke-Item cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE66B
Tanúsítványok másolása
A tanúsítványok másolását a tanúsítványszolgáltató nem támogatja. Amikor megpróbál másolni egy tanúsítványt, ez a hiba jelenik meg.
$path = "Cert:\LocalMachine\Root\E2C0F6662D3C569705B4B31FE2CBF3434094B254"
PS Cert:\LocalMachine\> Copy-Item -Path $path -Destination .\CA\
Copy-Item : Provider operation stopped because the provider doesn't support
this operation.
At line:1 char:1
+ Copy-Item -Path $path -Destination .\CA\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotImplemented: (:) [Copy-Item],
PSNotSupportedException
+ FullyQualifiedErrorId : NotSupported,
Microsoft.PowerShell.Commands.CopyItemCommand
Tanúsítványok áthelyezése
Az összes SSL Server-hitelesítési tanúsítvány áthelyezése a WebHosting store-ba
Ez a parancs a Move-Item
parancsmaggal helyezi át a tanúsítványt az My
áruházból az WebHosting
áruházba.
Move-Item
nem tudja áthelyezni a tanúsítványtárolókat, és nem tudja áthelyezni a tanúsítványokat egy másik tárolóhelyre, például egy tanúsítvány áthelyezése LocalMachine
CurrentUser
ide. A Move-Item
parancsmag áthelyezheti a tanúsítványokat egy tárolón belül, de nem helyezi át a titkos kulcsokat.
Ez a parancs a parancsmag SSLServerAuthentication paraméterét használja az Get-ChildItem
SSL-kiszolgáló hitelesítési tanúsítványainak lekéréséhez a My
tanúsítványtárolóban.
A visszaadott tanúsítványok a Move-Item
parancsmagra vannak állítva, amely áthelyezi a tanúsítványokat az WebHosting
áruházba.
Get-ChildItem cert:\LocalMachine\My -SSLServerAuthentication |
Move-Item -Destination cert:\LocalMachine\WebHosting
Tanúsítványok és titkos kulcsok törlése
A Remove-Item
parancsmag törli a megadott tanúsítványokat. A DeleteKey dinamikus paraméter törli a titkos kulcsot.
Tanúsítvány törlése a ca-tárolóból
Ez a parancs törli a tanúsítványt a hitelesítésszolgáltató tanúsítványtárolójából, de a társított titkos kulcsot érintetlenül hagyja.
A meghajtón a Cert:
parancsmag csak a DeleteKey, path, WhatIf és Confirm paramétereket támogatja.Remove-Item
A rendszer figyelmen kívül hagyja az összes többi paramétert.
Remove-Item cert:\LocalMachine\CA\5DDC44652E62BF9AA1116DC41DE44AB47C87BDD0
Tanúsítvány törlése helyettesítő karakterek használatával a DNS-névben
Ez a parancs törli az összes olyan tanúsítványt, amely dns-nevet tartalmaz Fabrikam
. A parancsmag DNSName paraméterét használja a Get-ChildItem
tanúsítványok és a Remove-Item
parancsmag törléséhez.
Get-ChildItem -Path cert:\LocalMachine -DnsName *Fabrikam* | Remove-Item
Titkos kulcsok törlése távoli számítógépről
Ez a parancssorozat engedélyezi a delegálást, majd törli a tanúsítványt és a társított titkos kulcsot egy távoli számítógépen. Ha távoli számítógépen szeretne titkos kulcsot törölni, delegált hitelesítő adatokat kell használnia.
A parancsmaggal engedélyezheti a Enable-WSManCredSSP
Credential Security Service Provider (CredSSP) hitelesítést egy ügyfélen az S1 távoli számítógépen.
A CredSSP engedélyezi a delegált hitelesítést.
Enable-WSManCredSSP -Role Client -DelegateComputer S1
Connect-WSMan
A parancsmaggal csatlakoztassa az S1 számítógépet a helyi számítógép WinRM szolgáltatásához. A parancs befejeződésekor az S1 számítógép megjelenik a PowerShell helyi WSMan:
meghajtóján.
Connect-WSMan -ComputerName S1 -Credential Domain01\Admin01
Most a Set-Item
meghajtóban található WSMan:
parancsmaggal engedélyezheti a CredSSP attribútumot a WinRM szolgáltatáshoz.
Set-Item -Path WSMan:\S1\Service\Auth\CredSSP -Value $true
Indítsa el a távoli munkamenetet az S1 számítógépen a parancsmaggal, és adja meg a New-PSSession
CredSSP-hitelesítést. Menti a munkamenetet a $s
változóban.
$s = New-PSSession S1 -Authentication CredSSP -Credential Domain01\Admin01
Végül a Invoke-Command
parancsmaggal futtasson egy Remove-Item
parancsot a változó munkamenetében $s
. A Remove-Item
parancs a DeleteKey paraméterrel távolítja el a titkos kulcsot a megadott tanúsítvánnyal együtt.
Invoke-Command -Session $s {
$removeItemSplat = @{
Path = 'cert:\LocalMachine\My\D2D38EBA60CAA1C12055A2E1C83B15AD450110C2'
DeleteKey = $true
}
Remove-Item @removeItemSplat
}
Lejárt tanúsítványok törlése
Ez a parancs a parancsmag LejáratinDays paraméterét használja a Get-ChildItem
lejárt tárolóban lévő WebHosting
tanúsítványok lekéréséhez0
.
A visszaadott tanúsítványokat tartalmazó változót a rendszer a Remove-Item
parancsmagba csövezi, amely törli őket. A parancs a DeleteKey paraméterrel törli a titkos kulcsot és a tanúsítványt.
$expired = Get-ChildItem cert:\LocalMachine\WebHosting -ExpiringInDays 0
$expired | Remove-Item -DeleteKey
Tanúsítványok létrehozása
A New-Item
parancsmag nem hoz létre új tanúsítványokat a tanúsítványszolgáltatóban . A New-SelfSignedCertificate parancsmaggal hozzon létre egy tanúsítványt tesztelési célokra.
Tanúsítványtárolók létrehozása
A meghajtón a Cert:
New-Item
parancsmag tanúsítványtárolókat hoz létre a LocalMachine
tárolóhelyen. Támogatja a Name, Path, WhatIf és Confirm paramétereket. A rendszer figyelmen kívül hagyja az összes többi paramétert. A parancs egy System.Security.Cryptography.X509Certificates.X509Store értéket ad vissza, amely az új tanúsítványtárolót jelöli.
Ez a parancs létrehoz egy új tanúsítványtárolót a LocalMachine
tárolóhelyen.CustomStore
New-Item -Path cert:\LocalMachine\CustomStore
Új tanúsítványtároló létrehozása távoli számítógépen
Ez a parancs létrehoz egy új tanúsítványtárolót, amely a LocalMachine
Server01 számítógépen található tárolóhelyen van elnevezveHostingStore
.
A parancs a Invoke-Command
parancsmaggal futtat egy New-Item
parancsot a Server01 számítógépen. A parancs egy System.Security.Cryptography.X509Certificates.X509Store értéket ad vissza, amely az új tanúsítványtárolót jelöli.
Invoke-Command -ComputerName Server01 -ScriptBlock {
New-Item -Path cert:\LocalMachine\CustomStore
}
Ügyféltanúsítványok létrehozása A WS-Man számára
Ez a parancs létrehoz egy ClientCertificate bejegyzést, amelyet a WS-Management-ügyfél használhat. Az új ClientCertificate a ClientCertificate könyvtár alatt jelenik meg.ClientCertificate_1234567890
Minden paraméter kötelező. A kiállítónak a kiállító tanúsítványának ujjlenyomatának kell lennie.
$newItemSplat = @{
Path = 'WSMan:\localhost\ClientCertificate'
Credential = Get-Credential
Issuer = '1b3fd224d66c6413fe20d21e38b304226d192dfe'
URI = 'wmicimv2/*'
}
New-Item @newItemSplat
Tanúsítványtárolók törlése
Tanúsítványtároló törlése távoli számítógépről
Ez a parancs a Invoke-Command
parancsmag használatával futtat egy Remove-Item
parancsot az S1 és az S2 számítógépeken. A Remove-Item
parancs tartalmazza a Recurse paramétert , amely törli a tárolóban lévő tanúsítványokat, mielőtt törli az áruházat.
Invoke-Command -ComputerName S1, S2 -ScriptBlock {
Remove-Item -Path cert:\LocalMachine\TestStore -Recurse
}
Dinamikus paraméterek
A dinamikus paraméterek olyan parancsmagparaméterek, amelyeket egy PowerShell-szolgáltató ad hozzá, és csak akkor érhetők el, ha a parancsmagot a szolgáltató által engedélyezett meghajtón használják. Ezek a paraméterek a tanúsítványszolgáltató összes alkönyvtárában érvényesek, de csak a tanúsítványokon érvényesek.
Feljegyzés
Az EnhancedKeyUsageList tulajdonságra szűrést végző paraméterek üres EnhancedKeyUsageList tulajdonságértékkel rendelkező elemeket is visszaadnak. Az üres EnhancedKeyUsageList-et tartalmazó tanúsítványok minden célra használhatók.
A következő tanúsítványszolgáltatói paraméterek újra be lettek vezetve a PowerShell 7.1-ben.
- DNSName
- DocumentEncryptionCert
- EKU
- Lejáró nap
- SSLServerAuthentication
CodeSigningCert <System.Management.Automation.SwitchParameter>
Támogatott parancsmagok
Ez a paraméter lekéri az EnhancedKeyUsageList tulajdonságértékben lévő Code Signing
tanúsítványokat.
DeleteKey <System.Management.Automation.SwitchParameter>
Támogatott parancsmagok
Ez a paraméter törli a társított titkos kulcsot a tanúsítvány törlésekor.
Fontos
Ha egy távoli számítógépen lévő tárolóban Cert:\CurrentUser
lévő felhasználói tanúsítványhoz társított titkos kulcsot szeretne törölni, delegált hitelesítő adatokat kell használnia. A Invoke-Command
parancsmag a CredSSP paraméterrel támogatja a hitelesítő adatok delegálását. A hitelesítő adatok delegálása előtt Remove-Item
Invoke-Command
érdemes megfontolni a biztonsági kockázatokat.
Ezt a paramétert újra bevezették a PowerShell 7.1-ben
DnsName <Microsoft.PowerShell.Commands.DnsNameRepresentation>
Támogatott parancsmagok
Ez a paraméter olyan tanúsítványokat kap, amelyek a tanúsítvány DNSNameList tulajdonságában megadott tartománynévvel vagy névmintával rendelkeznek. Ennek a paraméternek az értéke lehet Unicode
vagy ASCII
. A punycode-értékek Unicode-ra lesznek konvertálva. A helyettesítő karakterek (*
) használata engedélyezett.
Ezt a paramétert újra bevezették a PowerShell 7.1-ben
DocumentEncryptionCert <System.Management.Automation.SwitchParameter>
Támogatott parancsmagok
Ez a paraméter lekéri az EnhancedKeyUsageList tulajdonságértékben lévő Document Encryption
tanúsítványokat.
EKU <System.String>
Támogatott parancsmagok
Ez a paraméter olyan tanúsítványokat kap, amelyek a tanúsítvány EnhancedKeyUsageList tulajdonságában megadott szöveg- vagy szövegmintával rendelkeznek. A helyettesítő karakterek (*
) használata engedélyezett. Az EnhancedKeyUsageList tulajdonság tartalmazza az EKU rövid nevét és OID mezőit.
Ezt a paramétert újra bevezették a PowerShell 7.1-ben
LejáróInDays <System.Int32>
Támogatott parancsmagok
Ez a paraméter lekéri a megadott számú napon belül vagy előtt lejáró tanúsítványokat. A nulla (0) érték lekéri a lejárt tanúsítványokat.
Ezt a paramétert újra bevezették a PowerShell 7.1-ben
ItemType <System.String>
Ez a paraméter határozza meg a létrehozott New-Item
elem típusát. A New-Item
parancsmag csak az értéket Store
támogatja. New-Item
A parancsmag nem tud új tanúsítványokat létrehozni.
Támogatott parancsmagok
SSLServerAuthentication <System.Management.Automation.SwitchParameter>
Támogatott parancsmagok
Csak az SSL-webszolgáltatás kiszolgálótanúsítványait kapja meg. Ez a paraméter lekéri az EnhancedKeyUsageList tulajdonságértékben lévő Server Authentication
tanúsítványokat.
Ezt a paramétert újra bevezették a PowerShell 7.1-ben
Szkripttulajdonságok
Új szkripttulajdonságok lettek hozzáadva az x509Certificate2 objektumhoz, amely a tanúsítványokat jelöli, hogy megkönnyítse a tanúsítványok keresését és kezelését.
- DnsNameList: A DnsNameList tulajdonság feltöltéséhez a tanúsítványszolgáltató átmásolja a tartalmat a SubjectAlternativeName (SAN) bővítmény DNSName bejegyzéséből. Ha a SAN-bővítmény üres, a tulajdonságot a tanúsítvány Tulajdonos mezőjéből származó tartalom tölti ki.
- EnhancedKeyUsageList: A EnhancedKeyUsageList tulajdonság feltöltéséhez a tanúsítványszolgáltató átmásolja a EnhancedKeyUsage (EKU) mező OID-tulajdonságait a tanúsítványban, és létrehoz egy rövid nevet.
- SendAsTrustedIssuer: A SendAsTrustedIssuer tulajdonság feltöltéséhez a tanúsítványszolgáltató átmásolja a SendAsTrustedIssuer tulajdonságot a tanúsítványból. További információ: Megbízható kiállítók kezelése az ügyfélhitelesítéshez.
Ezek az új funkciók lehetővé teszik a tanúsítványok keresését a DNS-nevük és a lejárati dátumuk alapján, valamint megkülönböztetheti az ügyfél- és kiszolgálóhitelesítési tanúsítványokat a bővített kulcshasználati (EKU) tulajdonságok értéke alapján.
A folyamat használata
A szolgáltatói parancsmagok elfogadják a folyamatbemenetet. A folyamat segítségével egyszerűsítheti a feladatokat, ha szolgáltatói adatokat küld egy parancsmagból egy másik szolgáltatói parancsmagnak. A folyamat szolgáltatói parancsmagokkal való használatával kapcsolatos további információkért tekintse meg a cikkben található parancsmag-hivatkozásokat.
Segítség kérése
A PowerShell 3.0-tól kezdve testre szabott súgótémaköröket kaphat a szolgáltatói parancsmagokhoz, amelyek ismertetik, hogyan viselkednek ezek a parancsmagok egy fájlrendszer-meghajtón.
A fájlrendszer-meghajtóhoz testre szabott súgótémakörök lekéréséhez futtasson egy Get-Help parancsot egy fájlrendszer-meghajtón, vagy használja a -Path
paramétert Get-Help
a fájlrendszer-meghajtó megadásához.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path cert:
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: