Powershell und System.Sicherheit.Die Kryptographie.X509Certificates.X509Certificate2
bin ich immer diese Fehlermeldung wenn ich das system laufen.security-namespace. Dies ist, was ich bin, läuft nach
$cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\mycert.cer")
New-Object: Cannot find type [System.Security.Cryptography.X509Certificates.X509Certificate2("C:\mycert.cer")]: make sure the assembly containing this type is loaded.
At line:1 char:19
+ $cert = New-Object <<<<
+ CategoryInfo : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand**
Was mache ich falsch?
- Die Befehle ok aussieht. Ich kann nicht reproduzieren Sie den Fehler in der PowerShell v1 oder v2.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, dieses zu sehen, wenn Sie die System.dll geladen (sollte standardmäßig):
Wenn es geladen wird, dann sollte dieser Befehl zeigt die
X509Certificate2
Typ:Wenn die System.dll nicht geladen (das wäre seltsam) versuchen, es zu laden:
Finden Sie unter: http://technet.microsoft.com/en-us/library/hh849914.aspx
Habe ich mein problem gelöst. Es ist ganz einfach:
cd\ ist notwendig,
Lief ich in diese in der ISE (scheint aber für den normalen Kommando-Fenster zu), und es scheint, dass die Verwendung von AutoVervollständigen wird automatisch
Add-Type
für das, was Sie suchen. Wenn Sie eine neue Instanz starten und ausführen:wird es nicht zurück
System.Security
, aber wenn Sie dann geben Sie diese und lassen Sie intellisense seine Sache tun:Können Sie dann führen Sie diese wieder:
Und es wird dann zurück
System.Security
. Also das ist, warum Sie können ein Skript schreiben, das funktioniert gut, und dann überdenken Sie es später, und es ist zerbrochen. Verwenden von intellisense nicht beheben Ihrem Skript, obwohl, haben Sie stattdessen folgende Zeile hinzufügen:Oder was auch immer-Bibliothek ist nicht immer automatisch Hinzugefügt (es scheint müssen die dll-Dateinamen, z.B.
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Security.dll
).Ich bin mir ziemlich sicher, dass IseSteroids (eine kostenpflichtige ISE-add-in) erkennen kann, vielleicht andere als gut.