プロが教える店舗&オフィスのセキュリティ対策術

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です。
ヒントだけでも構いませんので、アドバイスをお願い致します。

A 回答 (2件)

WSH だけでできますよ。



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

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

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

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

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



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

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

参考サイト
http://blogs.technet.com/b/askcorejp/archive/201 …

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!