Windows PowerShell でドメインコンピュータの名前を変更する方法 - TechRepublic

Windows PowerShell でドメインコンピュータの名前を変更する方法 - TechRepublic

出版

デレク・ショーランドの画像

アフィリエイトリンクまたはスポンサーシップを通じて、ベンダーから収益を得る場合があります。これにより、サイト上の商品配置が影響を受ける可能性がありますが、レビューの内容には影響しません。詳細は利用規約をご覧ください。

PowerShellを使えば、コンピューター名の変更といった日常的な作業にかかる時間を短縮できます。以下に、おすすめのコマンドをいくつかご紹介します。

Active Directory環境では、コンピュータ名の変更が必要になる場合があります。多くの管理者は、長年にわたり、コントロールパネルのシステムアプレットを使用してこの問題を解決してきました。最近まで、コンピュータ名の変更に実際に必要な作業についてはあまり考えていませんでした。一般的な手順は次のとおりです。

  1. ワークステーションにログオンします。
  2. コントロール パネルにアクセスします。
  3. システムアプレットを開きます。
  4. PC 名またはドメイン メンバーシップを変更するには、変更オプションを選択します。
  5. 新しいコンピューター名を指定します。
  6. 変更を保存するには、[OK] をクリックします。
  7. メイン プロパティ ダイアログで [OK] をクリックします。
  8. コンピュータを再起動します。

コンピュータの起動時に発生する処理の数にもよりますが、この方法(またはWindows GUI経由)では2~5分ほどかかる場合があります。1台のコンピュータであれば許容範囲内かもしれませんが、複数のコンピュータの場合はすぐに非常に面倒な作業になる可能性があります。特に、これらの変更を行うためにコンピュータまで出向く必要がある場合はなおさらです。

WindowsPowerShellを入力する

Windows PowerShell は非常に便利な管理者ツールです。ローカルマシンを離れることなく、数多くの Windows 機能を実行するためのコマンドが用意されています。Active Directory や Exchange などのツールを追加すると、PowerShell の機能は限界まで拡張されます。今回は、PowerShell を使用してコンピューターの名前を変更します。rename-computer コマンドレットを使用してこれを行う方法は次のとおりです。

Rename-computer –computername “computer” –newname “newcomputername” –domaincredential domain\user –force –restart

このコマンドレットを実行する際、 –computernameに現在のコンピューター名、 –newname に新しいコンピューター名を指定し、 –domaincredentialパラメータには Active Directory でこの機能を実行する権限を持つユーザーアカウントを指定します。–forceパラメータを指定すると変更が確実に適用され、–restart パラメータを指定すると変更後にコンピューターが強制的に再起動されます。これはコンピューター名を変更する際に依然として必須です。

これは画面を使って名前を変更するのと同じくらいの手間に思えるかもしれませんが、たとえ1台のマシンであっても、はるかに速いことを保証します。最近これを試してみたところ、操作を完了するためにログオンする必要がなく、コマンドが完了するとすぐにコンピューターが再起動しました。名前を変更したクライアントが目の前にいなかったので、名前が変更されるかどうかを確認するためにオフィスを横切ったときには、システムは既に–restartスイッチの指示通りにシャットダウンしていました。

これが本当に便利なのは、複数のコンピューターの名前を変更する必要がある場合です。コマンドレット自体もそれほど変更はありませんが、最も大きな違いは –computername と –newname パラメータの処理方法です。例えば、複数のコンピューターでこれを動作させるには、次のようにします。

[更新:この例は、ループ エラーが含まれていた以前のバージョンを修正するために変更されていることに注意してください。 ]

$computers = Get-adcomputer | where {$_.name –like “sales-*”}

$num = 0

Foreach($computer 内の $computer)

{

For($num=1;$num –lt $computers.count;$num++)

{

Rename-computer –computername $computer –newname “s-$num” –domaincredential domain\user –force –restart

}

newnameパラメータは、基本的に同じ名前を1ずつ増やしてコンピューターの総数まで増やすため、この方法を使えばコンピューターの名前変更もかなり迅速に行えます。PCを頻繁に切り替える環境でない限り、computernameとnewnameを指定した単一のコマンドレットを使用するのが最も効果的でしょう。

この問題に対処する方法は他にもたくさんありますが、項目を順に処理するにはリストやループ処理が必要になるでしょう。Active Directoryから既存のシステム名を取得するなど、別の方法でコンピューターリストを作成することもできます。

:Rename-computerコマンドレットに--whatifスイッチを追加すると、実際にコマンドを実行した場合の動作が表示されます。これにより、実際にコンピューター名を変更することなく、パフォーマンスを把握できます。

PowerShell のその他のヒント:

  • クイックヒント: 簡単にアクセスできる PowerShell 3.0 ヘルプ システムを作成する
  • Active Directory からユーザー情報を取得するための 2 つの PowerShell スクリプト
  • Windows PowerShell でできる 10 の便利な機能
  • Exchange メールボックスの統計情報: PowerShell 入門

PowerShellは、Windows管理者の日常的なツール群に加えるのに最適な、非常に強力で便利なツールです。PowerShellを使えば、従来のコントロールパネルを使った方法よりもはるかに速くコンピューターの名前を変更できます。名前を変更するコンピューターの数が増えれば増えるほど、PowerShellに任せるメリットは大きくなります。

記事をシェア
デレク・ショーランドの画像

デレク・ショーランド

Derekは、AzureとGoogle Cloudの専門知識を持つベテランのクラウドエンジニアです。製造業のITマネージャーからコンサルタントまで、幅広い職務を歴任し、幅広い視点を業務に活かしています。Windows、PowerShell、Azure認定資格に関する3冊の書籍を執筆し、TechRepublicなどの出版物にも寄稿しています。ファイル システム ストレージおよびクラウド/データセンター管理の分野でMicrosoft MVP(2008~2018年)を受賞した経験を持つ彼は、知識の共有と技術専門性の向上に情熱を注いでいます。

Tagged: