Powershell - Exporteren naar meedere tabbladen Excel

Status
Niet open voor verdere reacties.

henkiebeej

Gebruiker
Lid geworden
8 jul 2011
Berichten
224
Goedemorgen,

Ik heb hieronder een klein (redelijk basic) Powershell script gemaakt waarmee ik alle users in een bepaald OU (Organizational Unit) uit de Active Directory exporteer naar een CSV bestand.
Nu heb ik meerdere OU's met users en wil graag dat voor elke OU een nieuw tabblad in Excel word gebruikt.

Ik wil dus niet eerst bijv. 5 verschillende OU's exporteren naar 5 verschillende CSV-bestandjes en dat dan in verschillende tabbladen in Excel importeren.
Maar ik wil dus dat de 5 verschillende OU's gelijk naar een eigen tabblad in één XLS/CSV bestand worden geëxporteerd.

Kan iemand mij daarmee helpen? Hieronder staat het stukje code dat ik gebruik om de users uit een bepaalde OU te exporten. (nu dus nog naar een CSV bestand).

Code:
import-module ActiveDirectory

$LOCATIE-A="OU=USERS,OU=ACCOUNTS,OU=LOCATIE-A,DC=DOMEIN,DC=COM"
$LOCATIE-B="OU=USERS,OU=ACCOUNTS,OU=LOCATIE-B,DC=DOMEIN,DC=COM"
$LOCATIE-C="OU=USERS,OU=ACCOUNTS,OU=LOCATIE-C,DC=DOMEIN,DC=COM"
$LOCATIE-D="OU=USERS,OU=ACCOUNTS,OU=LOCATIE-D,DC=DOMEIN,DC=COM"
$LOCATIE-E="OU=USERS,OU=ACCOUNTS,OU=LOCATIE-E,DC=DOMEIN,DC=COM"

Get-ADUser -Filter * -SearchBase $LOCATIE-A -Properties * | Select-Object -Property Name,Description | Sort-Object -Property Name | Export-Csv -Delimiter “,” -Path “Users-Locatie-A.csv” -NoTypeInformation
Get-ADUser -Filter * -SearchBase $LOCATIE-B -Properties * | Select-Object -Property Name,Description | Sort-Object -Property Name | Export-Csv -Delimiter “,” -Path “Users-Locatie-B.csv” -NoTypeInformation
Get-ADUser -Filter * -SearchBase $LOCATIE-C -Properties * | Select-Object -Property Name,Description | Sort-Object -Property Name | Export-Csv -Delimiter “,” -Path “Users-Locatie-C.csv” -NoTypeInformation
Get-ADUser -Filter * -SearchBase $LOCATIE-D -Properties * | Select-Object -Property Name,Description | Sort-Object -Property Name | Export-Csv -Delimiter “,” -Path “Users-Locatie-D.csv” -NoTypeInformation
Get-ADUser -Filter * -SearchBase $LOCATIE-E -Properties * | Select-Object -Property Name,Description | Sort-Object -Property Name | Export-Csv -Delimiter “,” -Path “Users-Locatie-E.csv” -NoTypeInformation
 
Ik denk dat je eerder tegen een limitatie van excel aanloopt dan powershell. Je kunt excel automatiseren met VBA om meerdere files te openen op meerdere tabbladen, maar is geen support om een enkele file op te delen over meerdere bladen (zonder gebruik te maken van VBA)

Deze informatie in een enkele file krijgen is nog wel te doen, maar het opdelen in excel wordt niet ondersteund.
 
Volgens mij is dat niet helemaal wat TS vraagt. Als ik 'm zo lees, dan wil hij de verschillende AD's uitlezen en in Excel plaatsen zonder dat er een csv bestand wordt gemaakt, niet dat hij vanuit één bestand wil inlezen. Dat kan uiteraard wel, als je met een Recordset de AD's uitleest. Ik doe dat zelf vanuit Outlook, maar dat kan vanuit elk programma waarin je een ADODB connectie kunt leggen. Mocht je dat willen zien, dan kan ik de code die ik gebruik wel posten. Is uiteraard specifiek voor onze AD gemaakt,dus je zult dan nog wel e.e.a. moeten verbouwen.
Overigens: wat is er mis met een (tijdelijk) csv bestand dat je vervolgens met KILL verwijdert? Zie je helemaal niks van, en qua ruimte zal dat toch ook geen bezwaar zijn?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan