Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sağlayıcı adı
Sertifika
Drives
Cert:
Capabilities
ShouldProcess
Kısa açıklama
PowerShell'de X.509 sertifika depolarına ve sertifikalarına erişim sağlar.
Ayrıntılı açıklama
Bu bilgiler yalnızca Windows üzerinde çalışan PowerShell için geçerlidir.
PowerShell Sertifika sağlayıcısı, PowerShell'de sertifikaları ve sertifika depolarını almanıza, eklemenize, değiştirmenize, temizlemenize ve silmenize olanak tanır.
Sertifika sürücüsü, bilgisayarınızdaki sertifika depolarını ve sertifikaları içeren hiyerarşik bir ad alanıdır.
Sertifika sağlayıcısı aşağıdaki cmdlet'leri destekler.
- Get-Location
- Konum Ayarla
- Öğe Al
- Get-ChildItem
- ÖğeYi Çağır
- ÖğeYi Taşı
- Yeni Öğe
- Öğeyi Kaldır
- Get-ItemProperty
- Set-ItemProperty
- Clear-ItemProperty
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
Bu sağlayıcı tarafından kullanıma sunulan türler
Sertifika sürücüsü aşağıdaki türleri kullanıma sunar.
-
Geçerli kullanıcının ve tüm kullanıcıların sertifikalarını gruplandıran üst düzey kapsayıcılar olan Microsoft.PowerShell.Commands.X509StoreLocation. Her sistemin bir
CurrentUserveLocalMachine(tüm kullanıcılar) depolama konumu vardır. - Sertifikaların kaydedildiği ve yönetildiği fiziksel depolar olan System.Security.Cryptography.X509Certificates.X509Store.
- System.Security.Cryptography.X509Certificates.X509Certificate2, her birinin bilgisayardaki bir X.509 sertifikasını temsil eder. Sertifikalar parmak izleriyle tanımlanır.
Sertifika sürücüsünde gezinme
Sertifika sağlayıcısı, sertifika ad alanını PowerShell'de sürücü olarak Cert: kullanıma sunar. Bu komut, Set-Location geçerli konumu depo konumundaki sertifika deposuyla RootLocalMachine değiştirmek için komutunu kullanır. Sürücünün düzeyini \ belirtmek için ters eğik çizgi (/) veya eğik çizgi (Cert:) kullanın.
Set-Location Cert:
Sertifika sağlayıcısıyla başka herhangi bir PowerShell sürücüsünden de çalışabilirsiniz. Başka bir konumdan bir diğer ada başvurmak için yoldaki Cert: sürücü adını kullanın.
PS Cert:\> Set-Location -Path LocalMachine\Root
Bir dosya sistemi sürücüsüne dönmek için sürücü adını yazın. Örneğin, şunu yazın:
Set-Location C:
Not
PowerShell, sağlayıcı yollarıyla çalışmak için tanıdık bir yol sağlamak için diğer adları kullanır. ve gibi dir komutlar artık Get-ChildItemlsdiğer addır, Set-Locationcdbir diğer addır ve Get-Locationpwdbir diğer addır.
Sertifika: sürücüsünün içeriğini görüntüleme
Bu komut, sertifika depolarını sertifika deposu konumunda görüntülemek için cmdlet'ini Get-ChildItem kullanırCurrentUser.
Sürücüde Cert: değilseniz mutlak bir yol kullanın.
PS Cert:\CurrentUser\> Get-ChildItem
Sertifika özellikleri Cert: sürücüsünde görüntüleniyor
Bu örnek ile Get-Item bir sertifika alır ve bunu bir değişkende depolar.
Örnekte, kullanarak yeni sertifika betiği özellikleri (DnsNameList, EnhancedKeyUsageList, Select-Object) gösterilmektedir.
$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
Tüm CodeSigning sertifikalarını bulma
Bu komut, kod imzalama yetkilisine sahip bilgisayardaki tüm sertifikaları almak için cmdlet'in CodeSigningCert ve Get-ChildItem parametrelerini kullanır.
Get-ChildItem -Path Cert: -CodeSigningCert -Recurse
Süresi dolan sertifikaları bulma
Bu komut, sonraki 30 gün içinde süresi dolan sertifikaları almak için cmdlet'in ExpiringInDays.
Get-ChildItem -Path Cert:\LocalMachine\WebHosting -ExpiringInDays 30
Sunucu SSL Sertifikalarını Bul
Bu komut, ve depolarındaki Get-ChildItem parametresini MyWebHosting kullanır.
$getChildItemSplat = @{
Path = 'Cert:\LocalMachine\My', 'Cert:\LocalMachine\WebHosting'
SSLServerAuthentication = $true
}
Get-ChildItem @getChildItemSplat
Uzak bilgisayarlarda süresi dolan sertifikaları bulma
Bu komut, cmdlet'ini Invoke-Command kullanarak Srv01 ve Srv02 bilgisayarlarında bir Get-ChildItem komut çalıştırır. ExpiringInDays0sıfır () değeri, süresi dolan Srv01 ve Srv02 bilgisayarlarındaki sertifikaları alır.
$invokeCommandSplat = @{
ComputerName = 'Srv01', 'Srv02'
ScriptBlock = {
Get-ChildItem -Path Cert:\* -Recurse -ExpiringInDays 0
}
}
Invoke-Command @invokeCommandSplat
Belirli bir sertifika kümesini bulmak için filtreleri birleştirme
Bu komut, aşağıdaki özniteliklere LocalMachine sahip depo konumundaki tüm sertifikaları alır:
-
fabrikamdns adlarında -
Client AuthenticationEKU'larında - SendAsTrustedIssuer
$truedeğeri - süresi sonraki 30 gün içinde dolmaz.
NotAfter özelliği sertifikanın son kullanma tarihini depolar.
[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
}
Sertifikalar MMC ek bileşenini açma
Cmdlet, Invoke-Item belirttiğiniz bir yolu açmak için varsayılan uygulamayı kullanır. Sertifikalar için, varsayılan uygulama Sertifikalar MMC ek bileşenidir.
Bu komut, belirtilen sertifikayı yönetmek için Sertifikalar MMC ek bileşenini açar.
Invoke-Item Cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE66B
Sertifikaları kopyalama
Sertifika kopyalama, Sertifika sağlayıcısı tarafından desteklenmez. Bir sertifikayı kopyalamaya çalıştığınızda bu hatayı görürsünüz.
$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
Sertifikaları taşıma
Tüm SSL Sunucusu kimlik doğrulama sertifikalarını WebHosting deposuna taşıma
Bu komut, bir sertifikayı Move-Item depodan My depoya taşımak için cmdlet'ini WebHosting kullanır.
Move-Item sertifika depolarını taşıyamaz ve sertifikayı uygulamasından LocalMachine konumuna taşıma gibi farklı bir depolama konumuna CurrentUsertaşıyamaz.
Move-Item Cmdlet bir depo içindeki sertifikaları taşıyabilir, ancak özel anahtarları taşımaz.
Bu komut, sertifika deposunda SSL sunucusu kimlik doğrulama sertifikalarını almak için cmdlet'in SSLServerAuthenticationGet-ChildItem.
Döndürülen sertifikalar cmdlet'ine Move-Item taşınır ve bu da sertifikaları depoya WebHosting taşır.
Get-ChildItem Cert:\LocalMachine\My -SSLServerAuthentication |
Move-Item -Destination Cert:\LocalMachine\WebHosting
Sertifikaları ve özel anahtarları silme
cmdlet'i Remove-Item belirttiğiniz sertifikaları siler.
DeleteKey dinamik parametresi özel anahtarı siler.
CA deposundan sertifika silme
Bu komut CA sertifika deposundan bir sertifikayı siler, ancak ilişkili özel anahtarı olduğu gibi bırakır.
Sürücüde Cert:Remove-Item, cmdlet yalnızca DeleteKey, Path, WhatIf ve Confirm parametrelerini destekler. Diğer tüm parametreler yoksayılır.
Remove-Item Cert:\LocalMachine\CA\5DDC44652E62BF9AA1116DC41DE44AB47C87BDD0
DNS adında joker karakterler kullanarak Sertifika silme
Bu komut, içeren Fabrikambir DNS adına sahip tüm sertifikaları siler. Sertifikaları almak için cmdlet'in DNSNameGet-ChildItem.
Get-ChildItem -Path Cert:\LocalMachine -DnsName *Fabrikam* | Remove-Item
Uzak bilgisayardan özel anahtarları silme
Bu komut dizisi temsilci seçmeyi etkinleştirir ve ardından uzak bilgisayardaki sertifikayı ve ilişkili özel anahtarı siler. Uzak bilgisayardaki özel anahtarı silmek için temsilci kimlik bilgilerini kullanmanız gerekir.
Enable-WSManCredSSP S1 uzak bilgisayardaki bir istemcide Kimlik Bilgisi Güvenlik Hizmeti Sağlayıcısı (CredSSP) kimlik doğrulamasını etkinleştirmek için cmdlet'ini kullanın.
CredSSP temsilci kimlik doğrulamasına izin verir.
Enable-WSManCredSSP -Role Client -DelegateComputer S1
S1 bilgisayarını Connect-WSMan yerel bilgisayardaki WinRM hizmetine bağlamak için cmdlet'ini kullanın. Bu komut tamamlandığında, S1 bilgisayarı PowerShell'deki yerel WSMan: sürücüde görünür.
Connect-WSMan -ComputerName S1 -Credential Domain01\Admin01
Şimdi, WinRM hizmeti için CredSSP özniteliğini etkinleştirmek için sürücüdeki cmdlet'ini Set-Item kullanabilirsinizWSMan:.
Set-Item -Path WSMan:\S1\Service\Auth\CredSSP -Value $true
cmdlet'ini kullanarak S1 bilgisayarında bir uzak oturum başlatın ve CredSSP kimlik doğrulamasını New-PSSession belirtin. Oturumu değişkene $s kaydeder.
$s = New-PSSession S1 -Authentication CredSSP -Credential Domain01\Admin01
Son olarak, değişkenindeki Invoke-Command oturumda bir Remove-Item komut çalıştırmak için cmdlet'ini $s kullanın. Komut, Remove-Item belirtilen sertifikayla birlikte özel anahtarı kaldırmak için DeleteKey parametresini kullanır.
Invoke-Command -Session $s {
$removeItemSplat = @{
Path = 'Cert:\LocalMachine\My\D2D38EBA60CAA1C12055A2E1C83B15AD450110C2'
DeleteKey = $true
}
Remove-Item @removeItemSplat
}
Süresi dolan Sertifikaları sil
Bu komut, süresi dolan depodaki sertifikaları almak için cmdlet'in Get-ChildItem ExpiringInDays0.
Döndürülen sertifikaları içeren değişken cmdlet'ine Remove-Item aktarılır ve bu da bunları siler. komut, sertifikayla birlikte özel anahtarı silmek için DeleteKey parametresini kullanır.
$expired = Get-ChildItem Cert:\LocalMachine\WebHosting -ExpiringInDays 0
$expired | Remove-Item -DeleteKey
Sertifika oluşturma
Cmdlet, New-Item Sertifika sağlayıcısında yeni sertifikalar oluşturmaz.
Test amacıyla bir sertifika oluşturmak için New-SelfSignedCertificate cmdlet'ini kullanın.
Sertifika depoları oluşturma
Sürücüde Cert:New-Item , cmdlet depolama konumunda sertifika depoları LocalMachine oluşturur. Name, Path, WhatIf ve Confirm parametrelerini destekler. Diğer tüm parametreler yoksayılır. Komut, yeni sertifika deposunu temsil eden bir System.Security.Cryptography.X509Certificates.X509Store döndürür.
Bu komut, depo konumunda adlı CustomStoreLocalMachine yeni bir sertifika deposu oluşturur.
New-Item -Path Cert:\LocalMachine\CustomStore
Uzak bilgisayarda yeni bir sertifika deposu oluşturma
Bu komut, Server01 bilgisayarındaki HostingStore depo konumunda adlı LocalMachine yeni bir sertifika deposu oluşturur.
komutu, Server01 bilgisayarında bir Invoke-Command komut çalıştırmak için cmdlet'ini kullanırNew-Item. Komut, yeni sertifika deposunu temsil eden bir System.Security.Cryptography.X509Certificates.X509Store döndürür.
Invoke-Command -ComputerName Server01 -ScriptBlock {
New-Item -Path Cert:\LocalMachine\CustomStore
}
WS-MAN için istemci sertifikaları oluşturma
Bu komut, WS-Management istemcisi tarafından kullanılabilecek ClientCertificate girdisi oluşturur. Yeni ClientCertificate, ClientCertificate dizini altında olarak ClientCertificate_1234567890gösterilir. Tüm parametreler zorunlu. Verenin sertifikanın parmak izi olması gerekir.
$newItemSplat = @{
Path = 'WSMan:\localhost\ClientCertificate'
Credential = Get-Credential
Issuer = '1b3fd224d66c6413fe20d21e38b304226d192dfe'
URI = 'wmicimv2/*'
}
New-Item @newItemSplat
Sertifika depolarını silme
Uzak bilgisayardan sertifika depolarını silme
Bu komut, S1 ve S2 bilgisayarlarında bir Invoke-Command komut çalıştırmak için cmdlet'ini kullanırRemove-Item. Komutu, Remove-Item depoyu silmeden önce depodaki sertifikaları silen Recurse parametresini içerir.
Invoke-Command -ComputerName S1, S2 -ScriptBlock {
Remove-Item -Path Cert:\LocalMachine\TestStore -Recurse
}
Dinamik parametreler
Dinamik parametreler, bir PowerShell sağlayıcısı tarafından eklenen cmdlet parametreleridir ve yalnızca cmdlet sağlayıcı etkin sürücüde kullanıldığında kullanılabilir. Bu parametreler Sertifika sağlayıcısının tüm alt dizinlerinde geçerlidir, ancak yalnızca sertifikalar üzerinde etkilidir.
Not
EnhancedKeyUsageList özelliğine göre filtreleme gerçekleştiren parametreler, boş bir EnhancedKeyUsageList özellik değerine sahip öğeleri de döndürür. Boş bir EnhancedKeyUsageList içeren sertifikalar tüm amaçlar için kullanılabilir.
Aşağıdaki Sertifika sağlayıcısı parametreleri PowerShell 7.1'de yeniden tanıtıldı.
- DNSName
- DocumentEncryptionCert
- EKU
- ExpiringInDays
- SSLServerAuthentication
CodeSigningCert <System.Management.Automation.SwitchParameter>
Desteklenen cmdlet'ler
Bu parametre, EnhancedKeyUsageListCode Signingsertifikaları alır.
DeleteKey <System.Management.Automation.SwitchParameter>
Desteklenen cmdlet'ler
Bu parametre sertifikayı sildiğinde ilişkili özel anahtarı siler.
Önemli
Uzak bilgisayardaki depodaki Cert:\CurrentUser bir kullanıcı sertifikasıyla ilişkili özel anahtarı silmek için temsilci kimlik bilgilerini kullanmanız gerekir. Cmdlet, Invoke-Command CredSSP parametresini kullanarak kimlik bilgisi temsilcisi seçmeyi destekler. ve kimlik bilgisi temsilcisini kullanmadan Remove-Item önce tüm güvenlik risklerini Invoke-Command dikkate almanız gerekir.
Bu parametre PowerShell 7.1'de yeniden tanıtıldı
DnsName <Microsoft.PowerShell.Commands.DnsNameRepresentation>
Desteklenen cmdlet'ler
Bu parametre, sertifikanın DNSNameList özelliğinde belirtilen etki alanı adına veya ad düzenine sahip sertifikaları alır. Bu parametrenin değeri veya UnicodeolabilirASCII. Punycode değerleri Unicode'a dönüştürülür. Joker karakterlere (*) izin verilir.
Bu parametre PowerShell 7.1'de yeniden tanıtıldı
DocumentEncryptionCert <System.Management.Automation.SwitchParameter>
Desteklenen cmdlet'ler
Bu parametre, EnhancedKeyUsageListDocument Encryptionsertifikaları alır.
EKU <System.String>
Desteklenen cmdlet'ler
Bu parametre, sertifikanın EnhancedKeyUsageList özelliğinde belirtilen metin veya metin desenini içeren sertifikaları alır. Joker karakterlere (*) izin verilir.
EnhancedKeyUsageList özelliği, EKU'nun kolay adını ve OID alanlarını içerir.
Bu parametre PowerShell 7.1'de yeniden tanıtıldı
ExpiringInDays <System.Int32>
Desteklenen cmdlet'ler
Bu parametre, belirtilen gün sayısı içinde veya öncesinde süresi dolan sertifikaları alır. Sıfır (0) değeri süresi dolmuş sertifikaları alır.
Bu parametre PowerShell 7.1'de yeniden tanıtıldı
ItemType <System.String>
Bu parametre tarafından New-Itemoluşturulan öğenin türünü belirtmek için kullanılır.
New-Item Cmdlet yalnızca değerini Storedestekler.
New-Item cmdlet yeni sertifika oluşturamıyor.
Desteklenen Cmdlet'ler
SSLServerAuthentication <System.Management.Automation.SwitchParameter>
Desteklenen cmdlet'ler
Yalnızca SSL web barındırma için sunucu sertifikalarını alır. Bu parametre, EnhancedKeyUsageListServer Authenticationsertifikaları alır.
Bu parametre PowerShell 7.1'de yeniden tanıtıldı
Betik özellikleri
Sertifikaları aramayı ve yönetmeyi kolaylaştırmak için sertifikaları temsil eden X509Certificate2 nesnesine yeni betik özellikleri eklendi.
- DnsNameList: DnsNameList özelliğini doldurmak için Sertifika sağlayıcısı içeriği SubjectAlternativeName (SAN) uzantısındaki DNSName girdisinden kopyalar. SAN uzantısı boşsa, özelliği sertifikanın Konu alanındaki içerikle doldurulur.
- EnhancedKeyUsageList: EnhancedKeyUsageList özelliğini doldurmak için, Sertifika sağlayıcısı sertifikadaki EnhancedKeyUsage (EKU) alanının OID özelliklerini kopyalar ve bunun için kolay bir ad oluşturur.
- SendAsTrustedIssuer: SendAsTrustedIssuer özelliğini doldurmak için, Sertifika sağlayıcısı SendAsTrustedIssuer özelliğini sertifikadan kopyalar. Daha fazla bilgi için bkz. İstemci kimlik doğrulaması için güvenilen verenlerin yönetimi.
Bu yeni özellikler, SERTIFIKALARı DNS adlarına ve son kullanma tarihlerine göre aramanıza ve istemci ve sunucu kimlik doğrulama sertifikalarını Gelişmiş Anahtar Kullanımı (EKU) özelliklerine göre ayırt etmenizi sağlar.
İşlem hattını kullanma
Sağlayıcı cmdlet'leri işlem hattı girişini kabul eder. Bir cmdlet'ten başka bir sağlayıcı cmdlet'ine sağlayıcı verileri göndererek görevleri basitleştirmek için işlem hattını kullanabilirsiniz. İşlem hattını sağlayıcı cmdlet'leriyle kullanma hakkında daha fazla bilgi edinmek için bu makalenin tamamında sağlanan cmdlet başvurularına bakın.
Yardım alma
PowerShell 3.0'dan başlayarak, bu cmdlet'lerin bir dosya sistemi sürücüsünde nasıl davrandığını açıklayan sağlayıcı cmdlet'leri için özelleştirilmiş yardım konuları alabilirsiniz.
Dosya sistemi sürücüsü için özelleştirilmiş yardım konularını almak için, bir dosya sistemi sürücüsünde Get-Help komutunu çalıştırın veya parametresini -Path kullanarak Get-Help bir dosya sistemi sürücüsü belirtin.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Cert:
Ayrıca bakınız
PowerShell