Ich schreibe ein PowerShell-Skript auf einem Windows 8.1-Rechner. Bei dem Versuch, ein PSCredential-Objekt mit dem Cmdlet New-Object zu erstellen, wurde dieser Fehler angezeigt:New-Objekt: Eine Überladung für "PSCredential" und die Anzahl der Argumente nicht gefunden: "2"
New-Object: Eine Überladung für "PSCredential" und die Argumentanzahl "2" konnte nicht gefunden werden.
Das exakt gleiche Skript auf einem anderen Windows 8.1-Rechner laufen funktioniert gut für mich. Ich habe auch überprüft, dass beide Maschinen dieselbe Version von PowerShell 4.0 ausführen
Beide Computer haben das gleiche .NET Framework 4.0 installiert.
Eine Idee, warum das passiert und wie ich dieses Problem lösen könnte?
$userPassword = ConvertTo-SecureString -String "MyPassword" -AsPlainText -Force
$userCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "myUserName", $userPassword
Nach einigen weiteren Tests, habe ich das Problem herausgefunden. Für meine Funktion wollte ich den Benutzernamen und das Passwort vom Benutzer übernehmen, aber auch Standardwerte angeben, wenn der Benutzer diese Eingabeparameter überspringt.
Dafür habe ich erreicht es durch die folgende Zeile in Parameter Abschnitt Hinzufügen
[string][ValidateNotNullOrEmpty()] $userPassword = "myPassword",
Es scheint, das Problem ist, dass ich es definiert ein [Zeichenfolge] im Parameter zu sein, aber später versuchen, eine Secure zu sein, was zu dem Problem führte.
Das Entfernen des Attributs [String] in meinem Parameter löste das Problem.
Ich sehe nicht, was das mit C# zu tun hat. Entferntes Tag Sie müssen Ihren Code ebenfalls anzeigen. Es ist extrem schwierig, dir zu helfen, ohne es zu sehen. – tnw
tnw, danke für die Erinnerung. Ich habe meinen Code hinzugefügt und dabei das Problem herausgefunden. – xenoverse
Bitte posten Sie Ihre Lösung als Antwort und akzeptieren Sie sie. –