【问题标题】:How to make multi-line uri using invoke-webrequest in Powershell如何在 Powershell 中使用 invoke-webrequest 制作多行 uri
【发布时间】:2021-07-30 14:14:31
【问题描述】:

我正在尝试在此调用中连接我的 uri,以便我可以将每个变量放在单独的行上。这样我就可以更轻松地进行更改,而不必费力地搜索。我可以在 bash 脚本中执行此操作,但不知道如何在 Powershell 中执行此操作。

行如下:

Invoke-WebRequest -Uri (beginning of url)?date=$date"&"time=$time"&"name=$env:computername"&"loginid=$env:username"&"sn=$serialnumber"&"ipaddr=$ipaddr"&"verb=profileclear

谢谢!

【问题讨论】:

  • 感谢大家的建议!

标签: powershell invoke-command


【解决方案1】:

我认为实现这一目标的最简单方法是这样的:

$uri = "Https://something.somewhere/?" +
    "date=$date&" + 
    "time=$time&" + 
    "name=$env:computername&" + 
    "loginid=$env:username&" + 
    "sn=$serialnumber&" + 
    "ipaddr=$ipaddr&" + 
    "verb=profileclear" 

Invoke-WebRequest -Uri $uri

【讨论】:

    【解决方案2】:

    我会创建一个变量字符串数组,将它们连接起来,然后构建一个 uri:

    $variables = "date=$date",
    "time=$time",
    "name=$env:computername",
    "loginid=$env:username",
    "sn=$serialnumber",
    "ipaddr=$ipaddr",
    "verb=profileclear"
    
    $uri = [System.UriBuilder]::new('https://contoso.com')
    $uri.Query = $variables -join '&'
    
    Invoke-WebRequest -Uri $uri.ToString()
    

    【讨论】:

      【解决方案3】:

      一种选择是将查询参数存储在有序字典中并从中构造 URL:

      $parameters = [ordered]@{
        date     = $date
        time     = $time
        name     = $env:computername
        loginid  = $env:username
        sn       = $serialnumber
        ipaddr   = $ipaddr
        verb     = 'profileclear'
      }
      
      $baseURI = 'https://host.fqdn/path'
      
      # Construct full URI string from base URI + parameters
      $queryString = @($parameters.GetEnumerator() |ForEach-Object {
        '{0}={1}' -f $_.Key,$_.Value
      }) -join '&'
      
      $URI = '{0}?{1}' -f $baseURI,$queryString
      
      Invoke-WebRequest -Uri $URI
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-23
        • 1970-01-01
        • 2017-07-26
        • 2016-08-11
        相关资源
        最近更新 更多