none
域环境下:删除用户电脑上的病毒文件? RRS feed

  • 问题

  •  

    域环境下:删除用户电脑上的病毒文件?

     

    strComputer = "."                                                                                        

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

    Set colFileList = objWMIService.ExecQuery _                                              
        ("ASSOCIATORS OF {Win32_Directory.Name='c:\'} Where " _                   
            & "ResultClass = CIM_DataFile")                                                        

    For Each objFile In colFileList                                                                     
        If InStr(objFile.FileName, "gemini") Then                                                   
            objFile.Delete                                                                                     
        End If                                                                                                    
     Next                                                                                                         

     

     

    大家好.

         在此感谢MS脚本专家的帮忙. 以上的例子确实帮助了我们;

         比如,最近发现一病毒,会自动在C盘创建...EXE  ....EXE  好的,我们用以上VBS 加载到DC的策略中,用户刷新策略时都将被应用,能拥有此效果.

    Win32_Directory.Name='c:\'       这是路径                 

           objFile.FileName, "sorrytlask") 这是病毒文件名称

     

           OK,虽是实现了.但现在我们大家能否发挥它的更重要作用之处?来完成以下回答?谢谢?                 

           1.能否更改路径为所有磁盘驱动器? 包括U盘?  这样假如一个新病毒的出现,不止在C盘的情况下.    

           2.能否加载文件的类型,比如SORRY.EXE SORRY.TXT SORRY.RAR这样的命令脚本?                      

           3.能否加载多项要删除的文件?比如123.EXE  456.EXE  789.EXE这样的话, 这一组病毒都将被删除?

     

     

           感谢大家能利用例子,继续发挥.然后保存为VBS,测试一下,

          同时也希望更多人能给予帮助.在此感谢.                         

    2008年10月23日 9:26

答案

  • Code Snippet

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile")
    For Each objFile in colFiles
     If InStr(objFile.FileName, "TEST") Then
    Wscript.Echo objFile.FileName

    END IF
    Next

     

     

    找出所有文件名包含TEST的
    2008年10月30日 1:31
    版主
  • 很感谢楼主。本贴到此结束,请查看下列测试结果:

         strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile")
    For Each objFile in colFiles
     If InStr(objFile.FileName, "ok123")Then
            objFile.Delete


    END IF
    Next
        

        请将文件名替换为你要找的文件名。默认全部路径查找。 感觉速度有点慢, 它先删除最深文件夹内的,时间为2分钟,最后2分钟删除根目录下的。如C:、   一共需要4分钟,只是测试结果。还好。分享给大家。

       


    2008年10月30日 2:08

全部回复

  • Code Snippet
    "Select * From Win32_LogicalDisk"

     

     

    得到所有磁盘

     

    判断objFile.FileName删除需要的文件

    2008年10月23日 10:27
    版主
  •  

    可是我试了.加在其中,还是报错,能帮一下加在哪个位置么?感谢
    2008年10月24日 0:56
  • 具体代码

    2008年10月24日 5:32
    版主
  • strComputer = "."

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

    Set colFileList = objWMIService.ExecQuery _
        ("ASSOCIATORS OF {Win32_Directory.Name='c:\drivers'} Where " _
            & "ResultClass = CIM_DataFile")

    For Each objFile In colFileList
        If InStr(objFile.FileName, "gemini") Then
            objFile.Delete
        End If
    Next

     

     

    怎么实现 这个代码下的所有盘.以及是 文件的类型可否包含?  如 gemini.exe  

    2008年10月24日 5:42
  • 或者来说:

        不管在哪盘哪个文件下面.

       只要有包含gemini的文件,删除.....................

     

       感谢帮助

    2008年10月24日 6:24
  • 具体代码

     

    其实我也想知道……

    麻烦版主了把具体代码列出来,也好学习学习~~

    谢谢了~

    2008年10月27日 1:41
  • 唉.本来都快成功的代码了.版主也不共享给大家了.

         遗憾.希望其它朋友能携手再做下研究.

         我用一小段代码,最后实现了删除各个盘的文件,但是只能在2003 系统下运行成功.

        


    2008年10月29日 0:09
  • Code Snippet

     

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile")
    For Each objFile in colFiles
     If InStr(objFile.FileName, "TEST") Then
    Wscript.Echo objFile.FileName

    END IF
    Next

     

     

    找出所有文件名包含TEST的
    2008年10月30日 1:31
    版主
  • 很感谢楼主。本贴到此结束,请查看下列测试结果:

         strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile")
    For Each objFile in colFiles
     If InStr(objFile.FileName, "ok123")Then
            objFile.Delete


    END IF
    Next
        

        请将文件名替换为你要找的文件名。默认全部路径查找。 感觉速度有点慢, 它先删除最深文件夹内的,时间为2分钟,最后2分钟删除根目录下的。如C:、   一共需要4分钟,只是测试结果。还好。分享给大家。

       


    2008年10月30日 2:08
  • 很感谢楼主。本贴到此结束,请查看下列测试结果:

         strComputer = "."
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile")
    For Each objFile in colFiles
     If InStr(objFile.FileName, "ok123")Then
            objFile.Delete


    END IF
    Next

        请将文件名替换为你要找的文件名。默认全部路径查找。 感觉速度有点慢, 它先删除最深文件夹内的,时间为2分钟,最后2分钟删除根目录下的。如C:、   一共需要4分钟,只是测试结果。还好。分享给大家。

        爱伟

    很抱歉,没有确实懂这段解释,又找了上来,麻烦版主再帮忙看一眼。

    没明白的地方有:
    一、只找C盘?不能全盘查找?只搜索本地磁盘,不带网络磁盘。
    二、只要包含ok123的文件都会被删除?例如有个文件名叫book1239.txt的也会被删除?能否让其只删除文件名叫ok123的?就算是ok123.exe也不能被删除。
    三、文件名能不能多加几个?例如要同时删除ok123.exe和yes333.bat的文件,该如何写?
    四、为何我在测试这段代码时根本就没有效果?必须在2003下执行吗?我另存为了.vbs执行的,不知道对不对。
    2010年9月30日 17:00