Вы можете перечислять общие ресурсы Windows через PHP COM API :
$wmi = new COM('WinMgmts:{impersonationLevel=impersonate}!root/cimv2');
$result = $wmi->ExecQuery('Select Path from Win32_Share where Type = 0');
foreach ($result as $share) {
echo $share->Path, PHP_EOL;
}
На выходе будут перечислены все общие папки на машине. Тип 0
- это дисковод.
См. Документацию MSDN для Win32_Share
для дополнительных свойств, которые вы можете запросить.
Примечание: , если вы ищете Подключенные сетевые диски , измените запрос на
Select ProviderName From Win32_LogicalDisk Where DriveType = 4
и изменить $share->Path
на $share->ProviderName
Подробнее см. Артикул .
В качестве альтернативы использованию COM можно использовать команду wmic
:
exec('wmic Share where Type=0 get Path', $shares);
print_r($shares);
эквивалентно первому примеру выше. Подробнее о WMIC
см.