У меня есть сценарий, который сканирует сервер на наличие дисков, содержащих общие ресурсы. После этого мне нужно создать экранный файл из шаблона, который уже создан с помощью того же сценария, эта часть работает нормально.
Вот как я получаю список общих дисков:
`$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}
И теперь мои файловые скрины созданы!