Hallo Leute,
ich weiss nicht mehr weiter nach lesen von about_Functions und anderen Quellen. Folgende Funktion ergibt, mit dem Debugger betrachtet, für die Variable $l immer eine Länge des übergebenen Strings von 1 obgleich dieser immer länger ist.
Function ToUpper-Chars { Param( [string[]]$passwd, [int]$NumChars=1 ) $l = $passwd.length For ($loop=1; $loop -le $NumChars; $loop++){ $r = Get-Random -minimum 1 -maximum $l $ss = $passwd.SubString($r, 1).ToUpper() $ToUpper = $passwd.Remove($r,1) $ToUpper = $ToUpper.Insert($r,$ss) } Return $ToUpper }
# Aufrufbeispiel
$p = "kkfzjde"
$p = ToUpper-Chars -passwd $p -NumChars 2
Erwähnenswert wäre vielleicht noch folgende Fehlermeldung beim Start, obwohl das restliche Script soweit funktionierte:
PS C:\Users\Michael> Set-ExecutionPolicy unrestricted
Set-ExecutionPolicy : Der Zugriff auf den Registrierungsschlüssel "HKEY_LOCAL_MACHINE\SOFT
WARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" wurde verweigert.
Bei Zeile:1 Zeichen:20
+ Set-ExecutionPolicy <<<< unrestricted
+ CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccess
Exception
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Com
mands.SetExecutionPolicyCommand
Ich mache wohl etwas grundsätzlich falsch. Kann jemand helfen?
Danke!