Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Создание папок и подпапок из csv

Ответить
Настройки темы
PowerShell - [решено] Создание папок и подпапок из csv

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Начал изучение PowerShell и пока есть трудности.

Задача стоит следующая
нужно на сетевом хранилище создать много папок по названию отдела с двумя подпапками одинакового названия (общая и отдел).
список отделов и названия папок буду брать из файлика csv
форма файлика примерно такая

name; subshare; subpersonal
руководство; общая; отдел
огэ; общая; отдел

Помогите осуществить.

Отправлено: 10:29, 10-07-2012

 

Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Import-Csv folders.csv -Delimiter ";" | 
	Foreach {md "\\server\share\$($_.name)\$($_.subshare)","\\server\share\$($_.name)\$($_.subpersonal)"}
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:34, 10-07-2012 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 280
Благодарности: 72

Профиль | Отправить PM | Цитировать


Ну в принципе тоже самое
Код: Выделить весь код
$folders = Import-Csv Folders.csv -Delimiter ";"
Foreach ($folder in $folders) {
New-Item -Path "\\server\$($folder.name)\$($folder.subpersonal)" -type "directory"
New-Item -Path "\\server\$($folder.name)\$($folder.subshare)" -type "directory"
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:05, 10-07-2012 | #3


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


большое спасибо!

Решил не много усложнить.
Как теперь связать это с АД, т.е. на папку name дать доступ на чтение всем в АД, на папку subshare доступ для все на чтение и запись и на папку subpersonal доступ только определенной группе или пользователю.

Отправлено: 02:50, 11-07-2012 | #4


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$everyone = [Security.Principal.SecurityIdentifier]"S-1-1-0"
$group = [Security.Principal.NTAccount]"contoso\MyGroup"

$rread = New-Object Security.AccessControl.FileSystemAccessRule($everyone,"Read","ContainerInherit,ObjectInherit","None", "Allow")
$rwrite = New-Object Security.AccessControl.FileSystemAccessRule($everyone,"Write","ContainerInherit,ObjectInherit","None","Allow")
$rgmod = New-Object Security.AccessControl.FileSystemAccessRule($group,"Modify","ContainerInherit,ObjectInherit","None","Allow")

$share = "\\server\share"

Import-Csv folders.csv -Delimiter ";" | 
	Foreach {
		$sub = "$share\$($_.name)\$($_.subshare)"
		$per = "$share\$($_.name)\$($_.subpersonal)"
		if(md $sub,$per)
		{
			$acl = Get-Acl "$share\$($_.name)"
			$acl.AddAccessRule($rread) | Out-Null
			$acl | Set-Acl "$share\$($_.name)" 
			$acl = Get-Acl $sub
			$acl.AddAccessRule($rwrite) | Out-Null
			$acl | Set-Acl $sub 
			$acl = Get-Acl $per 
			$acl.SetAccessRuleProtection($true,$false)
			$acl.AddAccessRule($rgmod) | Out-Null
			$acl | Set-Acl $per 
		}
	}

Последний раз редактировалось Kazun, 11-07-2012 в 10:10.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:05, 11-07-2012 | #5


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Только дошли руки до этого скрипта.
начал им пользоваться. А как сделать так что бы папка name расшаривалась?

Отправлено: 09:30, 20-07-2012 | #6


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


и еще заметил что на папку subshare права безопасности наследуют, а на папку subpersonal нет. как можно сделать наследованные права.

Отправлено: 09:50, 20-07-2012 | #7


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


$acl.SetAccessRuleProtection($true,$false) - убрать снятие наследования

Как расшарить - http://blog.wadmin.ru/2012/07/powershell-manage-shares/

Лично по мне,так проще воспользоваться утилитой net share /?
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:54, 20-07-2012 | #8


Пользователь


Сообщения: 60
Благодарности: 3

Профиль | Отправить PM | Цитировать


вопрос смежной тематики
Дали скрипт
Код: Выделить весь код
Get-Content file.txt | ForEach-Object {New-Item $_ -type file -force}
он по строчкам из текстового файла создает файлы

меняю file на directory, а папки не хочет создавать
Код: Выделить весь код
Get-Content file.txt | ForEach-Object {New-Item $_ -type directory -force}
http://joxi.ru/L21lGz4CbDDKmX

ЧЯДНТ?

Отправлено: 16:31, 26-02-2017 | #9


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата cepbl4:
ЧЯДНТ? »
Забыли предварительно удалить только что созданные одноимённые файлы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:16, 26-02-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Создание папок и подпапок из csv

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Создание папок из txt файла nineline Скриптовые языки администрирования Windows 41 22-01-2021 14:54
Любой язык - Создание в имени папки с подкаталогами подпись с размером этих папок и подпапок 750IL Скриптовые языки администрирования Windows 11 17-10-2011 09:34
VBS/WSH/JS - Создание папок исходя из имени хоста.Создание ярлыков. ufunf Скриптовые языки администрирования Windows 1 18-02-2010 13:59
CMD/BAT - [решено] Скачивание папок и подпапок с FTP Essential_mix Скриптовые языки администрирования Windows 1 16-01-2010 04:51
Разное - Создание НЕСТАНДАРТНЫХ ПАПОК. belohortvladimir Microsoft Windows 2000/XP 7 03-12-2008 22:04




 
Переход