首页 > 解决方案 > Powershell 只需要函数中的值

问题描述

当我“执行”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

标签: functionpowershellreturn

解决方案


很抱歉以如此复杂的方式描述我的问题。我找到了一个适合我的解决方案。

访问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
    }
}

推荐阅读