@@ -79,7 +79,7 @@ func (DiskAPI) ListDiskLocations() (map[uint32]shared.DiskLocation, error) {
7979 // "number": 0,
8080 // "location": "PCI Slot 3 : Adapter 0 : Port 0 : Target 1 : LUN 0"
8181 // }, ...]
82- cmd := fmt .Sprintf ("Get-Disk | select number, location | ConvertTo-Json " )
82+ cmd := fmt .Sprintf ("ConvertTo-Json @( Get-Disk | select Number, Location) " )
8383 out , err := runExec (cmd )
8484 if err != nil {
8585 return nil , fmt .Errorf ("failed to list disk location. cmd: %q, output: %q, err %v" , cmd , string (out ), err )
@@ -93,8 +93,8 @@ func (DiskAPI) ListDiskLocations() (map[uint32]shared.DiskLocation, error) {
9393
9494 m := make (map [uint32 ]shared.DiskLocation )
9595 for _ , v := range getDisk {
96- str := v ["location " ].(string )
97- num := v ["number " ].(float64 )
96+ str := v ["Location " ].(string )
97+ num := v ["Number " ].(float64 )
9898
9999 found := false
100100 s := strings .Split (str , ":" )
@@ -237,15 +237,18 @@ func (DiskAPI) GetDiskPage83ID(disk syscall.Handle) (string, error) {
237237}
238238
239239func (imp DiskAPI ) GetDiskNumberWithID (page83ID string ) (uint32 , error ) {
240- cmd := "(Get-Disk | Select Path) | ConvertTo-Json "
240+ cmd := "ConvertTo-Json @ (Get-Disk | Select Path)"
241241 out , err := runExec (cmd )
242242 if err != nil {
243243 return 0 , fmt .Errorf ("Could not query disk paths" )
244244 }
245245
246246 outString := string (out )
247247 disks := []Disk {}
248- json .Unmarshal ([]byte (outString ), & disks )
248+ err = json .Unmarshal ([]byte (outString ), & disks )
249+ if err != nil {
250+ return 0 , err
251+ }
249252
250253 for i := range disks {
251254 diskNumber , diskPage83ID , err := imp .GetDiskNumberAndPage83ID (disks [i ].Path )
@@ -293,16 +296,19 @@ func (imp DiskAPI) ListDiskIDs() (map[uint32]shared.DiskIDs, error) {
293296 // {
294297 // "Path": "\\\\?\\scsi#disk\u0026ven_msft\u0026prod_virtual_disk#2\u00261f4adffe\u00260\u0026000001#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}",
295298 // "SerialNumber": null
296- // },
297- cmd := "(Get-Disk | Select Path, SerialNumber) | ConvertTo-Json "
299+ // }, ]
300+ cmd := "ConvertTo-Json @ (Get-Disk | Select Path, SerialNumber)"
298301 out , err := runExec (cmd )
299302 if err != nil {
300303 return nil , fmt .Errorf ("Could not query disk paths" )
301304 }
302305
303306 outString := string (out )
304307 disks := []Disk {}
305- json .Unmarshal ([]byte (outString ), & disks )
308+ err = json .Unmarshal ([]byte (outString ), & disks )
309+ if err != nil {
310+ return nil , err
311+ }
306312
307313 m := make (map [uint32 ]shared.DiskIDs )
308314
0 commit comments