2013-10-03 4 views
1

У меня есть сценарий от Microsoft, который использует следующий метод для получения настроек безопасности NTFS с удаленной машины.Win32_LogicalFileSecuritySetting возвращает ошибку для некоторых путей, но не другие

$SharedFolderPath=[regex]::Escape("D:\UserSetup"); 
$SharedNTFSSecs = Get-WmiObject -Class Win32_LogicalFileSecuritySetting -Filter "Path='$SharedFolderPath'" -ComputerName $Computer 

$SharedFolderPath=[regex]::Escape("C:\Program Files\AdventNet\ME\OpManager\Reports"); 
$SharedNTFSSecs = Get-WmiObject -Class Win32_LogicalFileSecuritySetting -Filter "Path='$SharedFolderPath'" -ComputerName $Computer 

У меня есть пути от предыдущего вызова к Win32_Share. Первый работает отлично, второй выдает ошибку:

> Get-WmiObject : Invalid query At line:1 char:118 
> + $SharedFolderPath=[regex]::Escape("C:\Program Files\AdventNet\ME\OpManager\Reports"); $SharedNTFSSecs = 
> Get-WmiObject <<<< -Class Win32_LogicalFileSecuritySetting -Filter 
> "Path='$SharedFolderPath'" -ComputerName $Computer 
>  + CategoryInfo   : InvalidOperation: (:) [Get-WmiObject], ManagementException 
>  + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand 

Единственное отличие путь:

D:\UserSetup
C:\Program Files\AdventNet\ME\OpManager\Reports

Я могу подключиться к акции и просматривать разрешения безопасности. Я эффективно работаю в локальной группе администраторов, и эта группа полностью контролирует проблему.

У кого-нибудь есть ключ, почему я получаю сообщение об ошибке (и, следовательно, нет результирующего объекта)?

+0

Пожалуйста, добавьте некоторое форматирование к вашему вопросу и шоу нам соответствующий код. –

ответ

0

Я считаю, что это потому, что:

[regex]::Escape("C:\Program Files\AdventNet\ME\OpManager\Reports") 

дает

C:\\Program\ Files\\AdventNet\\ME\\OpManager\\Reports 

белое пространство спасся также, попробуйте:

Get-WmiObject -Class Win32_LogicalFileSecuritySetting -Filter "Path='C:\\Program Files\\AdventNet\\ME\\OpManager\\Reports'" -ComputerName $Computer 
+0

Я должен был заподозрить этот код. Благодарю. Я исправил его с помощью '$ SharedFolderPath = $ Share.Path -replace '\\', '\\'' – Roman

Смежные вопросы