gpt4 book ai didi

file - VBscript WMI 不定位文件,FSO 做

转载 作者:行者123 更新时间:2023-12-05 03:11:16 24 4
gpt4 key购买 nike

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

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

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

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 Server 2012 R2 上,我以管理员身份运行脚本,文件夹 C:\Weblogic 需要管理员权限。

是否是 WMI 权限问题?有人已经有这个问题了吗?解决方案是什么?

编辑:

感谢您的回答。

遗憾的是,这不起作用。我得到相同的结果。我在同一个脚本上运行 2 方法。我尝试在我的桌面上创建名为 weblogic.jar、weblogic.policy 的测试文件,但 WMI 找不到它们!

也许 WMI 在此服务器上不再正常工作?

这是我的脚本:

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

结果是:

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:...\桌面\"

最佳答案

尝试像这样以管理员权限运行脚本:

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

关于file - VBscript WMI 不定位文件,FSO 做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37588774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com