Я пытаюсь использовать импорт CSV для создания пакетных пользователей, но для этого также для создания домашней папки пользователей и папок профиля, но с одновременными настройками разрешений.
Я нашел много полезной информации в Интернете, я просто не знаю, как заставить синтаксис работать с тем, что у меня уже есть, и мне потребовалось довольно много времени, чтобы даже добраться до него.
Это мой сценарий для создания учетных записей на контроллере домена и последующей их синхронизации с O365. Мы используем CSV, поскольку мы создаем множество пользователей одновременно:
Import-Csv "C:\blablabla\filename.csv" | ForEach-Object {
New-ADUser -Name $_.Name `
-GivenName $_."GivenName" `
-Surname $_."Surname" `
-DisplayName $_."DisplayName" `
-SamAccountName $_."samAccountName" `
-UserPrincipalName $_."UserPrincipalName" `
-Path $_."Path" `
-AccountPassword (ConvertTo-SecureString “Pa$$w0rd” -AsPlainText -force) -Enabled $true `
-EmailAddress $_."EmailAddress" `
-ProfilePath $_."ProfilePath" `
-HomeDrive $_."HomeDrive" `
-HomeDirectory $_."HomeDirectory" `
-ScriptPath $_."ScriptPath" `
-Server $_."Server" `
-OtherAttributes @{ProxyAddresses= $_."ProxyAddresses"} `
}
Start-ADSyncSyncCycle -PolicyType Initial
Все значения указывают на столбцы в файле Excel, которые заполняются автоматически на основе имени и фамилии пользователя.
Я знаю, что я должен создавать домашнюю папку и папки профиля и устанавливать разрешения, как показано ниже, например, я просто не знаю, как заставить синтаксис работать с тем, что у меня уже есть?
Пока значения только правильно устанавливаются в AD, но папки не создаются и разрешения не применяются.
Полагаю, я мог бы просто добавить другую команду для создания новой папки, но я не знаю, как это сделать, добавить ее в команду foreach?
New-Item -ItemType Directory -Path \\dc\userdata
$ACL = (Get-ACL -Path $HomeDirectory)
$FullControlAccessRule = (New-Object System.Security.AccessControl.FileSystemAccessRule([System.Security.Principal.NTAccount]"hcc.local\$UserName","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"))
$ACL.AddAccessRule($FullControlAccessRule)
Set-ACL -Path $HomeDirectory $ACL
Любая помощь будет принята с благодарностью.
Спасибо.
Итак, согласно тому, что сказал NAS, что-то вроде этого тогда
?
-OtherAttributes @{ProxyAddresses= $_."ProxyAddresses"}
New-Item -ItemType Directory -Path $_.HomeDirectory
New-Item -ItemType Directory -Path $_.ProfilePath
$ACL = (Get-ACL -Path $_.HomeDirectory)
$FullControlAccessRule = (New-Object System.Security.AccessControl.FileSystemAccessRule(
[System.Security.Principal.NTAccount]"hcc.local\$($_.samAccountName)",
"FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"))
$ACL.AddAccessRule($FullControlAccessRule)
Set-ACL -Path $_.HomeDirectory $ACL
$ACL = (Get-ACL -Path $_.ProfilePath)
$FullControlAccessRule = (New-Object System.Security.AccessControl.FileSystemAccessRule(
[System.Security.Principal.NTAccount]"hcc.local\$($_.samAccountName)",
"FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"))
$ACL.AddAccessRule($FullControlAccessRule)
Set-ACL -Path $_.ProfilePath $ACL