Powershell leu a partir de variáveis configuradas CSV

2

Eu estava esperando conseguir alguma orientação.

Eu tenho um arquivo csv com duas colunas "Caminho" e "Proprietário"

Eu criei o script belkow e ele pode ler a partir do arquivo CSV, mas quando tento atribuir as variáveis do csv, ele falha.

Eu não consigo ver onde estou indo errado. Qualquer ajuda seria apreciada.

import-csv c:\test\output.csv | foreach-object {
  $Path = $_.path
  $owner =$_.owner
  "The username is $Path and the owner is $owner"
}
ForEach-Object {
         $Path = $_.path
         $owner =$_.owner
         $Account = New-Object -TypeName System.Security.Principal.NTAccount -ArgumentList '$owner';
         $Acl = Get-Acl -Path $path ; 
    $Acl.SetOwner($Account);
    Set-Acl -Path $owner -AclObject $Acl; 
    }

A saída está correta do primeiro segmento e mostra o caminho e o proprietário, mas a segunda parte não define o proprietário de acordo com o caminho.

Obrigado

    
por Norrin Rad 19.03.2017 / 15:51

1 resposta

2

O segundo foreach não possui objeto de entrada para iterar. Então, ou

  • importe para uma variável e canalize duas vezes para os loops foreach
  • importar duas vezes
$csv = import-csv c:\test\output.csv 
$csv | foreach-object {
  $Path = $_.path
  $owner =$_.owner
  "The username is $Path and the owner is $owner"
}
$csv | ForEach-Object {
    $Path = $_.path
    $owner =$_.owner
    $Account = New-Object -TypeName System.Security.Principal.NTAccount -ArgumentList "$owner"
    $Acl = Get-Acl -Path $path
    $Acl.SetOwner($Account);
    Set-Acl -Path $Path -AclObject $Acl
}
    
por 19.03.2017 / 16:18