none
Hilfe bei Benutzerkonto/level für Script benötigt! RRS feed

  • Frage

  • Hallo zusammen,

    derzeit versuche ich über eine Passworteingabe verschiedene Berächtigungen in einem Script zu verteilen.

    Ich lese das Passwort über einen Securestring, welches ich vorher auf dem selben Rechner erstellt habe, ein. Jetzt habe ich das Problem, das der Securestring abhänging vom angemeldeten Benutzer und Rechner etc ist. Ich möchte aber, das die Passwörter auf verschiedenen Rechnern funktionieren. Gibt es eine Möglichkeit verschiedene Benutzerlevel in einem Script zu vergeben ohne den Windowsaccount zu wechseln?

    Vielen dank schonmal

    Dienstag, 3. Juni 2014 18:30

Antworten

  • Hallo,

    also wenn du einen Securestring speichern willst bildet das System ein Token/Key der aus Informationen dieses Systems gebildet wird, z.B.: koennte er unter anderem die  MAC-Adresse nutzen. Auf dem naechsten System findet er eine andere MAC, weshalb der SecurteString nicht mehr akzeptiert wird auf diesem System.

    Entkoppeln kannst Du dies indem du selber einen Key baust und diesen mit auslieferst. Ich hatte hier im Forum mal ein Beispiel gepostet.

    Click mich

    Bei sowas musst Du aber immer beachten ob dir das sicher genug ist ...

    Beste Gruesse
    brima

    • Als Antwort markiert Mitsch86 Mittwoch, 4. Juni 2014 01:05
    Dienstag, 3. Juni 2014 20:49

Alle Antworten

  • noch zur Info:

    Ich lasse dann mit den verschiedenen Passwortlevels verschiedene Buttons in einer Form anzeigen.

    Die Passwortabfrage erfolgt auch in der Form...

    Dienstag, 3. Juni 2014 18:33
  • Hallo,

    also wenn du einen Securestring speichern willst bildet das System ein Token/Key der aus Informationen dieses Systems gebildet wird, z.B.: koennte er unter anderem die  MAC-Adresse nutzen. Auf dem naechsten System findet er eine andere MAC, weshalb der SecurteString nicht mehr akzeptiert wird auf diesem System.

    Entkoppeln kannst Du dies indem du selber einen Key baust und diesen mit auslieferst. Ich hatte hier im Forum mal ein Beispiel gepostet.

    Click mich

    Bei sowas musst Du aber immer beachten ob dir das sicher genug ist ...

    Beste Gruesse
    brima

    • Als Antwort markiert Mitsch86 Mittwoch, 4. Juni 2014 01:05
    Dienstag, 3. Juni 2014 20:49
  • Hallo,

    vielen dank für die Antwort.

    Bei mir steht die Sicherheit nicht im Vordergrund. Mir geht es hauptsächlich darum, dass keine Passwörter als Klartext im Script stehen. Nicht mehr und nicht weniger :-) Und natürlich, dass das Script von unterschiedlichen Rechnern ausgeführt werden kann.

    Also bisher hab ich das in etwa so gemacht: Die Variable $PasswordInput wird über eine Textbox gefüllt...

    $pas_x = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto(([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR(("01000000d08c9ddf0115d1118c7a00c04fc297eb0100000060ab4df91e5d6e468d9c21c3f22ea8140000000002000000000003660000c000000010000000ca3a32a3ce604f97a5ff5509e72b73cf0000000004800000a0000000100000006ddabe0b4e61d3bf7940fa2f13826ee11800000085cdf6691301b844532462e9e7000891adc62c478c80e0521400000070f220f45dc2758a4e3a267f2b86b6d78255f6d2" | ConvertTo-SecureString))))
    $pas_y = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto(([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR(("01000000d08c9ddf0115d1118c7a00c04fc297eb0100000060ab4df91e5d6e468d9c21c3f22ea8140000000002000000000003660000c000000010000000bfba05413a0c60cdecfee31212a74f200000000004800000a0000000100000008f94885c8b37177df4a66fdddf3606eb10000000f5d111f7b2765f46d80810b0fe6c688f14000000833127e62f225d91bdf1442fba8308fb978e78b7" | ConvertTo-SecureString))))								
    $pas_z = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto(([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR(("01000000d08c9ddf0115d1118c7a00c04fc297eb0100000060ab4df91e5d6e468d9c21c3f22ea8140000000002000000000003660000c000000010000000f24ae12df438a11b3925804297bafde30000000004800000a0000000100000009eaf035ed43beff0e4e4c5f58ee79ec8100000005baeac93cf6da3eda683f8432a0084c114000000ca73374b9bff7577bcadcce92e389c76f68d0341" | ConvertTo-SecureString))))		
    							
    IF ($PasswordInput -ceq $pas_x) {
    	$Bediener = "Max Mustermann"
    	$Button1.Enabled = $false
    	$Button2.Enabled = $true
    }
    ELSEIF($PasswordInput -ceq $pas_y) {
    	$Bediener = "Kurt Müller"
    	$Button1.Enabled = $true
    	$Button2.Enabled = $false
    }
    ELSEIF($PasswordInput -ceq $pas_z) {
    	$Bediener = "Frank Bauer"
    	$Button1.Enabled = $true
    	$Button2.Enabled = $true
    }
    ELSE {
    	$Bediener = ""
    	$Button1.Enabled = $false
    	$Button1.Enabled = $false
    }

    Wenn ich nun den SecureString mit dem Key verwenden möchte, wo muss ich diesen einfügen?? Bzw wie frage ich diesen ab? Muss ich den Key extra einfügen? Sorry für meine Fragen....

    Dienstag, 3. Juni 2014 23:26
  • Ich habe es zwar noch nicht auf anderen Rechnern getestet, aber so sollte es gehen...

    $Password = "76492d1116743f0423413b16050a5345MgB8ADAANABrAGoAWQBqAHQAYQBVAGsAdgBSAEkASAB4AHEAdQBmAEQAUgArAFEAPQA9AHwAZQA1ADkANAA2ADMAYgA4ADYANwA4ADAAMgA3ADQAZAA5AGQAZAA4AGMAOAAxAGIANwA5ADUANABlAGMANAA0AA==" $Key = "153 123 29 186 11 225 0 35 16 209 238 86 117 230 177 89 158 139 100 48 120 241 160 199 56 213 85 199 108 22 191 107" -split ' ' $Data = "100-111-109-97-105-110-92-117-115-101-114" $SecureIn = ConvertTo-SecureString $Password -Key $Key $Data = ($Data = $Data -split "-" | ForEach-Object {[char]([byte]$_)}) -join "" $pas = New-Object System.Management.Automation.PSCredential $Data, $SecureIn IF ($PasswordInput -ceq $pas.GetNetworkCredential().Password) { $Bediener = "Max Mustermann" $Button1.Enabled = $false $Button2.Enabled = $true }


    Mittwoch, 4. Juni 2014 01:07