Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
1 / 1 / 0
Регистрация: 29.03.2013
Сообщений: 181

Копирование файлов, изменение прав

04.03.2017, 16:02. Показов 4052. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На компьютере повреждено хранилище компонентов. задача: взять из логов имя поврежденных файлов, скопировать файлы с нормального компьютера. При этом изменить права доступа и владельца.

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

у microsoft есть справка:
Note: Before placing the files in the appropriate locations, you may need to grant yourself permissions to edit the folder’s contents; below is a quick guide on how to achieve this.
At an elevated command prompt: takeown /f <Path_And_File_Name>
Example: takeown /f C:\Windows\winsxs\ x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6 000.16386_none_abfb5fd109dad8b8
Now grant full access to the file: icacls <Path_And_File_Name> /grant Administrators:F
Example: icacls C:\Windows\winsxs\x86_microsoft-windows-ie-adminkitmostfiles_31bf3856ad364e35_6.0.6 000.16386_none_abfb5fd109dad8b8 /grant Administrators:F
Now replace the file with a known good copy: <Copy Path_And_File_Name_Of_Source_File Path_And_File_Name_Of_Destination>
Example: copy C:\Temp\admparse.dll c:\Windows\winsxs\x86_microsoft-windows-ieadminkitmostfiles_31bf3856ad364e35_6.0 .6000.16386_none_abfb5fd109dad8b8\admpar se.dll

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cls
$flag = $false
$sourcePC = "\\good-pc"
$destPC = "\\bad-pc"
$log=get-content $($destPC + "\admin$\Logs\CBS\CheckSUR.log")
$COMPONENTSource = $sourcePC + "\admin$\winsxs"
$COMPONENTDest = $destpc + "\admin$\winsxs"
 
foreach ($line in $log) { 
    if ($line -eq "Summary:") {exit}    
    if ($flag -eq $True){
        if ($line.trim().Length -ne 0) {    
            $fileArray=$($line.Split("`t"))
            $file = $FileArray[$FileArray.Length-2]
            
            Copy-Item -filter $FileArray[$FileArray.Length-3] -path $($COMPONENTSource+$file) -recurse -destination $($COMPONENTDest)
 
}
    }
    if ($line -eq "Checking Component Store") {$flag = $true}    
  
 
}
Вложения
Тип файла: log CheckSUR.log (5.7 Кб, 4 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2017, 16:02
Ответы с готовыми решениями:

Изменение прав доступа для папки
Доброго дня . подскажите, возможно не до конца понял функцию назначения прав в Моем случае, в корне диска С: есть папка Temp ...

Создание папки и изменение прав доступа к ней
Здравствуйте! Пытаюсь реализовать создание одноимённой папки пользователя при его (пользователя) создании, изменение её владельца и...

Возвращение прав доступа на создание файлов и папок и изменение различных параметров
Добрый день! Наша организация пытается оправиться от эпидемии майнеров и другой гадости. Все серверы сейчас вроде бы чисты, но на...

4
1 / 1 / 0
Регистрация: 29.03.2013
Сообщений: 181
05.03.2017, 02:03  [ТС]
1. как сменить владельца не на текущего пользователя, а на локального администратора? строка 16
2. как задать разрешения ntfs для локального администратора, а не доменных? строка 18

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
cls
$flag = $false
$sourcePC = "\\good-pc"
$destPC = "\\bad-pc"
$log=get-content $($destPC + "\admin$\Logs\CBS\CheckSUR.log")
$COMPONENTSource = $sourcePC + "\admin$\winsxs"
$COMPONENTDest = $destpc + "\admin$\temp\checksur\winsxs"
 
foreach ($line in $log) { 
    if ($line -eq "Summary:") {exit}    
    if ($flag -eq $True){
        if ($line.trim().Length -ne 0) {    
            $fileArray=$($line.Split("`t"))
            $file = $FileArray[$FileArray.Length-2]
 
takeown /S $destPC /F $($COMPONENTDest+$file) /R
            $acl = Get-ACL -Path $($COMPONENTDest+$file)
            $Rule=new-object System.Security.AccessControl.FileSystemAccessRule "sk13\администраторы домена","Read,Delete","ContainerInherit", "None","allow"
            $acl.AddAccessRule($Rule)
            Set-Acl -Path $($COMPONENTDest+$file) -AclObject $acl
 
  Write-Warning $("Copying " + $($COMPONENTSource+$FileArray[$FileArray.Length-2]+""+$FileArray[$FileArray.Length-3])+" to " + $COMPONENTDest+$file)
  Copy-Item -filter $FileArray[$FileArray.Length-3] -path $($COMPONENTSource+$file) -recurse -destination $($COMPONENTDest)
 
}
    }
    if ($line -eq "Checking Component Store") {$flag = $true}    
 }
0
6 / 6 / 0
Регистрация: 04.03.2017
Сообщений: 23
05.03.2017, 15:05
16: icacls "путь" /setowner "нужный пользователь" /t /c
18: вместо "sk13\администраторы домена" написать "bad-pc\Администратор"

наверное так?
0
1 / 1 / 0
Регистрация: 29.03.2013
Сообщений: 181
05.03.2017, 15:59  [ТС]
16. сопоставление не было произведено
18. пишет, что пользователь не распознан в контексте

назначение - удаленный комп.
0
6 / 6 / 0
Регистрация: 04.03.2017
Сообщений: 23
05.03.2017, 18:38
Извиняюсь, проверить сейчас негде, но вот такой вариант для строки 16:
Invoke-Command -ComputerName bad-pc -ScriptBlock {icacls ("c:\windows\winsxs"+$file) /setowner "bad-pc\%username%" /t /c}

по такой же схеме можно сделать и на 18 строке

Добавлено через 7 минут
Invoke-Command -ComputerName bad-pc -ScriptBlock {icacls ("c:\windows\winsxs"+$file) /setowner "bad-pc\%username%" /t /c}

Добавлено через 15 секунд
Invoke-Command -ComputerName bad-pc -ScriptBlock {icacls ("c:\windows\winsxs"+$file) /setowner "bad-pc\%username%" /t /c}

Добавлено через 22 секунды
почему то форум сьедает один слэш после winsxs
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2017, 18:38
Помогаю со студенческими работами здесь

Копирование: Ввод имени папки и копирование из нее файлов
Доброго времени суток! Реально ли реализовать подобное с помощью bat ? Знаю, что можно создать папку с именем, которое можно задать. ...

Изменение прав доступа
Windows XP. Точнее - Alkid Live CD. При попытке загрузки некоторого файла (попытка смены тем оформления) ОС сообщает &quot;Не удалось...

Изменение прав доступа к директории
У меня есть вопрос. Есть ли какая-то команда которая позволяет менять права доступа? мне нужно что бы директория...

Копирование файлов из одной папки в другую, но с пропуском одинаковых файлов в этих папках
Доброго времени суток. Прошу помощи в написании батника. Задача: Есть папка А с файлами 1,2,3 и папка Б с этими же файлами 1,2 и 3. ...

Копирование файлов из разных каталогов в каталоги с именами, соответствующими номерам в именах файлов
Добрый день! Помогите решить проблему. Есть семь папок (cam_1, cam_2, cam_3 и.т.д) с фотографиями (cam_1_00052.JPG, cam_1_00053.JPG,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru