Benutzer mit den meisten Antworten
Credentials an eine Funktion übergeben

Frage
-
Hallo zusammen,
ich habe ein PowerShell Skript (Test.ps1) mit 3 Funktionen.
Function Decode-Password() { PARAM( $EncPassword = "" ) BEGIN {} PROCESS { $Temp = [system.convert]::FromBase64String($EncPassword) $DecPassword = [system.text.encoding]::UTF8.Getstring($temp) } END { Return $DecPassword } } Function RUNiwas() { PARAM() BEGIN {} PROCESS { $Username = "LAB\SVC_Account" $Password = Decode-Password -EncPassword "xxx" $Cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($Username,(ConvertTo-SecureString -String $Password -AsPlainText -Force)) $LocationPath = (Get-Location).ProviderPath $PSStart = "powershell.exe" $Elevated = '-NoExit -ExecutionPolicy bypass -command "& { . .\Test.ps1; Elevated -Cred '+$Cred+' }"' Start-Process -File $PSStart -ArgumentList $Elevated -Credential $Cred -Wait -WorkingDirectory "$LocationPath" } END {} } Function Elevated() { PARAM( [Parameter(Mandatory=$True)]$Cred ) BEGIN {} PROCESS { $Cred } END {} }
Die erste Funktion dient dazu das PW zu verschlüsseln, spielt aber bei meinem Problem keine Rolle. Die 2. Funktion (RUNiwas) soll einen String ausführen der die Test.ps1 erneut aufruft und die Funktion Elevated starten soll. Dabei soll $Cred weitergegeben werden.
$PSStart = "powershell.exe" $Elevated = '-NoExit -ExecutionPolicy bypass -command "& { . .\Test.ps1; Blueprint-Elevated -Cred '+$Cred+' }"' Start-Process -File $PSStart -ArgumentList $Elevated -Credential $Cred -Wait -WorkingDirectory "$LocationPath"
Das funktioniert leider nicht ganz sauber da ich nur die Meldung "System.Management.Automation.PSCredential" erhalte und ich komme seit Stunden nicht auf die Lösung.
Hat Jemand einen Rat für mich wie ich die Credentials in diesem Konstrukt an die Funktion übergeben kann?
Vorab besten Dank.
Gruß
Ümit
Antworten
-
- Als Antwort markiert umiti Montag, 27. März 2017 11:08
Alle Antworten
-
- Als Antwort markiert umiti Montag, 27. März 2017 11:08