Назад | Перейти на главную страницу

Как я могу создать файловый экран для каждого пути в этой переменной?

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

Вот как я получаю список общих дисков:

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

Это результат для $ driveContainShares

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

У меня возникают проблемы с запуском моей команды для создания экрана файлов для каждого диска, содержащего общий ресурс. Мне нужно запустить это на многих серверах, есть идеи?

Вот где я сейчас: я могу создать экран с файлом, если вручную введу путь в этой первой строке. Но мне нужно автоматизировать это, у каждого серера будут разные доли.

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

$drivesContainingShares | ForEach{$newFileScreen} 

Я пробовал это разными способами. Я получаю такие ошибки, как «не удается проверить аргумент в параметре« Путь ». Аргумент равен нулю или пуст.

Хорошо, мне просто нужно было немного побеждать, но я понял это. Я изменил свое выражение для каждого на следующее:

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

Затем я удалил эти строки.

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

$drivesContainingShares | ForEach{$newFileScreen} 

И теперь мои файловые скрины созданы!