Powershell get-content разбивает столбцы на два - PullRequest
0 голосов
/ 24 февраля 2020

Мне нужно зарегистрировать несколько пользователей в SFB, и мне нужно зарегистрировать пользователя и добавочный номер телефона для соответствующего пользователя. В TXT у меня есть два столбца: пользователь и добавочный номер, разделенные знаком ";", я сомневаюсь, как разделить столбцы внутри команды foreach? и будут ли правильно добавлены имя пользователя и добавочный номер телефона к коду?


sampleData.txt

user | расширение

myuser1@mycompany.com ; 3331 <br/>
myuser2@mycompany.com ; 3332 <br/>
myuser2@mycompany.com ; 3334 <br/>

-------------------------------------- -------------------------

$user = Get-Content C:\temp\skypeproject\sampleData.txt

foreach ($users in $user) {  Set-CsUser –Identity $users –EnterpriseVoiceEnabled $true
<br/> <br/>
  –OnPremLineURI tel:+3333333$extension  <br/>  <br/>
  Set-CsUserPstnSettings –Identity "$users" –HybridPSTNSite ACCESSPOOL <br/> <br/>
  Grant-CsTenantDialPlan –Identity "$users" –PolicyName Company <br/> <br/>

}

1 Ответ

1 голос
/ 24 февраля 2020

Поскольку vonPryz предложил использовать Import-CSV, чтобы получить данные из файла. Вы можете включить заголовок столбцов в файл с разделителями так же, как и остальные данные, или добавить заголовок позже с помощью командлета:

Без заголовка:

$path = "path\to\sampleData.txt"
$csv = Import-Csv -Path $path -Delimiter ";" -Header "user","extension"
foreach ($row in $csv) {  
    $users = $row.user 
    $extension = $row.extension
    Set-CsUser –Identity $users –EnterpriseVoiceEnabled $true –OnPremLineURI tel:+3333333$extension
    Set-CsUserPstnSettings –Identity $users –HybridPSTNSite ACCESSPOOL
    Grant-CsTenantDialPlan –Identity $users –PolicyName Company
}

заголовок в файле:

$path = "path\to\sampleData.txt"
$user = Import-Csv -Path $path -Delimiter ";"
foreach ($row in $csv) {  
    $users = $row.user 
    $extension = $row.extension
    Set-CsUser –Identity $users –EnterpriseVoiceEnabled $true –OnPremLineURI tel:+3333333$extension
    Set-CsUserPstnSettings –Identity $users –HybridPSTNSite ACCESSPOOL
    Grant-CsTenantDialPlan –Identity $users –PolicyName Company
}

file:

user;extension
myuser1@mycompany.com;3331
myuser2@mycompany.com;3332
myuser2@mycompany.com;3334

Обратите внимание, что пробелы в файле включены! Или удалите их из вашего файла, или вам нужно trim вывод:

$users = $row.user.trim()
$extension = $row.extension.trim()
...