リモートでWindows 7コンピューターの名前を変更する方法を理解するのに苦労しています。これは、vSphere 5環境でWin 7ビルドを自動化するためのものです。これまでのところ、マシン名の変更以外はすべて自動化(または自動化)することができました。
WinRMが機能しているため、リモートのPowerShellメソッドが機能します。
invoke-command -computername "W7-Img3-RPT49VA" -scriptblock {commands go here; have another one}
上記は機能します。ディレクトリ一覧の取得やコマンドの実行などを行うことができます。ただし、ドメインを変更しても機能しません。 このSFの質問 に従って、スクリプトブロックで次のことを試しました。
$comp=get-wmiobject -class computersystem ; $comp.rename("W7-clone-42")
これはReturnValue : 5
を返します。これは、多くの検索の結果、「アクセス拒否」に変換されます。そのページの他の提案:
wmic computersystem rename "W7-Clone-42"
役に立たない「無効な動詞スイッチ」を返します。別のインターネットソースは次の公式を提案します:
wmic computersystem where Name="W7-Img3-RPT49VA" call rename name="W7-clone-42"
これにより、無効な動詞スイッチ、または無効なパラメーターが交互に表示されます。テストとして、上記のコマンドをinvoke-command
経由ではなく管理ステーションで直接実行し、アクセスも拒否されました。
古い学校に行って、私はnetdomをターゲットマシンにコピーしました。
netdom renamecomputer W7-Img3-RPT49VA /newname:W7-clone-42
これにより、「アクセスが拒否されました」。
このすべてを通して、私がテストしてきた資格情報にはDomain Adminがあります。その目的は、実行可能なメソッドを特定したら、正確なプライバシーを下げることです。ターゲットマシンのセキュリティイベントログには、これらすべてのログインが成功したことが確実に示されます。
VSphereシステムのカスタマイズプロセスで名前変更を処理する別の方法は、引き続き使用できます。そのための応答ファイルもありますが、テンプレートマシンを使用できるように準備する方法がわかりません。どちらの方法でも必要なものが手に入ります。
何が欠けていますか? wmic
構文は明らかに間違っていますが、他の2つのメソッドは「アクセス拒否」を返します。そのため、正しい構文が完成したら、それが機能することを期待できません。これはUACの相互作用の問題ですか?
私はいつもnetdom renamecomputer
メソッドを使用して、実行しようとしていることを正確に実行できます。 Windows Vistaおよび7では、同じ「アクセス拒否」エラーが発生します。ただし、UserD
およびPasswordD
スイッチを使用すると、これを回避できます。
netdom renamecomputer W7Img3-RPT49VA /newname:W7-clone-42 /UserD:DOMAIN\username /PasswordD:*
これによりパスワードの入力が求められ、「アクセス拒否」エラーなしで機能します。昇格されたトークンと関係があると思いますが、よくわかりません。
管理者特権のプロンプトでWMICコマンドを実行する必要があります。また、現在または新しいコンピューター名にダッシュがある場合は、二重引用符で囲む必要があります。
PSEXECを使用して管理者特権のコマンドプロンプトを起動し、WMICコマンドに渡して、次のようにコンピューター名を変更できます。
psexec \\ current-pcname -h -u domain\domainadminuser cmd/c wmic computersystem where name = "current-pcname" [call] rename name = "new-pcname"
最初に起こることは、PSEXECがdomainadminuserのパスワードを要求することです-PSEXECに-pスイッチを使用してコマンドに入力することができます-しかし、これはより安全です。動詞 'call'は、このWMICコマンドではオプションです。最後に、WMICとPSEXECの両方が「0」コードを返した後、PCを再起動する必要があります-SHUTDOWNコマンドを使用するだけです。