Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Powershell] Excel vullen

Pagina: 1
Acties:

  • Craven
  • Registratie: Februari 2007
  • Laatst online: 11:09
Ik ben bezig om een overzicht te maken van alle users die zich direct of indirect binnen een bepaalde active directory groep bevinden. Dat wil ik vervolgens in een excel enigzins overzichtelijk krijgen.

So far so good. Met quest active directory tools heb ik een commando dat dat allemaal kan. Met een foreach loop heb ik het ook voor elkaar gekregen dat hij een lijst met groepen accepteert. Met een tweede foreach loop regel ik dat hij alle users netjes per celletje in de excel zet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
foreach ($line in $file) {
    
    $Row = 1
    $users = (get-qadgroupmember $line -Indirect | select name| sort name| export-csv $CurrentPath\$line.csv )
    $Sheet.Cells.Item($Row, 1) = $line
    $Row++

    $userlist = (Get-Content $CurrentPath\$line.csv)
    foreach ($userline in $userlist) {
        $Sheet.Cells.Item($Row, 1) = $userline
        $Row++
        } 

start-sleep -s 5

}


Dit werkt allemaal. Hij zet nu netjes de groep bovenaan met de users eronder. Hij zet hierbij ook nog eventuele geneste groepen maar dat is niet zo heel rampzalig.

Zoals jullie kunnen zien zorg ik er met
code:
1
$Row++
er telkens voor dat hij naar de cel eronder gaat. En nu zou je denken dat dit met
code:
1
$Column++
hetzelfde zou doen maar dan voor de column. Jammer genoeg niet dus. Hij overschrijft mijn eerste column keer op keer en lijkt de Column code gewoon te negeren.

Heeft iemand tips over hoe ik naar de volgende column kan gaan binnen powershell?

  • Craven
  • Registratie: Februari 2007
  • Laatst online: 11:09
En solved. Dit soort problemen krijg je nou als je teveel stukjes code copy paste zonder ze te begrijpen O-)

code:
1
$Column++

^^ Werkt gewoon. Maar als je vervolgens dit doet:
code:
1
$Sheet.Cells.Item($Row, 1)

Dan zit je obviously weer op column 1...
Code nu aangepast dat hij met variabelen werkt. Voor de geïnteresseerden krijg je dan dus dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$Column = 1
foreach ($line in $file) {
    
    $Row = 1
    $users = (get-qadgroupmember $line -Indirect -SizeLimit 100000 | select name| sort name| export-csv $CurrentPath\temp\$line.csv )
    $Sheet.Cells.Item($Row, $Column) = $line
    $Row++

    $userlist = (Get-Content $CurrentPath\temp\$line.csv)
    foreach ($userline in $userlist) {
        $Sheet.Cells.Item($Row, $Column) = $userline
        $Row++
        } 

$Column++
start-sleep -s 5