Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
变量上的PowerShell WMI筛选器_Powershell_Wmi - Fatal编程技术网

变量上的PowerShell WMI筛选器

变量上的PowerShell WMI筛选器,powershell,wmi,Powershell,Wmi,这并不是我想要完成的事情的确切场景,但却是我陷入困境的一个很好的例子 $Path = "\\192.168.1.1\config" Get-CimInstance -Namespace ROOT\CIMV2 -ClassName Win32_MappedLogicalDisk -Filter "ProviderName=$Path" 这会产生一个“无效查询”错误,因为它试图在查询中使用\\ 我知道我可以通过以下方式手动执行此操作: Get-CimInst

这并不是我想要完成的事情的确切场景,但却是我陷入困境的一个很好的例子

$Path = "\\192.168.1.1\config"
Get-CimInstance -Namespace ROOT\CIMV2 -ClassName Win32_MappedLogicalDisk -Filter "ProviderName=$Path"
这会产生一个“无效查询”错误,因为它试图在查询中使用
\\

我知道我可以通过以下方式手动执行此操作:

Get-CimInstance -Namespace ROOT\CIMV2 -ClassName Win32_MappedLogicalDisk -Filter "ProviderName='`\\`\\192.168.1.1`\\config'"
这并不能解决我的问题,因为我需要从变量传递值


非常感谢您提供的任何帮助

您可以进行内联替换以避免反斜杠:

$Path = "\\192.168.1.1\config"
Get-CimInstance -Namespace ROOT\CIMV2 -ClassName Win32_MappedLogicalDisk -Filter "ProviderName='$($Path -replace '\\','\\')'"
注意:不要忘记在过滤器的值部分加上单引号


$()
是子表达式。由于
-replace
使用正则表达式,因此还必须对匹配表达式转义一个
\

我也不想查询整个类,然后进行过滤。e、 g.
获取CimInstance-Namespace ROOT\CIMV2-ClassName Win32_MappedLogicalDisk |其中{$\ ProviderName-eq$Path}
,因为它会大大降低脚本的速度