Проблема здесь одна из этих проблем PowerShell.Свойства по умолчанию, возвращаемые для PSDrives: Имя, Описание, Поставщик, Корень и Текущее местоположение.Давайте посмотрим на мой диск M, например:
Get-PSDrive -Name M
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
M 769.66 112.47 FileSystem \\s5000\Computer Srv\Matt
Проблема, с которой вы столкнулись, заключается в том, что при отображении имени Root
при отправке его в выходной поток по умолчанию вы фактически смотрите значение DisplayRoot
.Это вводит в заблуждение, но информация, которую вы хотите, все еще там.
Get-PSDrive -Name M | Format-List *
Used : 826416230400
Free : 120764563456
CurrentLocation :
Name : M
Provider : Microsoft.PowerShell.Core\FileSystem
Root : M:\
Description :
Credential : System.Management.Automation.PSCredential
DisplayRoot : \\s5000\Computer Srv\Matt
Это нечто закулисное с форматированием XML-файлов PowerShell.В частности, это происходит из строки в PowerShellCore.format.ps1xml, которая определяет значение для Root
как DisplayRoot
, если оно имеет значение ... в противном случае Root
<TableColumnItem>
<ScriptBlock>if($_.DisplayRoot -ne $null) { $_.DisplayRoot } else { $_.Root }</ScriptBlock>
</TableColumnItem>
Если выДо сих пор не отставал от меня ..
Он пытался оказать вам услугу, показав, что вы, вероятно, хотели бы видеть.Зная это ... попробуйте вместо этого выполнить фильтрацию по DisplayRoot
.
Get-PSDrive | Where-Object {$_.DisplayRoot -like "*SERVER05*" }
Не забудьте использовать звездочки при использовании -like
, когда вы пытаетесь выполнить частичное совпадение.В случае сомнений проверьте ваши объекты с помощью списка командлетов Format-List
, Get-Member
и Select-Object
, чтобы увидеть больше информации.