Bonjour,

Je viens avec un problème précis dont je n'arrive pas à trouver de solution:
Je dois lister les imprimantes dans un programme tournant sous Citrix XenApp. Pour ceux qui ne connaissent pas, il s'agit en fait de lancer mon application sur le serveur et de "streamer" son interface au client. En gros le client ne vois pas que l'application tourne en réalité sur le serveur.

J'ai un code qui permet de retrouver les imprimantes installées. J'arrive avec un powershell sur le serveur à récupérer la liste des imprimantes du client connecté.
Mais je n'arrive pas à transformer ça en VB.NET

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'''''''RETRIEVE INSTALLED PRINTERS
        'Dim printer As PrinterSettings.StringCollection, IdxImpParDefaut As Integer, i As Integer
        'printer = Printing.PrinterSettings.InstalledPrinters
        'cmbPrinters.Text = printer.Item(0)
        'i = 0
        'IdxImpParDefaut = 0
        'For Each p In printer
        '    cmbPrinters.Items.Add(p.ToString())
        '    If p.ToString() = DefaultPrinterName() Then IdxImpParDefaut = i
        '    i = i + 1
        'Next
        'If cmbPrinters.Items.Count > 0 Then cmbPrinters.SelectedIndex = IdxImpParDefaut
        '''''''RETRIEVE ALL PRINTERS
        'Dim oquery As ObjectQuery = New ObjectQuery("SELECT * FROM Win32_Printer")
        'Dim mosearcher As System.Management.ManagementObjectSearcher = New System.Management.ManagementObjectSearcher(oquery)
 
        'Dim moc As System.Management.ManagementObjectCollection = mosearcher.Get()
 
        'For Each mo As ManagementObject In moc
        '    cmbPrinters.Items.Add(mo.Properties("name").Value.ToString())
        'Next mo
        '''''''RETRIEVE CITRIX SessionId
        Dim rsConfig As RunspaceConfiguration = RunspaceConfiguration.Create()
        Dim snapInException As New PSSnapInException
        Dim info As PSSnapInInfo = rsConfig.AddPSSnapIn("Citrix.XenApp.Commands", snapInException)
        Dim myRunSpace As Runspace = RunspaceFactory.CreateRunspace(rsConfig)
        myRunSpace.Open()
        Dim pipeLine As Pipeline = myRunSpace.CreatePipeline()
        Dim myCommand As New Command("Get-XASessionPrinter -ServerName cyan -SessionId 2")
        pipeLine.Commands.Add(myCommand)
        Dim commandResults As Collection(Of PSObject)
        commandResults = pipeLine.Invoke()
        For Each cmdlet As PSObject In commandResults
            cmbPrinters.Items.Add(cmdlet.Properties("Name").Value.ToString())
        Next
J'ai une erreur pour le powershell :
Get-XASessionPrinter is not recognized as a cmdlet...
Quelqu'un a une idée?

Merci d'avance,

Jérôme