[2003] 64-bits Powershell starten uit 32-bits context

Pagina: 1
Acties:

  • Jazzy
  • Registratie: Juni 2000
  • Nu online

Jazzy

Moderator SSC/PB

Moooooh!

Topicstarter
Het volgende, op een Windows Server 2003 x64 bak met Exchange 2007 draait een agent. Deze agent is 32-bits en kan scripts en dergelijke starten op deze server. Alleen moet de agent een 64-bits Powershell script gaan starten en ik heb nog niet ontdekt hoe ik dat voor elkaar kan krijgen.

Natuurlijk kan ik wel iets quick and dirties maken als ergens een bestand plaatsen en een andere scriptje steeds laten checken of die file er is, zo ja mijn script gaan starten. Maar bij dit soort indirecte oplossingen kan er veel te veel mis gaan.

Iemand een idee?

Exchange en Office 365 specialist. Mijn blog.


  • Question Mark
  • Registratie: Mei 2003
  • Laatst online: 15:48

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Hier staat uitgelegd hoe een powershell script vanuit de 'run' gestart kan worden.
in order to start a Windows PowerShell script from the Run dialog box or from a shortcut (or, for that matter, from Cmd.exe) you need to explicitly start Windows PowerShell and then pass the path to the script file as a startup parameter. In other words, this command will start Windows PowerShell and run the script C:\Scripts\Test.ps1:

powershell.exe c:\scripts\test.ps1
Als je iets dergelijks vanuit je agent aan kunt roepen ben je er volgens mij wel.

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • Jazzy
  • Registratie: Juni 2000
  • Nu online

Jazzy

Moderator SSC/PB

Moooooh!

Topicstarter
Helaas, zo simpel is het niet. :) Ik zal als voorbeeld nemen het starten van de default Exchange Management Shell, dit is wat er gebeurt als je de snelkoppeling start:
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'"
In deze regel wordt PowerShell aangeroepen, de Exchange utibreiding geladen en vervolgens het script Exchange.ps1 gestart.

Als ik dit uit laat voeren door mijn agent (procesnaam.exe*32 in tasmanager) dan krijg ik deze fout:
WARNING: The following errors occurred when loading console C:\Program
Files\Microsoft\Exchange Server\bin\exshell.psc1:
Cannot load Windows PowerShell snap-in
Microsoft.Exchange.Management.PowerShell.Admin because of the following error:
No Windows PowerShell Snap-ins are available for version 1.
Als je daarop gaat zoeken dan kom ik o.a. hier: "No Windows PowerShell Snap-ins are available for version 1" When Loading Exchange Powershell Snap-in

In het artikel staat dat er een 32-bits en 64-bits PowerShell is, die laatste staat niet in system32 maar in syswow64. Dus ik pas mijn batch aan als volgt:
C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\bin\Exchange.ps1'" 2>&1 > C:\output.txt
En krijg vervolgens dit:
WARNING: The following errors occurred when loading console C:\Program
Files\Microsoft\Exchange Server\bin\exshell.psc1:
Cannot load Windows PowerShell snap-in
Microsoft.Exchange.Management.PowerShell.Admin because of the following error:
No Windows PowerShell Snap-ins are available for version 1.
Het maakt dus geen verschil welke PowerShell ik aanroep. Evengoed vind ik het een raar verhaal want ook de snelkoppeling op mijn Exchange desktop start gewoon de 32-bits PowerShell.

Iemand een idee?

[ Voor 7% gewijzigd door Jazzy op 23-02-2008 19:35 ]

Exchange en Office 365 specialist. Mijn blog.


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Als je die foutmelding krijgt, kan je dan controleren of het wel een 64-bits proces is? Als het dat namelijk wel is, dan lijkt het met niet zo zeer een probleem van het niet kunnen starten van een 64-bits process uit een 32-bits process, maar eerder dat jouw agent iets niet goed doet (bv. dat het onder de verkeerde user wordt gestart oid?) ? [/gok]

  • Question Mark
  • Registratie: Mei 2003
  • Laatst online: 15:48

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Volgens de topicstart is de agent 32 bits. Wat ik op diverse forums en blogs tegenkom schijnt het niet mogelijk te zijn om 64 bits Powershell vanuit een 32 bits proces te starten. Het probleem is volgens niet zozeer het starten van Powershell, maar meer dat de 64 bits Exchange extensies geladen dienen te worden binnen Powershell

Mischien dat Jazzy eens zou kunnen experimenteren met de 32 bits versie van Exchange. Als hiervan enkel de management consoles worden geinstalleerd, worden ook de 32 bits Exchange extensies geinstalleerd. Misschien is het dan mogelijk om het hele proces 32 bit te houden (agent - powershell - PS extensies). [/wilde gok]

Meest mooie oplossing is natuurlijk de agent naar 64 bit compileren.

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B

Pagina: 1