こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Win7でコンピュータ名変更を自動で

windows 7 のコンピュータ名を割り当てたいのですが、
台数が100台ほどあるため、自動化の方法を考えています。

クローニングによりイメージコピーされたホスト名を個別に変更するための
方法として考えているため、すべての処理を自動で行う必要があります。
(ボタンのクリックなどは難しい)

コンピュータ名の候補はMACアドレスから自動的に生成できたのですが、
変更がうまく行きません。

vbs で記述していたのですが、プロンプトから実行すると次の処理でret に 0が戻ります。
(手写したので、typo があれば無視してください)

Set objWMI = GetObject("Winmgmts:root\cimv2")

For Each objPC in objWMI.InstancesOf("Win32_ComputerSystem")
ret = objPC.rename("test2", "passwd", "uid")
Next

uid は管理者権限の ログインID で、passwd はそのパスワードです。
なお、管理者権限のコマンドプロンプトを開いて実行すると、正しく動作しました。


利用する言語は、WSH をと考えていますが、C#, VB, C++ であれば、何でもOKです。
ヒントだけでも構いませんので、アドバイスをお願い致します。

投稿日時 - 2011-08-10 14:46:03

QNo.6933904

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

>なお、管理者権限のコマンドプロンプトを開いて実行すると、正しく動作しました。

ということは、そのスクリプトを実行するためには管理者権限のあるユーザーにて昇格された権限で実行しなければならないというだけのような気がします。
(コンピュータ名の変更なんで当然だろうと思います)

つまり権限のある状態で実行すればいいということになると思います。
そのため、Sysprepの応答ファイルでスクリプトを実行するようにしたらどうでしょうか。

参考サイト
http://blogs.technet.com/b/askcorejp/archive/2010/05/28/sysprep.aspx

質問内容の認識に間違いがありましたらご了承ください。

投稿日時 - 2011-08-10 16:10:09

ANo.1

WSH だけでできますよ。

CreateObject("Shell.Application").ShellExecute "wscript.exe", _
Chr(34) & "ホスト名を変えるスクリプトのパス" & Chr(34), _
"", "runas", 1

2つのスクリプトでの実行になりますが、
特定のスクリプトを管理者権限で実行させることができます。

ネットを探すと、1つのスクリプトで処理させるトリッキーなやり方なども紹介されています。
たとえば、実行権限が管理者モードでなければ「自分自身を」管理者モードで起動する などです。

質問者さんもある程度知識ある方とお見受けしますので、
この回答だけで十分でしょうか。

投稿日時 - 2011-08-10 15:51:22

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-