使用 Powershell 对数组值进行排序

布延基

我正在尝试输出从用于连接到 MDM 控制台的 API 中提取的项目列表。我有两个函数,它们一起工作,我可以看到脚本输出中的所有数据,但是,我想使用其中一个函数的变量名作为列,将此数据分类到 .csv 文件中标题。我是 PS 新手,一直在拔头发。我可以看到该变量是一个数组和其中的所有值,但是对于如何排序是否有更好的方法来获取我需要的数据毫无头绪。

    #Current MDM Environment
    $ev = "Q"

    #Define MDM credentials to match environment from above
    if($ev -eq "Q")
    {
    $Code = 'VbvmMGOV0Pd2lF4GurpBqnwD/R6mFmUKI6z3CKAY5tw='
    $ui = 'MDMqualserver'
    }
    else{$Code = 'Pe8w/3jDREgse2gUu3UYZ28FHeafg0xcheu/AYwJ6PE='
    $ui = 'MDMprodserver'}#>


    #API Auth for MDM Console
    $Auth = Get-Content -path 'C:\ProgramData\ScriptAuth\mobilityapi.txt'

    $Contenttype = 'application/json'

    $CurrentDate = Get-Date
    $CurrentDate = $CurrentDate.ToString('MM-dd-yyyy')

    $path = "C:\users\username\desktop\$currentDate.csv"

    Function get_all
    {
    $array =@()

    #Define URL
    $url = "https://$ui.company.gov/api/mdm/devices/extensivesearch? 
    pagesize=10000"

    #Define Headers
    $headers = New-Object "System.Collections.Generic.Dictionary[[String], 
    [String]]"
    $headers.Add("aw-tenant-code", $Code)
    $headers.Add("Authorization", $Auth)

    #Send Rest Request
    try{
    $response = Invoke-RestMethod -uri $url -Headers $headers}
    catch{
    $error = "BDevice Info Not Found"}

    #Close Connection
    $ServicePoint = [System.Net.ServicePointManager]::FindServicePoint($url)
    $SSP = $ServicePoint.CloseConnectionGroup("")
    #Parse Device Info
    $data = $response.DeviceExtensiveSearchResult.Devices.DeviceDetailsExt

    $data | foreach {
    $serial = $_.SerialNumber
    $array += $serial
    }
    return $array
    }

    Function get_devattrib
    {
    Param([string]$serial)

    $array = @()

    #Define URL
    $url = "https://$ui.company.gov/api/mdm/devices? 
    searchby=Serialnumber&id=$serial"

    #Define Headers
    $headers = New-Object "System.Collections.Generic.Dictionary[[String], 
    [String]]"
    $headers.Add("aw-tenant-code", $Code)
    $headers.Add("Authorization", $Auth)
    $headers.Add("Content-Type", $Contenttype)

    #Send Rest Request
    try{
    $response = Invoke-RestMethod -uri $url -Headers $headers}
    catch{
    return $false}

    #Close Connection
    $ServicePoint = [System.Net.ServicePointManager]::FindServicePoint($url)
    $ServicePoint.CloseConnectionGroup("")

    #Parse Device Info (#removed .Device from $data = $response.Device)
    $data = $response

    $data | foreach {
    $ownership = $_.Ownership 
    $friendlyname = $_.DeviceFriendlyName
    $platform = $_.Platform 
    $model = $_.Model 
    $snumber = $_.AssetNumber
    $username = $_.UserName
    $mac = $_.MacAddress
    $phone = $_.PhoneNumber
    $lastseen = $_.LastSeen
    $enrollstatus = $_.EnrollmentStatus
    $compliance = $_.ComplianceStatus 


    return [datetime]$lastseen, $ownership, $friendlyname, $platform, $model, 
    $snumber, $serial, $username, $mac, $phone, $enrollstatus, $compliance
    }
    }

    $devices = @()
    $getdevices = @()

    $devices = get_all 

    foreach ($device in $devices){

       $getdevices += get_devattrib $device  
    }

    $getdevices 

控制台中每个设备的数据输出如下所示(我已将信息设为通用以隐藏公司数据):

真的

2018 年 9 月 5 日,星期三晚上 8:33:21 公司拥有的用户名 - 资产编号 Apple iPad Pro with Wi-Fi + Cellular(128 GB 深空灰色)资产编号序列号用户名 mac 地址电话号码注册不合规

