2017-02-08 4 views
0

Existe-t-il un moyen d'accéder au DSN ODBC x64 via la fenêtre x86 Powershell/Powershell ISE?Utilisation de la source ODBC x64 de la console Powershell x86

En ce moment si j'essaie, j'obtiens une erreur que DSN/driver n'est pas trouvé, et c'est vrai parce qu'il n'y a pas de tel pilote/DSN dans le magasin x86 ODBC.

La seule façon de ce achive est d'ouvrir la console x64 powershell de SysWOW64\WindowsPowerShell\v1.0

Puis-je définir explicitement l'emplacement du pilote du magasin x64? Ma chaîne de connexion à droite ressemble maintenant à ceci:

$Connection = New-Object System.Data.Odbc.OdbcConnection 
$Connection.ConnectionString = "driver={Adaptive Server Enterprise};dsn=$DSN;db=$DefaultDatabase;na=$ServerName,$Port;uid=$uid;pwd=$pwd;" 
+0

http://stackoverflow.com/questions/42090728/how-to-get-the-pshome-path-for-64-bits/42090886? – gvee

+0

Si la communication à distance PowerShell est activée, vous pouvez simplement 'Enter-PSSession. -ActiverNetworkAccess'. Vous pouvez également créer un espace d'exécution hors processus ([exemple C#] (http://stackoverflow.com/a/34919564)) et l'utiliser pour invoquer des commandes. – PetSerAl

Répondre

0

32 bits processus x86 x86, y compris Powershell, ne peuvent pas utiliser directement 64 bits des bibliothèques x86_64 y compris DSNs/de pilotes ODBC.

Les processus x86_64 64 bits, y compris x86_64 Powershell, ne peuvent pas utiliser directement les bibliothèques x86 32 bits, y compris les DSN/pilotes ODBC.

Vous pouvez utiliser une solution de pontage "Multi-Tier", qui utilise TCP/IP ou une autre couche de communication réseau pour communiquer entre les environnements 32 bits et 64 bits, tels que this one de my employer, OpenLink Software ... ou vous pouvez acquérir un 32-bit ODBC driver for Sybase ASE.