none
Desinstalar NETMON (Erro: System cannot find the file specified) RRS feed

  • Pergunta

  • Galera

    Criei o script abaixo para desinstalar o NetMon, mas estou me batendo para acertar o comando devido aos parametros que tenho que passar junto, acho que estou me perdendo nas aspas. Estou recebendo a mensagem "System cannot find the file specified". Qualquer ajuda é bem vinda:

    InputFile = InputBox("Enter path to text file with the list of computers to process")
    Set oFS = CreateObject("Scripting.FileSystemObject")
    Set f = oFS.OpenTextFile(InputFile)
    Computers = Split(f.ReadAll, vbNewLine)
    f.Close
    For Each strComputer in Computers
    'On Error Resume Next

    strCommand = """c:\windows\system32\sysocmgr.exe /i:c:\windows\inf\sysoc.inf /u:c:\temp\a.txt /r /q"""
    set objShell = createobject("Wscript.Shell")

    Wscript.Echo strCommand
    objShell.Run strCommand
     Wscript.Echo "..:: " & UCase (strComputer) & " ::.."
     WScript.Echo " - : Command to uninstall NetMon sent to the server."
    WScript.Stdout.WriteBlankLines 2
    Next

    []'s

    Rafael Machado


    Ajude a melhorar a eficiência nas buscas, se foi útil, classifique. {http://rafaelcmachado.spaces.live.com} Rafael Carneiro Machado

    segunda-feira, 27 de fevereiro de 2012 20:36

Respostas

Todas as Respostas

  • Rafael,

    Como não há espaços nos nomes dos diretórios dos arquivos que vc está executando acho desncessários o uso de aspas. Então a linha do strCommand pode ficar assim:

    strCommand = "c:\windows\system32\sysocmgr.exe /i:c:\windows\inf\sysoc.inf /u:c:\temp\a.txt /r /q"
     

    Você pode testar o comando utilizando a saida do seu script, na linha "Wscript.Echo strCommand" ele imprime o comando que será executado, pegue esta saida e cole num prompt de comando, confira se funcionou, se não funcionou tente ali mesmo adicionar aspas ou parametros que possam estar faltando e só depois volte a tentar corrigir o seu script.

    Fábio de Paula Junior

    terça-feira, 28 de fevereiro de 2012 00:47
    Moderador
  • Fabio

    Esqueci de mencionar, eu já tentei de várias formas, aspas simples, duplas, triplas, sem aspas, já tentei criar uma variável para cada parte do comando e executar as variáveis concatenadas, mas nenhuma delas funcionou, estou sempre recebendo o mesmo erro.

    Estou usando o WScript.Echo para testar, em uma das minhas tentativas, não lembro qual, consegui "imprimir"o comando corretamente, mas mesmo assim não funcionou. Já validei o comando diretamente no servidor, e a sintaxe está correta. Não sei mais o que fazer.

    Qualquer ajuda é muito bem vinda

    []'s

    Rafael


    Ajude a melhorar a eficiência nas buscas, se foi útil, classifique. {http://rafaelcmachado.spaces.live.com} Rafael Carneiro Machado

    terça-feira, 28 de fevereiro de 2012 13:29
  • Fabio

    Esqueci de mencionar, eu já tentei de várias formas, aspas simples, duplas, triplas, sem aspas, já tentei criar uma variável para cada parte do comando e executar as variáveis concatenadas, mas nenhuma delas funcionou, estou sempre recebendo o mesmo erro.

    Estou usando o WScript.Echo para testar, em uma das minhas tentativas, não lembro qual, consegui "imprimir"o comando corretamente, mas mesmo assim não funcionou. Já validei o comando diretamente no servidor, e a sintaxe está correta. Não sei mais o que fazer.

    Qualquer ajuda é muito bem vinda

    []'s

    Rafael


    Ajude a melhorar a eficiência nas buscas, se foi útil, classifique. {http://rafaelcmachado.spaces.live.com} Rafael Carneiro Machado

    terça-feira, 28 de fevereiro de 2012 13:29
  • Esqueça o script. Cole aqui o comando que vc digita no prompt de comando e que funciona.

    Assim descobrimos se o problemas são aspas ou o comando.


    Fábio de Paula Junior

    terça-feira, 28 de fevereiro de 2012 13:35
    Moderador
  • Fabio,

    É o mesmo que está no script sem as aspas:

    sysocmgr.exe /i:c:\windows\inf\sysoc.inf /u:c:\temp\a.txt /r /q


    Ajude a melhorar a eficiência nas buscas, se foi útil, classifique. {http://rafaelcmachado.spaces.live.com} Rafael Carneiro Machado

    terça-feira, 28 de fevereiro de 2012 13:38
  • Tente utilizar estes dois:

    strCommand = "cmd /c ""sysocmgr.exe /i:c:\windows\inf\sysoc.inf /u:c:\temp\a.txt /r /q"""

    ou

    strCommand = "cmd /c ""c:\windows\system32\sysocmgr.exe /i:c:\windows\inf\sysoc.inf /u:c:\temp\a.txt /r /q"""


    Fábio de Paula Junior


    terça-feira, 28 de fevereiro de 2012 13:56
    Moderador
  • Acho que acabei de perceber o erro.

    Vc está rodando o script esperando que ele desinstale em um micro remoto? Não vai funcionar, ele só está tentando na máquina em que você está executando o script. (Por isso dá o erro de caminho não encontrado, não tem o caminho no micro que vc está executando o script).

    Não basta fazer o foreach com nomes de computadores para executar um comando em outro computador, o comando que vc executa tem que permitir acesso a micros remotos.

    Para fazer o que você quer vai ter que utilizar o psexec.

    PsExec v1.98

    http://technet.microsoft.com/en-us/sysinternals/bb897553


    Fábio de Paula Junior

    terça-feira, 28 de fevereiro de 2012 14:02
    Moderador
  • Não existe nenhuma forma de fazer isso via script?

    Eu já havia pensado no PsExec, mas ele seria minha última opção, gostaria de alguma forma de rodar isso via VBS :(


    Ajude a melhorar a eficiência nas buscas, se foi útil, classifique. {http://rafaelcmachado.spaces.live.com} Rafael Carneiro Machado

    terça-feira, 28 de fevereiro de 2012 14:29
  • Caminho mais rápido e fácil e o psexec.

    Fábio de Paula Junior

    terça-feira, 28 de fevereiro de 2012 15:07
    Moderador
  • Você pode tentar utilizar os procedimentos do link abaixo, (mas ainda prefiro o Psexec).

    How to execute program on remote computer?

    http://motevich.blogspot.com/2007/11/execute-program-on-remote-computer.html


    Fábio de Paula Junior

    quinta-feira, 1 de março de 2012 12:08
    Moderador