【Windows】ローカルユーザー追加を簡単にするバッチファイル

Windowsの設定画面でユーザーの追加はすることができますが、個人的になんか信用できないし色々設定されているかどうか不安だったので、昔からあるnet userのコマンドを使ったバッチファイルを作成しました。

このコマンドを走らせると、すぐにローカルユーザーの追加をすることができます。1台で複数人と共有するPCで使用すると効率的で便利です。また、管理者権限を付与するかどうかも分岐させています。

一応リモートデスクトップを受けれるように”Remote Desktop Users”にグループを追加していますが、Homeエディションではリモートデスクトップを受けることができないので、あまり意味ないのかもしれません。状況に応じて改変してお使いください。

バッチファイル注意事項

  • net userコマンドをバッチファイルにて自動化したものになります。
  • 管理者権限無しで起動すると強制的に管理者権限に昇格するようにしています。
  • バッチファイルを保存する際は必ずANSIShift JISで保存してください。
    • それで保存しないと文字化けしてしまい正常に動作しない可能性があります。
  • バッチファイル内でパラメーターを使用しています。
  • Windowsでは、net userコマンドでユーザーを作成した場合、パスワードの有効期限が42日とデフォルトで構成されています。設定されたパスワードが有効期限切れにならないように無期限になるようなコマンドも入っています。
  • バッチファイルを走らせた後、作成したアカウントにログインをしてください。
    • 初回ログインを走らせないとユーザープロファイルが作成されていない状態になります。

動作イメージ

バッチファイル動作

バッチファイル動作後

コマンドでユーザーの状況を確認した結果

net user ユーザー名で、設定したユーザーの状況を確認することができます。

この画面からパスワードが無期限になっていることが確認できます。

ログイン画面

設定したユーザー名のフルネームが表示され、ログインができるようになります。

コンピューターの管理

設定したユーザー名が追加されています。なお、この画面からでもユーザーを作成することができ、パスワード無期限の設定もすることができます。

ユーザープロファイルの所属するグループ

”Administartor”に追加すると管理者権限を付与します。

また、”Remote Desktop Users”に追加すると設定したPCのユーザーへのリモートデスクトップ接続させる権限を付与します。

バッチファイル内容

@echo off 
rem 管理者権限強制昇格
cd /d %~dp0
openfiles > nul

if "%1"=="" (
set arg=
) else (
set arg= -ArgumentList "%1"
)
if errorlevel 1 (
   PowerShell.exe -Command Start-Process \"%~f0\"%arg% -Verb runas
   exit
)

echo ユーザーの追加を開始します。

set User_name=
set /p User_name=ユーザー名を指定してください:

set User_Pass=
set /p User_Pass=ユーザーのパスワードを入力してください:

set fullname=
set /p fullname=フルネームを指定してください:

:start01
set admin=
set /p admin=管理者権限を付与しますか?(Y=YES / N=NO):

if not defined admin (
    echo 値を指定してください。
    goto start01
)

if /i "%admin%"=="Y" (
    echo 管理者権限を付与します。
    set admin=net localgroup Administrators %User_name% /add > nul
    set admin_echo="はい"
) else (
    echo 一般ユーザーで設定します。
    set admin=""
    set admin_echo="いいえ"
)

echo;
echo 設定ユーザー名:%User_name%
echo 設定パスワード:%User_Pass%
echo フルネーム:%fullname%
echo 管理者権限:%admin_echo%
echo;
 
set User_set=
set /p User_set=上記の通り設定します。よろしいですか?(Y=YES / N=NO):

if /i "%User_set%"=="y" (
    rem ユーザーの追加
    net user %User_name% %User_Pass% /add > nul

    rem フルネーム(表示名の追加)
    net user %User_name% /fullname:"%fullname%" > nul

    rem ローカルグループ"remote Desktop Users"を割り当てる
    net localgroup "remote Desktop Users" %User_name% /add > nul

    rem 管理者権限の付与分岐のパラメーター
    %admin% > nul

    rem netuserで追加したパスワードは有効期限がデフォルト42日で設定されているので無期限に設定する
    wmic UserAccount where "Name='%User_name%'" set PasswordExpires=False > nul

  ) else (
    echo 設定をキャンセルしました。
    goto User_set_end 
) 

echo ユーザーの追加が完了しました。
echo 設定したユーザーにログインしてユーザープロファイルを生成してください。

:User_set_end

pause

この記事が役に立ったと思ったらなにかいただけると嬉しいです。

https://amzn.to/2ZX1ToW

 

ブログランキングクリックお願いします!


女装(ノンアダルト)ランキング


パソコンランキング

コメント

タイトルとURLをコピーしました