Скрипт Powershell для сравнения VolumeID с DriveLetter

У меня есть сценарий powershell, запускающий wbadmin с исходным кодом C: на целевой том iSCSI, указанный его идентификатором тома (\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}). Само резервное копирование работает отлично, я просто хотел добавить в сценарий функцию резервного копирования вне сайта. К сожалению, robocopy не может использовать идентификатор тома в качестве источника для задания копирования и отклонит его как неизвестный параметр.

Есть ли способ удобно получить фактическую букву диска из идентификатора тома, чтобы я мог заменить ее перед вызовом robocopy?

Вывод «mountvol» выглядит очень многообещающе, но если есть встроенная функция powershell, я бы предпочел ее использовать.

Я уже пробовал Get-PSDrive и Get-Volume, похоже, нет никакого способа заставить их выводить VolumeID.


person HannesS    schedule 13.05.2015    source источник


Ответы (1)


может это должно помочь:

gwmi Win32_Volume |
    ? { $_.deviceID -eq '\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\'} 
          | select -expand name
person CB.    schedule 13.05.2015
comment
Я голосую только потому, что предполагаю, что это сработает. На самом деле не проверял это, но я уверен, что мне приходилось делать что-то подобное в прошлом. - person SomeShinyObject; 13.05.2015
comment
Работает отлично, спасибо. Не думал о доступе к WMI напрямую. Я бы тоже проголосовал за это, но мне все еще нужна репутация :( - person HannesS; 13.05.2015
comment
@HannesS Рад помочь! Нет проблем с голосованием, я здесь просто для удовольствия;) - person CB.; 13.05.2015