今回は、ローカルユーザの名前を変更する方法について調べた。
通常GUIでやろうとすると、lusrmgr.mscと打ってローカルユーザとコンピュータの管理を開いて、
ユーザを選択し、右クリック > 名前の変更 というようにおこなう。
これをPowerShellで簡単にできないものか。
はじめはレジストリをPowerShellで書き換えるのかと思い、
下記の記事などを参考にしてみたが、記事に書いてあるレジストリの項目が見当たらず断念。
レジストリからコンピュータ名、ユーザー名を変更する方法 - Blog型メモ帳 - Yahoo!ブログ
http://blogs.yahoo.co.jp/genewhite0/17294286.html
ハウツー解説: Windows XP をインストールすると、名前と会社名の変更について
http://support.microsoft.com/kb/310441/ja
並行して、PowerShellのポケットリファレンスを読みながら、
そのようなコマンドが無いか調べたが、載って無かった。
(ホスト名を変更するコマンドは載っていた)
Amazon.co.jp: 【改訂新版】 Windows PowerShell ポケットリファレンス: 牟田口 大介: 本
http://www.amazon.co.jp/dp/477415542X/
net userコマンドでできないかと思ったが、ユーザ名の変更はできないようだ。
あと環境変数を変えたりもしてみたが、ユーザ名の変更はできなかった。
その後、しばらくネットで検索するも、なかなか見つからずに居たが、
ようやく下記の記事を見つける。
[WMI Class] Win32_UserAccount クラス - WMI Library
http://www.wmifun.net/library/win32_useraccount.html
WMIというというコンポーネントを利用すると、
ローカルユーザの情報を得ることができるらしい。
さらにRenameというメソッドで名前の変更が可能。
さらにこのクラス名で検索すると、下記のような英語の記事が出てきた。
Server Hardening with PowerShell Part 1: Local Users | halfwaytoinfinite
http://halfwaytoinfinite.wordpress.com/2013/03/24/server-hardening-with-powershell-part-1-local-users/
Powershells script to Re-name Local Guest & Administrator Account? - Stack Overflow
http://stackoverflow.com/questions/5188917/powershells-script-to-re-name-local-guest-administrator-account
ということで最終的に下記のようなスクリプトで変更できた!
$user = Get-WmiObject -Class win32_useraccount -Filter “name='oldname’”次回以降、引き続きPowerShellを用いた設定方法について調べていきたい。
$user.Rename(“newname”)
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。