首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBscript WMI不定位文件,FSO定位文件

VBscript WMI不定位文件,FSO定位文件
EN

Stack Overflow用户
提问于 2016-06-02 10:07:09
回答 1查看 495关注 0票数 3

我有两个文件weblogic.jar和weblogic.policy在C:\Weblogic\wlserver\server\lib中。使用第一个方法,脚本找到它们并显示文件的名称:

代码语言:javascript
复制
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Weblogic\wlserver\server\lib")
Set colFiles = objFolder.Files
For Each objFile in colFiles
    If(StrComp(objFile.Name, "weblogic.jar", 1) = 0 OR StrComp(objFile.Name, "weblogic.policy", 1) = 0) Then
        Wscript.Echo objFile.Name, objFile.Size
    End If
Next

当我尝试在CIM_DataFile中使用WMI时,脚本在同一个文件夹中找不到任何文件(但是在其他文件夹中找到了一些文件):

代码语言:javascript
复制
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFiles = objWMIService.ExecQuery ("Select Name from CIM_DataFile where FileName = 'weblogic'",, 48)
For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next

我在Windows 2012 R2上,我以管理员身份运行脚本,文件夹C:\Weblogic需要管理员权限。

这是WMI特权问题吗?有人已经有这个问题了?解决办法是什么?

编辑:

谢谢你的回答。

遗憾的是,这行不通。我也得到了同样的结果。我在同一个脚本上运行2方法。我试图在我的桌面上创建名为weblogic.jar,weblogic.policy,.的测试文件。而WMI却找不到他们!

也许WMI在这个服务器上不再正常工作了?

这是我的剧本:

代码语言:javascript
复制
If Not WScript.Arguments.Named.Exists("elevate") Then
    Wscript.Echo "Run"
  CreateObject("Shell.Application").ShellExecute WScript.FullName _
    , WScript.ScriptFullName & " /elevate", "", "runas", 1
  WScript.Quit
End If

Set objFSO=CreateObject("Scripting.FileSystemObject")

outFile="C:\test.txt"
Set objFileLog = objFSO.CreateTextFile(outFile,True)

objFileLog.Write "Scripting.FileSystemObject :" & vbCrLf
Set objFolder = objFSO.GetFolder("C:\Weblogic\wlserver\server\lib")
Set colFiles = objFolder.Files
For Each objFile in colFiles
    If(StrComp(objFile.Name, "weblogic.jar", 1) = 0 OR StrComp(objFile.Name, "weblogic.policy", 1) = 0) Then
        Wscript.Echo objFile.Name, objFile.Size
        objFileLog.Write "  " & objFile.Path & " " & objFile.Size & vbCrLf
    End If
Next

objFileLog.Write "winmgmts :" & vbCrLf
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colFiles = objWMIService.ExecQuery ("Select Name from CIM_DataFile where FileName = 'weblogic'",, 48)
For Each objFile in colFiles
    Wscript.Echo objFile.Name
    objFileLog.Write "  " & objFile.Name & vbCrLf
Next

objFileLog.Close

结果是:

代码语言:javascript
复制
Scripting.FileSystemObject :
    C:\Weblogic\wlserver\server\lib\weblogic.jar 5541
    C:\Weblogic\wlserver\server\lib\weblogic.policy 30888
winmgmts :
    c:\oracle\...\templates\wlserver\server\lib\weblogic.policy
    c:\oracle\...\wlserver\server\lib\weblogic.policy
    c:\oracle\...\sample\config\wls\web-inf\weblogic.xml

我在文件夹中没有WMI的weblogic文件:"C:\Weblogic\wlserver\server\lib\“”C:.\Desktop\“

EN

回答 1

Stack Overflow用户

发布于 2016-06-02 10:33:55

尝试使用以下方式运行具有管理权限的脚本:

代码语言:javascript
复制
If Not WScript.Arguments.Named.Exists("elevate") Then
  CreateObject("Shell.Application").ShellExecute WScript.FullName _
    , WScript.ScriptFullName & " /elevate", "", "runas", 1
  WScript.Quit
End If
'Your code goes here 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37588774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档