none
Credentials an eine Funktion übergeben RRS feed

  • 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

    Montag, 27. März 2017 09:13

Antworten

  • > 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.
     
    Na was würdest Du denn als Bildschirmausgabe erwarten, wenn DU $Cred ausgibst? Gernau das... :-)
     
    • Als Antwort markiert umiti Montag, 27. März 2017 11:08
    Montag, 27. März 2017 09:31

Alle Antworten

  • > 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.
     
    Na was würdest Du denn als Bildschirmausgabe erwarten, wenn DU $Cred ausgibst? Gernau das... :-)
     
    • Als Antwort markiert umiti Montag, 27. März 2017 11:08
    Montag, 27. März 2017 09:31
  • lol wie recht Du doch hast. Vielen Dank
    Montag, 27. März 2017 11:08