Usuário com melhor resposta
Script VBS para desinstalar o firefox

Pergunta
-
Prezados,
Meu conhecimento em VBS é muito limitado, assim, venho solicitar ajuda de voces. Preciso rodar um script de logon que desinstale o firefox. Tem dois caminhos basicos que podemos encontrar o firefox:
1 - "Arquivos de Programas\Mozilla Firefox\uninstall\"
2 - "C:\Documents and Settings\%usuario%\Configurações locais\Dados de aplicativos\Mozilla Firefox\uninstall\"
Encontrei um script que funciona perfeitamente para desinstalar o firefox no caminho 1. Gostaria de sua ajuda para implementar neste script, a rotina que tambem executa o unistall no caminho 2. O script vai ter que pegar no nome do usuario logado (login de rede), para colocar na variavel %usuario%.
Se possivel, quero retirar esta rotina de LogEvents. Não tenho necessidade.
Veja o script abaixo:
--------------------------------------------------------------------------------------------------
Option Explicit
Dim objWshShell, objFSO, WshEnv, ProgramFiles
On Error Resume Next
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshEnv = objWshShell.Environment("PROCESS")
ProgramFiles = objWshShell.ExpandEnvironmentStrings("%ProgramFiles%")
objWshShell.LogEvent 4, "Starting the """ & wscript.ScriptFullName & """ VBScript."
If objFSO.FileExists (ProgramFiles & "\Mozilla Firefox\uninstall\helper.exe") Then
objWshShell.LogEvent 4, "Attempting to remove Mozilla Firefox using the """ & wscript.ScriptFullName & """ VBScript."
objWshShell.Run """" & ProgramFiles & "\Mozilla Firefox\uninstall\helper.exe"" /S", 1, True
End If
objWshShell.LogEvent 4, "Finished running the """ & wscript.ScriptFullName & """ VBScript."
Wscript.Quit
--------------------------------------------------------------------------------------------------
Obrigado!
Sou Livre !
Respostas
-
Tenta este aqui.
Set objWshShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") strProgramFiles = objWshShell.ExpandEnvironmentStrings("%PROGRAMFILES%") If objFSO.FileExists (strProgramFiles & "\Mozilla Firefox\uninstall\helper.exe") Then strUninstall = "%ComSpec% /k """ & strProgramFiles & "\Mozilla Firefox\uninstall\helper.exe"" /S" objWshShell.Run strUninstall,1,false End If
Alterei as duas linhas dentro do IF.
Se funcionar faça a seguinte alteração para que a janela do prompt não apareça:
- troque o /k por /c
- e troque também o 1 por 0 na linha do .run
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator sexta-feira, 23 de novembro de 2012 11:01
- Não Marcado como Resposta Fábio JrModerator sexta-feira, 23 de novembro de 2012 15:13
- Marcado como Resposta ricardoclaus segunda-feira, 3 de dezembro de 2012 09:58
Todas as Respostas
-
amigo você pode utilizar a variável de ambiente %username%
Ajudei? Marca como útil.
Visite meu blog: HowToServer
Quer conversar sobre Powershell?
entre nos grupos, no Facebook e noLinkedin Cadastre-se também na mailing list Powershell Brasil Quer Aprender Powershell?
Meus Artigos na TechNet Wiki -
Amigo não manjo muito de VBS, achei aqui a variavel de ambiente %userprofile% que indica o caminho do perfil do usuario. pode utilizar ela junto com o codigo que você postou.
Chutando ficaria algo mais ou menos assim
Option Explicit Dim objWshShell, objFSO, WshEnv, ProgramFiles On Error Resume Next Set objWshShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshEnv = objWshShell.Environment("PROCESS") UserFiles = objWshShell.ExpandEnvironmentStrings("%USERPROFILE%") objWshShell.LogEvent 4, "Starting the """ & wscript.ScriptFullName & """ VBScript." If objFSO.FileExists (UserFiles & "Configurações locais\Dados de aplicativos\Mozilla Firefox\uninstall\helper.exe") Then objWshShell.LogEvent 4, "Attempting to remove Mozilla Firefox using the """ & wscript.ScriptFullName & """ VBScript." objWshShell.Run """" & UserFiles & "Configurações locais\Dados de aplicativos\Mozilla Firefox\uninstall\helper.exe"" /S", 1, True End If objWshShell.LogEvent 4, "Finished running the """ & wscript.ScriptFullName & """ VBScript." Wscript.Quit
Ajudei? Marca como útil.
Visite meu blog: HowToServer
Quer conversar sobre Powershell?
entre nos grupos, no Facebook e noLinkedin Cadastre-se também na mailing list Powershell Brasil Quer Aprender Powershell?
Meus Artigos na TechNet Wiki
- Editado Matheus Kamphorst segunda-feira, 22 de outubro de 2012 19:52
- Sugerido como Resposta Fábio JrModerator terça-feira, 23 de outubro de 2012 19:04
- Marcado como Resposta Fábio JrModerator quarta-feira, 24 de outubro de 2012 10:31
- Não Marcado como Resposta Fábio JrModerator quinta-feira, 25 de outubro de 2012 19:46
-
-
Qual erro?
Ajudei? Marca como útil.
Visite meu blog: HowToServer
Quer conversar sobre Powershell?
entre nos grupos, no Facebook e noLinkedin Cadastre-se também na mailing list Powershell Brasil Quer Aprender Powershell?
Meus Artigos na TechNet Wiki -
-
-
-
desuclpa amigo é %userprofile%
abre um cmd e digita %userprofile% e da enter...
ve se ele mostra o caminho do perfil do usuario
Ajudei? Marca como útil.
Visite meu blog: HowToServer
Quer conversar sobre Powershell?
entre nos grupos, no Facebook e noLinkedin Cadastre-se também na mailing list Powershell Brasil Quer Aprender Powershell?
Meus Artigos na TechNet Wiki
- Editado Matheus Kamphorst sexta-feira, 26 de outubro de 2012 12:57
-
-
Prezados,
Preferi comentar as linhas ao inves de apaga-las.
Segue o script modificado e tambem o resultado do comando userprofile.
Ao execuar o script, nao aparece nenhum erro e tambem nao desinstala o firefox.
Gostaria de saber, como mostrar o valor de uma variavel dentro de um msgbox, para saber o seu conteudo.
'Option Explicit
Dim objWshShell, objFSO, WshEnv, ProgramFiles
'On Error Resume Next
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshEnv = objWshShell.Environment("PROCESS")
UserFiles = objWshShell.ExpandEnvironmentStrings("%userprofile%")
objWshShell.LogEvent 4, "Starting the """ & wscript.ScriptFullName & """ VBScript."
If objFSO.FileExists (UserFiles & "Configurações locais\Dados de aplicativos\Mozilla Firefox\uninstall\helper.exe") Then
objWshShell.LogEvent 4, "Attempting to remove Mozilla Firefox using the """ & wscript.ScriptFullName & """ VBScript."
objWshShell.Run """" & UserFiles & "Configurações locais\Dados de aplicativos\Mozilla Firefox\uninstall\helper.exe"" /S", 1, True
End If
objWshShell.LogEvent 4, "Finished running the """ & wscript.ScriptFullName & """ VBScript."
Wscript.Quit
Sou Livre !
- Editado ricardoclaus sexta-feira, 26 de outubro de 2012 13:32
-
Prezados,
Efetuei algumas pesquisas e modifiquei o script. Mas ainda continua com erro.
Veja o codigo abaixo, onde sinalizei, indico que estou testando o codigo até aqui.
Option Explicit
Dim objWshShell, objFSO, WshEnv, ProgramFiles
'On Error Resume Next
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WshEnv = objWshShell.Environment("PROCESS")
Dim UserFiles
UserFiles = objWshShell.ExpandEnvironmentStrings("%USERPROFILE%")
'get AppdataPath
'set WSHShell = WScript.CreateObject("WScript.Shell")
'Set wshSysEnv = WshEnv.Environment("PROCESS")
Dim AppdataPath, FoxProfilePath
AppdataPath = objWshShell.ExpandEnvironmentStrings("%appdata%")
FoxProfilePath = AppdataPath & "\Mozilla Firefox\uninstall\helper.exe"
msgbox FoxProfilePath
objWshShell.Run " & FoxProfilePath & /S", 1, True
'msgbox objWshShell.Run'ESTOU TESTANDO ATE AQUI
objWshShell.LogEvent 4, "Starting the """ & wscript.ScriptFullName & """ VBScript."
If objFSO.FileExists (UserFiles & "Configurações locais\Dados de aplicativos\Mozilla Firefox\uninstall\helper.exe") Then
objWshShell.LogEvent 4, "Attempting to remove Mozilla Firefox using the """ & wscript.ScriptFullName & """ VBScript."
objWshShell.Run """" & UserFiles & "Configurações locais\Dados de aplicativos\Mozilla Firefox\uninstall\helper.exe"" /S", 1, True
End If
objWshShell.LogEvent 4, "Finished running the """ & wscript.ScriptFullName & """ VBScript."
Wscript.Quit
Sou Livre !
-
-
-
-
Ricardo,
O que vou propor não é muito diferente do que o Matheus já havia pedido. Preciso que vc faça testes.
Logue como administrador e execute o script abaixo:
Set objWshShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") strProgramFiles = objWshShell.ExpandEnvironmentStrings("%PROGRAMFILES%") If objFSO.FileExists (strProgramFiles & "\Mozilla Firefox\uninstall\helper.exe") Then strUninstall = """" & strProgramFiles & "\Mozilla Firefox\uninstall\helper.exe"" /S" objWshShell.Run strUninstall,0,false End If
Qual o resultado? Desinstalou? Deu erro? Qual?
Se funcionou então você tem que configurar este script em uma GPO na diretiva de Script de Inicialização (start up) ou seja , vai ser executado quando o micro for ligado, assim ele vai rodar com a conta System e vai conseguir desinstalar.
Fábio de Paula Junior
-
-
-
Tenta este aqui.
Set objWshShell = WScript.CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") strProgramFiles = objWshShell.ExpandEnvironmentStrings("%PROGRAMFILES%") If objFSO.FileExists (strProgramFiles & "\Mozilla Firefox\uninstall\helper.exe") Then strUninstall = "%ComSpec% /k """ & strProgramFiles & "\Mozilla Firefox\uninstall\helper.exe"" /S" objWshShell.Run strUninstall,1,false End If
Alterei as duas linhas dentro do IF.
Se funcionar faça a seguinte alteração para que a janela do prompt não apareça:
- troque o /k por /c
- e troque também o 1 por 0 na linha do .run
Fábio de Paula Junior
- Marcado como Resposta Fábio JrModerator sexta-feira, 23 de novembro de 2012 11:01
- Não Marcado como Resposta Fábio JrModerator sexta-feira, 23 de novembro de 2012 15:13
- Marcado como Resposta ricardoclaus segunda-feira, 3 de dezembro de 2012 09:58
-
-
-
-
Ricardo,
Com usuário comum não funciona, a melhor forma é colocar numa GPO em uma diretiva de script de inicialização(start up) pois desta forma vai rodar com a conta System. Qualquer outra forma é gambiarra.
Resumo:
São 4 tipos de script, vou listar na ordem que eles são executados.
1-Startup (inicialização), é executado quando a maquina inicia, roda com conta de sistema (seu script funciona)
2-Logon, é executado quando o usuário faz logon, roda com a conta do usuário (seu script não funciona aqui, funciona com o administrador, usuário comum não)
3-Logoff, é executado quando o usuário faz logff, roda com a conta do usuário (seu script não funciona aqui, funciona com o administrador, usuário comum não)
4-Desligamento, é executado quando a maquina é desligada, roda com conta de sistema (seu script funciona)
Observação muito importante:
Scripts de Startup e desligamento devem ser colocadas em OU que contém as contas das máquinas onde o script deve ser executado.
Scripts de Logon e Logoff devem ser colocadas em OUs que contém as contas de usuários.Fábio de Paula Junior
-
Fabio,
Primeiro criei uma OU para testes. Criei uma GPO e coloquei o script no "STARTUP", em "computer configuration", mas não funcionou como admin, nem como usuario comum.
Como admim, através da rede, executei o script diretamente da pasta NETLOGON. O script funciona perfeitamente.
Se preferir, podemos encerrar o topico por aqui, ja que o script funciona perfeitamente.Sou Livre !
-
Não precisa encerrar, uma hora tem que funcionar ou chegar a conclusão que não funciona.
Perguntas:
1) Dentro da OU teste estão as contas de computadores? (pra funcionar tem que ter as contas de computador)
2) Se as contas de computadores estiverem lá logue em uma das máquinas e execute o comando RSOP.msc, verifique se o script foi executado.
Fábio de Paula Junior
-
Não precisa encerrar, uma hora tem que funcionar ou chegar a conclusão que não funciona.
Perguntas:
1) Dentro da OU teste estão as contas de computadores? (pra funcionar tem que ter as contas de computador)
2) Se as contas de computadores estiverem lá logue em uma das máquinas e execute o comando RSOP.msc, verifique se o script foi executado.
Fábio de Paula Junior
-
Não precisa encerrar, uma hora tem que funcionar ou chegar a conclusão que não funciona.
Perguntas:
1) Dentro da OU teste estão as contas de computadores? (pra funcionar tem que ter as contas de computador)
2) Se as contas de computadores estiverem lá logue em uma das máquinas e execute o comando RSOP.msc, verifique se o script foi executado.
Fábio de Paula Junior
-
As maquinas que testei, estão sim dentro desta OU "Teste".
Executei as ferramentas "gpresult" e RsoP.msc. Ambos aparecem que o script foi aplicado.
Sou Livre !
- Editado ricardoclaus sexta-feira, 23 de novembro de 2012 15:11
-
Ricardo,
Tive a oportunidade de testar uma GPO e realmente não funciona. é muito estranho nunca vi algo assim.
Sugestão:
Veja este link, vc pode usar o PSExec pra fazer a desinstalação, vc pode até criar uma lista de máquinas e passar esta lista para o PSEXEC que ele faz em uma por uma.
Remote removal, upgrade and install Firefox across a domain
it.toolbox.com/blogs/locutus/remote-removal-upgrade-and-install-firefox-across-a-domain-17044
Fábio de Paula Junior
-
Fabio
Obrigado pela ajuda. Consegui executar o script via psexec. Tenho alguns scripts que realmente nao funciona em STARTUP.
A linha de comando ficou assim:
psexec -accepteula -e \\%micro% -u dominio\loginADM -p senha wscript.exe %script%
Agradeço seu apoio.
Abraços!
Sou Livre !