Не хватает прав для выполнения objFile.Attributes
как используя wmi сбросить аттрибуты?
часть кода где уже нашло файл
Код:
For Each objFile In colFiles
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFile.Attributes = 0
Next
и вот objFile.Attributes = 0 выдает что нету прав. Я уверен что вызов shell.run с attrib -r -s -h сделает дело но к сожалению не знаю как юзнуть здесь
надо чтото типа
Код:
Set objShell = CreateObject("Wscript.Shell")
strCommand = "attrib -r -s -h objFile"
Set objExec = objShell.Exec(strCommand)
Do Until objExec.Status
Wscript.Sleep 250
Loop
Wscript.Echo objExec.StdOut.ReadAll()
как раскрыть objFile в путь до файла?
|
csp, если нет прав на смену атрибутов — нет разницы, какой из методов использовать.
Цитата:
Цитата csp
часть кода где уже нашло файл »
|
Покажите весь Ваш код.
|
а нет вру, снимает аттрибуты но почему то ошибку выдает, щас минуту перепроверю
ага. вот такой код - работает без проблем
Код:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\Users\HP\Desktop\activate_prog.dll")
objFile.Attributes = 0
а вот такой
Код:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * From CIM_DataFile Where Drive = 'C:' AND FileName = 'activate_prog' AND Extension = 'dll'")
For Each objFile In colFiles
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFile.Attributes = 0
objFSO.CopyFile "C:\Users\HP\Desktop\2.dll", objFile
Next
выдает ошибку
соответственно я почему то подумал на права, но здесь причина в моей кривости скорее всего.
|
Цитата:
Цитата csp
а вот такой … выдает ошибку »
|
Естественно. Потому что во втором коде «objFile» — это не объект File библиотеки «Scripting.FileSystemObject», а объект «CIM_DataFile» ( CIM_DataFile class (Windows) - MSDN - Microsoft) из пространства имён Wbem, у которого атрибуты представляются отдельными булевыми свойствами (Archive, Compressed, Hidden и т.д.), к тому же — только для чтения.
|
потратил еще пару часов на гугл, и даже нашел ету тему в поиске ... мне нужно скопировать файл, даже если на конечном файле стоит только чтение и скрытый.
Код:
objFile.Copy("C:\Users\HP\Desktop\2.dll")
такое не перезапишет,
Цитата:
CIM_DataFile has no concept of a "working directory." Second, the Copy() method cannot be used to overwrite an existing file
|
а альтернатив я не знаю,
Код:
object.CopyFile "C:\Users\HP\Desktop\2.dll", objFile, true
тоже не катит здесь как метод.
|
Время: 12:41.
© OSzone.net 2001-