Como conectar a Pasta Doméstica usando o PowerShell

1

Eu tentei criar o usuário usando o cmdlet New-QADUser . Eu sei que esse cmdlet tem o switch -HomeDrive . Mas o problema é que o cmdlet está apenas aplicando caminho string à conta do usuário e não criando o diretório pessoal do usuário no fileserver como acontece quando você usa o console ADUC. Como posso fazer isso corretamente?

    
por Maximus 05.03.2010 / 12:18

3 respostas

2

Código resultante para criar e conectar a unidade inicial ao usuário com $ sam nome da conta sam:

$HomeDir = "<Path>"
$Sam = "<User's Sam Account Name>"
$User = Get-QADUser -SamAccountName "$Sam"
New-Item -Path $HomeDir -Name $Sam -ItemType Directory
$UserDir = "$HomeDir\$Sam"
$Rights = [System.Security.AccessControl.FileSystemRights]::FullControl
$Inherit=[System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$Propogation=[System.Security.AccessControl.PropagationFlags]::None
$Access=[System.Security.AccessControl.AccessControlType]::Allow
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("$Sam",$Rights,$Inherit,$Propogation,$Access)
$ACL = Get-Acl $UserDir
$ACL.AddAccessRule($AccessRule)
Set-Acl $UserDir $ACL 
Set-QADUser -Identity $User -HomeDirectory "$UserDir" -HomeDrive "Z:"
    
por 12.03.2010 / 08:18
2

O script que está criando a conta do usuário também tem acesso administrativo ao servidor de arquivos?

Por que não permitir que o script crie a unidade inicial? exemplo muito simples:

$user = read-host -prompt "Enter Username"
$server = "HOMEDRIVESERVER"
$share = "usershare$"
New-QADUser -name $user etc..
newitem -path \$HOMEDRIVERSERVER.domain.com\$share -name $user -itemtype directory

A única pegadinha aqui é definir as ACLs na pasta, o que poderia ser feito com o set-acl. Um pouco mais informações sobre o ACLS aqui ..

link

O interessante sobre o script dessa maneira é poder exibir o que está fazendo em um arquivo de log para fins de auditoria de script. Obviamente, isso não significa necessariamente que você tenha a simplicidade de 1 passo que o console do MMC faz.

    
por 12.03.2010 / 01:30
1

powershell setfolderpermission.ps1
faça o download em link

Function CreateHomeFolder {
  Param($userinfo)
  $homeserver = '\homeserver'
  $HomeFolderRoot = "\home\'
  Mkdir ($homeserver + $HomeFolderRoot + $userinfo['AccountName'])
}

Function UpdateHomeDirRights2 {
  Param($userinfo)
  $homeserver = '\taz'
  $HomeDrive = "S"
  $HomeFolderRoot = "\home\'
  $HomeDirectory = $homeserver + $HomeFolderRoot + $userinfo[*'AccountName'*]
  ./SetFolderPermission.ps1 -path $HomeDirectory -Access  $userinfo[*'UserPrincipalName'*] -Permission FullControl
}
    
por 04.09.2012 / 16:00