zero273
11-10-2017, 19:31
у нас есть переменная в которой три связанных списка данных.
$Name =(get-ADUser -Filter {Enabled -eq "True"} -properties $ADProperties `
| select-object name,samaccountname,@{n="AD_SNILS";e={$_ `
|Select-Object -ExpandProperty $ADProperties `
| select-string $AD_SNILS}})
создаем документ excel, здесь все окей
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$WorkBook = $Excel.Workbooks.Add()
$sh1 = $WorkBook.Worksheets.Item(1)
$sh1.Name = "$AD_SNILS"
# fill cells
$sh1.Cells.Item(1,1) = "кто"
$sh1.Cells.Item(1,2) = "Логин"
$sh1.Cells.Item(1,3) = "Снилс"
а вот эта часть кода в идеале должна переносить данные переменной $name в соответствующие столбцы в эксель, что и происходит, но при этом получается что каждый список выгружается без привязки к значениям других списков + некоторые данные пропускаются, например пустые строчки. В итоге данные в консоле не соответствуют данным в экселе.
$j = 2
foreach($arr in $Name.name)
{
$sh1.Cells.Item($j,1) = "$arr"
$j++
}
$j = 2
foreach($arr in $Name.samaccountname)
{
$sh1.Cells.Item($j,2) = "$arr"
$j++
}
$j = 2
foreach($arr in $Name.AD_SNILS)
{
$sh1.Cells.Item($j,3) = "$arr"
$j++
}
$Name =(get-ADUser -Filter {Enabled -eq "True"} -properties $ADProperties `
| select-object name,samaccountname,@{n="AD_SNILS";e={$_ `
|Select-Object -ExpandProperty $ADProperties `
| select-string $AD_SNILS}})
создаем документ excel, здесь все окей
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$WorkBook = $Excel.Workbooks.Add()
$sh1 = $WorkBook.Worksheets.Item(1)
$sh1.Name = "$AD_SNILS"
# fill cells
$sh1.Cells.Item(1,1) = "кто"
$sh1.Cells.Item(1,2) = "Логин"
$sh1.Cells.Item(1,3) = "Снилс"
а вот эта часть кода в идеале должна переносить данные переменной $name в соответствующие столбцы в эксель, что и происходит, но при этом получается что каждый список выгружается без привязки к значениям других списков + некоторые данные пропускаются, например пустые строчки. В итоге данные в консоле не соответствуют данным в экселе.
$j = 2
foreach($arr in $Name.name)
{
$sh1.Cells.Item($j,1) = "$arr"
$j++
}
$j = 2
foreach($arr in $Name.samaccountname)
{
$sh1.Cells.Item($j,2) = "$arr"
$j++
}
$j = 2
foreach($arr in $Name.AD_SNILS)
{
$sh1.Cells.Item($j,3) = "$arr"
$j++
}