質問: $computer.create("user", $username) $user.setpassword($password) $user.put("description",$description) $user.setinfo() } #end function new-localuser $ user.put( "homepath"、 "\ users\automotive\desktop")に似たものを追加する場所はありますか?たとえば、スクリプトの後半部分が壊れないようにするためです。 。users.cmdスクリプトで使用しているコードは次のとおりです。.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 このコマンドで呼び出し、続いて新しいデスクトップを作成するコマンドで呼び出します。\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 dosコマンドは、次のようになるまで正常に実行されます。%psexec% -h -u %user% -p %password% "%wmic% quit" その後、最後の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: その後、アカウントとデスクトップを変更するコマンドが追加されましたが、システムを再起動するまで、ユーザーのデスクトップのファイルは「使用中」です。
回答: ユーザーを追加し、ローカルにホームディレクトリを設定します。net user username derparol /add /comment:"account for user" /expires:never /homedir:c\acc\username ローカルのadministratorsグループにユーザーを追加します。net localgroup administrators /add username psexecの一部 sysinternals suite ユーザープロファイルを作成し、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 ドメイン、使用:dsadd user@echo off @set user=username @set password=derparole @set pwdset=-canchpwd yes -pwdneverexpires yes ::-mustchpwd yes @set accset=-disabled no -acctexpires never -upn %user%@%userdnsdomain% -samid %user% @set dirset=-profile \\serv\acc\%user% -hmdrv r: -hmdir \\serv\acc\%user% -loscr enver.cmd @set brand=-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 dsaddユーザーテストバッチスクリプト:csvdeの一括インポート。参照: active directoryへの一括インポートおよびエクスポートのステップバイステップガイド