Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Не хватает прав для выполнения objFile.Attributes (http://forum.oszone.net/showthread.php?t=298882)

csp 24-04-2015 01:53 2499987

Не хватает прав для выполнения 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 в путь до файла?

Iska 24-04-2015 12:02 2500113

csp, если нет прав на смену атрибутов — нет разницы, какой из методов использовать.

Цитата:

Цитата csp
часть кода где уже нашло файл »

Покажите весь Ваш код.

csp 24-04-2015 14:46 2500219

а нет вру, снимает аттрибуты но почему то ошибку выдает, щас минуту перепроверю

ага. вот такой код - работает без проблем

Код:

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

выдает ошибку

Скрытый текст


соответственно я почему то подумал на права, но здесь причина в моей кривости скорее всего.

Iska 24-04-2015 15:19 2500231

Цитата:

Цитата csp
а вот такой … выдает ошибку »

Естественно. Потому что во втором коде «objFile» — это не объект File библиотеки «Scripting.FileSystemObject», а объект «CIM_DataFile» (CIM_DataFile class (Windows) - MSDN - Microsoft) из пространства имён Wbem, у которого атрибуты представляются отдельными булевыми свойствами (Archive, Compressed, Hidden и т.д.), к тому же — только для чтения.

csp 25-04-2015 12:07 2500521

потратил еще пару часов на гугл, и даже нашел ету тему в поиске ... мне нужно скопировать файл, даже если на конечном файле стоит только чтение и скрытый.


Код:

    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.

Время: 12:41.
© OSzone.net 2001-