A. 我不明白为什么我在控制台中每个设备的输出开头和之后的空间中都得到“true”(这似乎与[datetime]

B. 我不明白如何将所有这些数据放在一个 .csv 文件中。我确实在函数之前定义了一个路径,并且知道如何使用 export-csv,但是它发送到文件的数据看起来就像#TYPE System.Boolean我假设我的最后一个变量有问题。哇。

虚拟机

您可以使用Sort-Object.

$ArrayOfStrings = 's', 't', 'a', 'c', 'k'
$ArrayOfStrings | Sort-Object

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用php按键对数组值进行排序

来自分类Dev

使用混合类型值对数组进行JavaScript排序

来自分类Dev

使用多个值对数组进行分组,并基于循环和排序数组中的组值对数组求和

来自分类Dev

如何在Powershell中通过对象的属性值之一对数组进行排序?

来自分类Dev

Swift:使用NSRange对数组进行排序

来自分类Dev

使用HTML标签对数组进行排序

来自分类Dev

使用模板对数组进行排序

来自分类Dev

如何使用PHP对数组进行排序

来自分类Dev

Python:使用NaN对数组进行排序

来自分类Dev

使用HTML标签对数组进行排序

来自分类Dev

使用中位数对数组进行排序

来自分类Dev

使用javascript对数组表进行排序

来自分类Dev

使用 compareTo 方法对数组进行排序

来自分类Dev

如果值存在,则使用另一个数组对数组进行排序

来自分类Dev

如果值存在,则使用另一个数组对数组进行排序

来自分类Dev

仅使用绝对值对数组进行排序,并在C ++中显示实值

来自分类Dev

使用快速排序使用指针对数组进行排序

来自分类Dev

使用usort()对数组进行排序时,是否可以设置两个起始值?

来自分类Dev

如何在Angular JS中使用键,值对数组进行排序?

来自分类Dev

如何使用PHP Codeigniter以最快的方式基于值对数组进行排序?

来自分类Dev

PHP | 如何使用唯一标志对数组中的值进行排序?

来自分类Dev

使用排序功能按NSDates对数组进行排序

来自分类Dev

使用插入排序对数组进行排序

来自分类Dev

使用合并排序对数组进行排序

来自分类Dev

在 Ruby 中使用冒泡排序对数组进行排序

来自分类Dev

使用预定义的排序顺序对数组进行排序

来自分类Dev

使用通用键对数组内的数组进行排序

来自分类Dev

在使用options_for_select的同时对数组的数组进行排序

来自分类Dev

使用AngularJS对数组中的子数组进行排序

Related 相关文章

  1. 1

    使用php按键对数组值进行排序

  2. 2

    使用混合类型值对数组进行JavaScript排序

  3. 3

    使用多个值对数组进行分组,并基于循环和排序数组中的组值对数组求和

  4. 4

    如何在Powershell中通过对象的属性值之一对数组进行排序?

  5. 5

    Swift:使用NSRange对数组进行排序

  6. 6

    使用HTML标签对数组进行排序

  7. 7

    使用模板对数组进行排序

  8. 8

    如何使用PHP对数组进行排序

  9. 9

    Python:使用NaN对数组进行排序

  10. 10

    使用HTML标签对数组进行排序

  11. 11

    使用中位数对数组进行排序

  12. 12

    使用javascript对数组表进行排序

  13. 13

    使用 compareTo 方法对数组进行排序

  14. 14

    如果值存在,则使用另一个数组对数组进行排序

  15. 15

    如果值存在,则使用另一个数组对数组进行排序

  16. 16

    仅使用绝对值对数组进行排序,并在C ++中显示实值

  17. 17

    使用快速排序使用指针对数组进行排序

  18. 18

    使用usort()对数组进行排序时,是否可以设置两个起始值?

  19. 19

    如何在Angular JS中使用键,值对数组进行排序?

  20. 20

    如何使用PHP Codeigniter以最快的方式基于值对数组进行排序?

  21. 21

    PHP | 如何使用唯一标志对数组中的值进行排序?

  22. 22

    使用排序功能按NSDates对数组进行排序

  23. 23

    使用插入排序对数组进行排序

  24. 24

    使用合并排序对数组进行排序

  25. 25

    在 Ruby 中使用冒泡排序对数组进行排序

  26. 26

    使用预定义的排序顺序对数组进行排序

  27. 27

    使用通用键对数组内的数组进行排序

  28. 28

    在使用options_for_select的同时对数组的数组进行排序

  29. 29

    使用AngularJS对数组中的子数组进行排序

热门标签

归档