Powershell Нужны только значения из функции - PullRequest
0 голосов
/ 06 июня 2019

Когда я «выполняю» функцию GetiLONetwork, мне нужны значения из функции GetLogin. GetLogin не был «выполнен» раньше. К сожалению, $ a = GetLogin выполняет функцию. Я не хочу запускать функцию GetLogin.

Есть идеи?

    function GetLogin {
      [hashtable]$Return = @{}
      #GET Login and password
      if ((Read-Host -Prompt "Do you have only the default iLO Administrator? Press Y") -match "y") {
        $Return.loginDefault = Read-Host -Prompt 'default iLO Login'
        $Return.passwordDefault = Read-Host -Prompt 'default iLO Password'
        $Return.default = 1
        $Return.manual = 1
      }else{
        $Return.loginDefault = Read-Host -Prompt 'default iLO Login'
        $Return.passwordDefault = Read-Host -Prompt 'default iLO Password'
        $Return.loginNew = Read-Host -Prompt 'current iLO Login'
        $Return.passwordNew = Read-Host -Prompt 'current iLO password'
        $Return.default = 0
        $Return.manual = 1
      }
      return $Return
    }

function GetiLoNetwork {
  #iLO Login Daten
  $a = GetLogin
  if($a.manual -eq 1){
    if($a.default -eq 1){
        $login = $a.loginDefault
      $password = $a.passwordDefault    
    }elseif($a.default -eq 0){
      $login = $a.loginNew
      $password = $a.passwordNew         
    }
  }else{
    $b = WriteIloFile
    $login = $b.loginDefault
    $password = $b.passwordDefault
  }
}

    Get-iLoNetwork

1 Ответ

0 голосов
/ 06 июня 2019

Извините за столь сложное описание моего вопроса.Я нашел решение, которое работает для меня.

Посетите https://www.sharepointsky.com/powershell-global-variable/

    [int]$global:default = 
    [string]$global:loginDefault = ""
    [string]$global:loginNew = ""

function GetLogin{
    #GET Login and password
    if ((Read-Host -Prompt "Do you have only the default iLO Administrator? Press Y") -match "y") {
        $global:loginDefault = Read-Host -Prompt 'default iLO Login'
        $global:default = 1
    }else{
        $global:loginDefault = Read-Host -Prompt 'default iLO Login'
        $global:loginNew = Read-Host -Prompt 'current iLO Login'
        $global:default = 1
      }
}

function WriteiLoFile{
    $global:default = 0 
    $global:loginDefault ="test"
}

function GetiLoNetwork{
    if($global:default -eq 1){
    $login = $global:loginDefault
    }else{
    $login = $global:loginDefault
    }
}
...