Создание нового профиля для пользователя рекламы

#powershell #active-directory

Вопрос:

Я создаю сценарий, в котором создается новый пользователь рекламы. Я также хочу дать ему Профиль и Домашний путь. Но я всегда получаю ошибку, когда запускаю эту часть, когда пытаюсь создать новый профиль и Домашний путь. Это мой сценарий:

 $StandardPath = "\192.168.1.32Users"
$ProfilePath = “\192.168.1.32Users$($Username)"
$HomePath = “\192.168.1Users$($Username)Home"

New-Item -path $StandardPath -Name $Username -ItemType Directory -force
Set-ADUser $Username -ProfilePath $ProfilePath
New-Item -path $Profilepath -Name "Home" -ItemType Directory -force
Set-ADUser $Username -HomeDrive $driveLetter -HomeDirectory $HomePath
 

И вот в чем Ошибка:

 New-Item : The path is not of a legal form.
At C:UsersewzadminDesktopAddADUsers.ps1:47 char:9
          New-Item -path $StandardPath -Name $Username -ItemType Direct ...
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      CategoryInfo          : InvalidArgument: (\192.168.1.32Users:String) [New-Item], ArgumentException
      FullyQualifiedErrorId : CreateDirectoryArgumentError,Microsoft.PowerShell.Commands.NewItemCommand
 

Кто-нибудь может мне помочь?

Комментарии:

1. Вы не забыли о приводе в стандартном пути$? "\192.168.1.32$driveLetterUsers" ? P.S. лучше не использовать (в данном случае смешивать) фигурные кавычки и всегда использовать вместо них прямые кавычки. Также убедитесь, что ваша переменная $Username не содержит недопустимых символов имени папки

2. Боже, да, ты прав насчет приводного устройства, я совсем забыл об этом.

3. Не забывайте, что общие папки с административными буквами дисков также имеют суффикс $ «а».

Ответ №1:

У тебя тут кое — что происходит:

  • Вам необходимо указать имя общего ресурса в пути UNC между именем сервера и путем общего доступа. Административные общие ресурсы автоматически создаются для подключенного хранилища по умолчанию (например, для C: ), а буква диска имеет суффикс a $ .
    • Вам не нужно избегать $ , так как процесс не будет проанализирован как часть имени переменной
  • Вы забыли последний октет IP-адреса при настройке $HomePath
  • Хотя это не проблема, мы можем использовать $StandardPath переменную для построения двух других
  • Оба New-Item вызова могут опустить -Name параметр, так как у вас есть пути к каталогу, указанные в -Path переменной. Использование -Name параметра приведет к созданию другого каталога в указанном каталоге , в -Path котором уже будут созданы все отсутствующие каталоги.
  • Вы также можете просто использовать $ProfilePath для создания $Username каталога, так как путь совпадает с $StandardPath$Username
  • Вам не нужно использовать $($Username) для расширения одну переменную. Вы можете полностью опустить оператор под-выражения $() .

Приведенные ниже исправления должны сработать для вас:

Внимание: Если вам необходимо использовать перемещаемые профили, создайте их резервную копию с помощью DFS или, по крайней мере, соответствующего устройства хранения, а не CIFS общего ресурса с одного сервера. Также не используйте IP-адрес, используйте NetBIOS DNS , или FQDN имя в UNC пути. Если этот сервер выйдет из строя или IP-адрес изменится, у вашего пользователя в этой системе возникнут проблемы с неправильной синхронизацией профиля, а перемещаемые профили могут быть непостоянными, когда дело доходит до проблем с синхронизацией.

 $StandardPath = "\192.168.1.32$driveletter$Users"
$ProfilePath = "$StandardPath$Username"
$HomePath = “$ProfilePathHome"

New-Item -Path $ProfilePath -ItemType Directory -Force
Set-ADUser $Username -ProfilePath $ProfilePath
New-Item -Path $ProfilePath -ItemType Directory -Force
Set-ADUser $Username -HomeDrive $driveLetter -HomeDirectory $HomePath