1

我从 Microsoft 获得了一个脚本,它使用以下方法从远程计算机获取 NTFS 安全设置。

$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

我可以连接到共享并查看安全权限。我实际上在本地管理员组中,并且该组可以完全控制问题共享。

有谁知道为什么我会收到错误(因此没有结果对象)?

4

1 回答 1

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
于 2013-10-03T04:12:13.730 回答