SATA aansluiting bepalen in Windows 8.1 PXE (cmd/powershell)

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • EMP
  • Registratie: November 2000
  • Laatst online: 26-09 08:04

EMP

Krulloos!

Topicstarter
Ik draai op nieuwe PC's een script vanaf een Windows 8.1 PXE (Preboot Execution Environment) USB Stick.

In de PC's zitten 2 sleuven voor harddisks in (slot A en B ). De Sata connectoren zitten op een print (niet via een kabel), dus de SATA connector is voor het slot altijd het zelfde.

Voorheen zat er altijd maar één disk in slot A. Binnenkort echter gaat dat veranderen, en kunnen we 2 disks krijgen, twee verschillende of juist twee de zelfde, of ook 1 disk, maar dan in slot B ipv A.

Ik wil kunnen uitvissen van elk slot welke disk daar in zit. Dat wil ik uiteindelijk automatiseren, dus het liefst command line, maar als het naar een text logfile output, wat ik daarna kan parsen, dan zou dat ook kunnen.

Ik heb voornamelijk met Powershell zitten experimenteren. Bijvoorbeeld:

code:
1
Get-Disk | Select FriendlyName,Model,Number


Werkt erg goed wanneer er 2 disks in zitten. Number 0 is altijd slot A en Number 1 is altijd slot B. Echter als er maar 1 disk in zit, dan is dat altijd Number 0, en kun je niet zien in welk slot de disk zit.

Ik heb de Microsoft pagina's met powershell commando's (voor Win8.1) zitten afspeuren, maar kom er nog niet uit. Bijvoorbeeld:
code:
1
Get-PhysicalDisk | Select FriendlyName,Model,DeviceID
lukt het ook niet mee...

In Linux had ik dit zo voor elkaar met
code:
1
lsscsi -s
Echter ben ik niet zo bekent met Windows. Iemand enig idee waar ik moet zoeken?

Verbouwblog van mijn Schrootjespaleis uit 1925.
My anime addiction.

Beste antwoord (via EMP op 18-07-2018 16:23)


  • xAn52
  • Registratie: Maart 2001
  • Laatst online: 06-05 22:07

xAn52

Whatever...

Even gegoogled:
code:
1
2
3
4
5
6
$Drives = Get-WmiObject -Class WIN32_DiskDrive 

Foreach($Drive in $Drives)
{
    $Drive
}


De eerste regel doet al genoeg. Maar voor de test is de foreach even handig.
Output kan je van alles mee. kijk ook bij [url=Microsoft]https://docs.microsoft.com/nl-nl/windows/desktop/CIMWin32Prov/win32-diskdrive[/url] voor meer info over de properties.
-> SCSITargetID geeft een unieke positie aan als ze beide op dezelfde bus zitten.

[ Voor 9% gewijzigd door xAn52 op 17-07-2018 15:07 ]

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • xAn52
  • Registratie: Maart 2001
  • Laatst online: 06-05 22:07

xAn52

Whatever...

Even gegoogled:
code:
1
2
3
4
5
6
$Drives = Get-WmiObject -Class WIN32_DiskDrive 

Foreach($Drive in $Drives)
{
    $Drive
}


De eerste regel doet al genoeg. Maar voor de test is de foreach even handig.
Output kan je van alles mee. kijk ook bij [url=Microsoft]https://docs.microsoft.com/nl-nl/windows/desktop/CIMWin32Prov/win32-diskdrive[/url] voor meer info over de properties.
-> SCSITargetID geeft een unieke positie aan als ze beide op dezelfde bus zitten.

[ Voor 9% gewijzigd door xAn52 op 17-07-2018 15:07 ]


Acties:
  • +1 Henk 'm!

  • EMP
  • Registratie: November 2000
  • Laatst online: 26-09 08:04

EMP

Krulloos!

Topicstarter
xAn52 schreef op dinsdag 17 juli 2018 @ 15:06:
Even gegoogled:
code:
1
$Drives = Get-WmiObject -Class WIN32_DiskDrive

-> SCSITargetID geeft een unieke positie aan als ze beide op dezelfde bus zitten.
Thanks! Hiermee is het gelukt.

Ik lees de disks uit, en met de combinatie van de properties SCSIBus en SCSIPort kan ik elke positie uniek aanwijzen.

Verbouwblog van mijn Schrootjespaleis uit 1925.
My anime addiction.