Question Lire des données Excel sur platef. 64 bit (Résolu)

Plus d'informations
il y a 15 ans 4 mois #3293 par Tarik
Hello,

J'ai un soucis d'access à un fichier Excel en utilisant le provider MS JET OLEDB 4.0 sur un Windows Server 2003 X64 Edition.

Quelqu'un aurait il déjà eu affaire a ce genre de problème?
Quelle est la solution?

Merci
Tarik<br><br>Message édité par: Arnaud, à: 27/11/08 22:47

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #3296 par Tarik
Ok le problème est résolu, apparement OLEDB est accessible uniquement en version 32 bit et pour l'utiliser il faut lancer powershell en version 32 bit (logique :P ) se trouvant dans le répertoire SYSWOW64 sur un systeme x64 (moins logique :sick: ).

Dans ce cadre là, j'aimerais vérifier au début de mon script si la version de powershell est la bonne.
Il y a t'il une info qq part pour récupérer la version (x86 ou x64) de powershell executé?

A+

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #3303 par Tarik
[code:1]## Detect the current powershell session x64 or x86 -- Helpfull to execute only 32 bits scripts
#[System.Diagnostics.Process]::GetCurrentProcess()
if( $Env:«»PROCESSOR_ARCHITECTURE -eq \&quot;x64\&quot;«»){
if ([intptr]::«»size -eq 4){
write-host \&quot;INFO: the current version of Powershell executed is 32 bit\&quot;
write-host -ForegroundColor green \&quot;SUCCESS: the current version of Powershell executed is 32 bit on a x64 architecture\&quot;

}else{
write-host -ForegroundColor red \&quot;ERROR: the current version of Powershell executed is 64 bit, expected 32 bit version to run scripts.\&quot;
Quit
}
}else{
write-host \&quot;INFO: The Operating System architecture is 32 bit (x86)\&quot;
}[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #3304 par Laurent Dardenne
Si la présence du framework x86 n'est pas possible sur une architecture x64 ta solution fonctionne sinon peut être comme ceci :
[code:1]
[System.Reflection.PortableExecutableKinds] $kinds=[System.Reflection.PortableExecutableKinds]::NotAPortableExecutableImage
[System.Reflection.ImageFileMachine] $imgFileMachine=[System.Reflection.ImageFileMachine]::I386
$M=[appdomain]::currentdomain.GetAssemblies()| ? {$_.location -like \&quot;*System.Management.Automation*\&quot;}
$M.ManifestModule.GetPEKind([REF] $kinds, [REF] $imgFileMachine)
$Kinds
$imgFileMachine
[/code:1]
Il y a peut être plus simple.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #3306 par Robin Lemesle

Ok le problème est résolu, apparement OLEDB est accessible uniquement en version 32 bit et pour l'utiliser il faut lancer powershell en version 32 bit (logique ) se trouvant dans le répertoire SYSWOW64 sur un systeme x64 (moins logique ).


Bon savoir, merci pour l'info ;)

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 4 mois #3311 par Laurent Dardenne
Laurent Dardenne écrit:

Il y a peut être plus simple.

Je viens de m'apercevoir que tu testais la taille d'un pointeur qui est différent selon la plateforme :whistle: ...
Ta solution est donc la plus simple.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.078 secondes
Propulsé par Kunena