如何为该变量中的每个路径创建一个文件筛选器?

如何为该变量中的每个路径创建一个文件筛选器?

我有一个脚本,用于扫描服务器以查找包含共享的驱动器。之后,我需要它从已使用相同脚本创建的模板创建文件筛选器,该部分工作正常。

以下是我获取具有共享的驱动器列表的方法:

`$drivesContainingShares =  @(Get-WmiObject Win32_Share | 
                    Select Name,Path,Type | 
                    Where-Object { $_.Type -match '0|2147483648' } | 
                    Select -ExpandProperty Path | 
                    Select -Unique)`

这是 $drivesContainingShares 的输出

PS C:\> $drivesContainingShares
C:\Windows
C:\

我无法运行命令来为包含共享的每个驱动器创建文件屏蔽。我必须在很多服务器上运行这个命令,有什么想法吗?

我现在的情况是这样的:如果我手动在第一行输入路径,我可以创建一个文件屏蔽。但我需要自动执行,因为每个服务器都有不同的共享。

$newFileScreen = New-FsrmFileScreen  -Path $drivesContainingShares  -Template $fileTemplateName

$drivesContainingShares | ForEach{$newFileScreen} 

我已经尝试了很多不同的方法。我收到类似“无法验证参数‘Path’上的参数”的错误。该参数为空或为空。

答案1

好吧,我只需要坚持一会儿,但我找到了答案。我将 for-each 语句更改为以下内容:

 foreach ($_ in $drivesContainingShares) 
{New-FsrmFileScreen  -Path $_  -Template $fileTemplateName}

然后我删除了这些行。

$newFileScreen = New-FsrmFileScreen  -Path $drivesContainingShares  -Template $fileTemplateName

$drivesContainingShares | ForEach{$newFileScreen} 

现在我的文件屏蔽已经创建好了!

相关内容