#powershell
#powershell
Вопрос:
Извините, я новичок в PowerShell и для этого базового.
У меня есть файл CSV с этим содержимым и еще несколькими строками, и я хотел прочитать каждую строку из двух переменных (имя, пользователь) и запустить командлет, как показано ниже.
~# cat test.scv
Name, User
mycomputer1, John
mycomputer2, Jake
….
….
mycomputer100, Susan
Я использовал Import-CSV для импорта файла.
$csv = Import-CSV “X:test.csv"
Это приведет к:
Name User
——— ———
mycomputer1 John
mycomputer2 Jake
..
..
mycomputer100 Susan
Как мне изменить этот скрипт, чтобы читать каждую строку и использовать оба значения (имя, пользователь) в этой строке для запуска командлета Connect-Server по одному за раз?
Connect-Server –Server mycomputer1 –User John
Connect-Server –Server mycomputer2 –User Jake
…
…
Connect-Server –Server mycomputer100 –User Susan
Ответ №1:
Попробуйте это:
Import-Csv C:temppscs.txt | ForEach-Object { Connect-Server -Server $_.Name -User $_.User }
Комментарии:
1. Спасибо шутеру. Кажется, это приведет к одновременному запуску сервера connect.. Я хотел бы иметь Connect-server на mycomputer1 вместе с первым пользователем John, а затем распечатать что-то промежуточное, а затем подключиться к mycomputer2. Я думаю, что это приведет к выполнению «connect-server» для всех экземпляров одновременно,
2. Отсутствовал на собрании, поэтому не смог ответить вам вовремя.
Ответ №2:
Решение «The Shooter» лучше, но вы тоже можете сделать так:
$csv = Import-CSV "C:temptest.csv"
foreach ($row in $csv)
{
Connect-Server -Server $row.Name -User $row.User
}
Комментарии:
1. Спасибо Esperento. Похоже, это работает так, как ожидалось, и то, что мне требовалось. Я мог бы использовать больше команд в операторе foreach перед подключением к следующему компьютеру.