Definindo o Diretório Inicial para usuários recém-adicionados

2

Estou escrevendo um script do Powershell para fazer uma versão completa do Windows 7. Eu tenho uma função que adiciona os usuários que eu preciso, mas não define o Home Directory, o que faz uma seção posterior do meu script (definindo os desktops dos usuários) falhar porque os diretórios "não existem" ainda.

Aqui está a parte principal da função:

 [CmdletBinding()] 
 Param( 
  [Parameter(Position=0, 
      Mandatory=$True, 
      ValueFromPipeline=$True)] 
  [string]$userName, 
  [Parameter(Position=1, 
      Mandatory=$True, 
      ValueFromPipeline=$True)] 
  [string]$password, 
  [string]$computerName = $env:ComputerName, 
  [string]$description = "Created by PowerShell" 
 ) 
 $computer = [ADSI]"WinNT://$computerName" 
 $user = $computer.Create("User", $userName) 
 $user.setpassword($password) 
 $user.put("description",$description)  
 $user.SetInfo() 
} #end function New-LocalUser 

Existe algum lugar para adicionar algo parecido com $ user.put ("HomePath", "\ Users \ automotive \ Desktop") por exemplo, para que ele não quebre a parte posterior do meu roteiro.

Aqui está o código que estou usando no meu script Users.cmd:

Aqui está o código no meu arquivo .cmd:

SETLOCAL 

SET Profile=C:\Users
SET user=cars
SET password=cars

SET PSEXEC="C:\Program Files\SysinternalsSuite\PsExec.exe" 
SET wmic=%windir%\System32\Wbem\WMIC

FOR /F "tokens=2* delims= " %%I IN ('REG QUERY ^"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList^" /v ProfilesDirectory^|find /i ^"ProfilesDirectory^"') DO (SET ProfilesDirectory=%%J) 
@echo ProfilesDirectory: %ProfilesDirectory% 

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory /t REG_SZ /d "%Profile%" /f
REG ADD "HKCU\Software\Systinternals\PsExec" /v EulaAccepted /t REG_DWORD /d 1 /f

NET USER /add %user% %password% /comment:"Account for User" /expires:never /homedir:%Profile%\%user% 
NET LOCALGROUP Administrators /add %user%
%PSEXEC% -h -u %user% -p %password% "%wmic% QUIT"

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory /t REG_SZ /d "%ProfilesDirectory%" /f

Eu o chamo com este comando, seguido pelos meus comandos para criar o novo Desktop.

\Windows\System32\cmd /c c:\Users\Administrator\Desktop\Users.cmd -wait

Remove-Item \Users\cars\Desktop -recurse -force
Copy-Item E:\"Desktop Cars" C:\Users\cars Desktop -recurse

Os comandos do DOS são executados até que cheguem a

%PSEXEC% -h -u %user% -p %password% "%wmic% QUIT"

Isso é seguido por tudo isso em vermelho antes de chegar ao comando final REG ADD -

C:\>"C:\Program Files\SysinternalsSuite\PsExec.exe"  -h -u cars -p cars "C:\Windows\System32\Wbem\WMIC QUIT" 
cmd.exe : 
At C:\Users\Administrator\Desktop\Desktops.ps1:3 char:22
+ \Windows\System32\cmd <<<<  /c c:\Users\Administrator\Desktop\Users.cmd -wait
+ CategoryInfo          : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com


The system cannot find the file specified.

Connecting to local system...Starting PsExec service on local system...Connecting with PsExec service on ccm2756...Starting C:\Windows\
System32\Wbem\WMIC QUIT on ccm2756...
PsExec could not start C:\Windows\System32\Wbem\WMIC QUIT on ccm2756:

Depois disso, ele adicionou a conta e os comandos para alterar o trabalho da área de trabalho, mas os arquivos da área de trabalho do usuário estão "em uso" até que eu reinicie o sistema.

    
por BigRedEO 12.08.2013 / 19:00

1 resposta

1

Adicione o usuário e defina o Diretório base no local:

NET USER UserName DerParol /add /comment:"Account for User" /expires:never /homedir:C\Acc\UserName

Adicione o usuário ao grupo Administradores local.

NET LOCALGROUP Administrators /add UserName

PSexec parte do Sysinternals Suite

Criar um perfil de usuário

proinit.cmd:

@ECHO OFF
SETLOCAL

SET Profile=C:\Acc
SET user=Troll
SET password=DerParol

SET PSEXEC="C:\Program Files\SysinternalsSuite\PSEXEC"
SET wmic=%windir%\system32\wbem\wmic

FOR /F "tokens=2* delims= " %%I IN ('REG QUERY ^"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList^" /v ProfilesDirectory^|find /i ^"ProfilesDirectory^"') DO (
SET ProfilesDirectory=%%J)
@echo ProfilesDirectory: %ProfilesDirectory%

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory /t REG_SZ /d "%Profile%" /f
REG ADD "HKCU\Software\Sysinternals\PsExec" /v EulaAccepted /t REG_DWORD /d 1 /f

NET USER /add %user% %password% /comment:"Account for User" /expires:never /homedir:%Profile%\%user% /profilepath:%Profile%\%user%
NET LOCALGROUP Administrators /add %user%
%PSEXEC% -h -u %user% -p %password% "%wmic% QUIT"

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory /t REG_SZ /d "%ProfilesDirectory%" /f

Domínio,use:dsadduser

@ECHOOFF@SETuser=UserName@SETpassword=DerParole@SETpwdSet=-canchpwdyes-pwdneverexpiresyes::-mustchpwdyes@SETaccSet=-disabledno-acctexpiresnever-upn%user%@%USERDNSDOMAIN%-samid%user%@SETdirSet=-profile\SERV\Acc\%user%-hmdrvR:-hmdir\SERV\Acc\%user%-loscrenver.cmd@SETBrand=-office"Grand-1" -company TT -dept HT -title MegaUser
@SET locSet=-tel 914-55-04-42 -email %user%II@%USERDNSDOMAIN% -webpg %user%.%USERDNSDOMAIN% 
@SET callIn=-hometel 9-slip-010-292 -pager 1022 -mobile "8(777) 101-44-22" -fax "977-101-44-22" -iptel 6002
@SET nameSt=-fn User -ln Name -mi "U.N." -display "UserName II"
@SET Description=-desc "Account for User"

::@SET cmSet=@ECHO dsadd user
@SET cmSet=dsadd user

@For /F %%a In ('dsquery * -filter "(objectCategory=domain)"') Do @SET dc=%%a

@SET dn="cn=%user%,cn=users,%dc:~1%
::@SET grpSet=-memberof "cn=ResourceGroup,cn=users,%dc:~1%

%cmSet% -pwd %password% %dn% %pwdSet% %accSet% %dirSet% %Brand% %locSet% %callIn% %nameSt% %Description% -uc

dsquery *  -filter "(samAccountName=%user%)" -attr * | more

script em lote de teste do usuário dsadd:

ImportaçãoemmassadeCSVDE.

Consulte: Guia passo-a-passo para importação e exportação em massa para o Active Directory

    
por 12.08.2013 / 20:18