none
script VBS compartilha UMA impressora no TS RRS feed

  • Pergunta

  • Boa tarde galera, não manjo muito de VBS e acredito q a solução da dúvida seja mto besta + vamos la....

    Tem um usuário que ao conectar via TS a impressora insiste em nao aparecer compartilhada mesmo já estando compartilhada no micro local dele, então toda vez q ele conecta no TS eu tenho q ir da impressora e definir o compartilhamento manualmente senao ele não imprime, porém, como nem sempre posso ficar monitorando isso, encontrei um VBS aqui na Technet que compartilha todas impressoras dei uma modificada nele para compartilhar apenas a impressora q eu definir. O VBS abaixo ta rodando blz exceto por 1 detalhe, no exemplo abaixo o script procura nas impressoras adicionadas no TS pelo nome FX890 e compartilha, mas qdo o usuário loga a impressora nao chama apenas "FX890" e sim "FX890 (de micro01) na sessao 3", por exemplo. A minha dúvida é como fazer para que na linha q compara o nome da impressora If objPrinter.Name = "FX890" Then ele desconsidere o que vir após FX890 tipo FX890 * pois isso varia a cada vez que o usuário loga, mas nao sei o parâmetro que faz isso. Alguém pode ajudar?? Desde já obrigado.

    Segue o script:


    WScript.Sleep 5000

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    Set colInstalledPrinters =  objWMIService.ExecQuery _

        ("Select * from Win32_Printer Where Network = FALSE")



    For Each objPrinter in colInstalledPrinters

        If objPrinter.Name = "FX890" Then
           objPrinter.Shared = TRUE
           objPrinter.ShareName = "FX890"
        End If    
        objPrinter.Put_
    Next  

    sábado, 6 de março de 2010 12:05

Respostas

  • Olá,

    Modifique o script conforme abaixo:

    Onde estava:
     If objPrinter.Name = "FX890" Then

    Modifique para:
     If instr(UCASE(objPrinter.Name),"FX890") > 0 Then



    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta WesleyFreitas segunda-feira, 22 de março de 2010 14:54
    quarta-feira, 10 de março de 2010 13:35

Todas as Respostas

  • Olá,

    Modifique o script conforme abaixo:

    Onde estava:
     If objPrinter.Name = "FX890" Then

    Modifique para:
     If instr(UCASE(objPrinter.Name),"FX890") > 0 Then



    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta WesleyFreitas segunda-feira, 22 de março de 2010 14:54
    quarta-feira, 10 de março de 2010 13:35
  • Josiel obrigado, funcionou perfeitamente.
    segunda-feira, 22 de março de 2010 14:54
  • Wesley,

     

    Boa tarde. Estava procurando uma solução para compartilhar uma impressão na sessão de TS. Acompanhando o seu post eu tentei usar o seu Script. Mas no meu caso está ocorrendo o seguinte erro quando a sessão do usuário está sendo criado no servidor de TS.

    Script: \\servidor AD\netlogon

    Linha:13

    Carct:5

    Erro: Acesso negado

    Codigo: 80041003

    Origem: SWbemObjectEx

     

    Será que este erro é por falta de permissão.

    Fico no aguardo.

    Obrigado.

     


    Macip Tecnologia www.macip.com.br Londrina-PR
    quarta-feira, 29 de dezembro de 2010 20:54