Active Directoryにコンピュータの説明を自動的に入力する方法は?
ActiveDirectoryのコンピュータオブジェクトの説明にさまざまな有用な情報を保存できます。たとえば、コンピューターモデル、ハードウェアインベントリ、または最後にログオンしたユーザー名に関する情報。この記事では、説明の情報を自動的に入力して更新する方法について説明します。 PowerShellを使用したActiveDirectory内のコンピューターオブジェクトのフィールド。
たとえば、Active Directoryユーザーとコンピューターコンソールのコンピューターとサーバーの[説明]フィールドに、コンピューターの製造元、モデル、およびシリアル番号に関する情報を表示する必要があります。次のPowerShellコマンドを使用して、WMIからローカルマシンでこの情報を取得できます。
Get-WMIObject Win32_ComputerSystemProduct | Select Vendor, Name, IdentifyingNumber
WMIクエリは次のデータを返します:
- ベンダー– HP
- 名前– Proliant DL 360 G5
- IdentificationNumber – CZJ733xxxx
環境変数から現在のコンピューターの名前を取得し、それを$computer
に割り当てます。 変数:
$computer = $env:COMPUTERNAME
次に、コンピューターのハードウェアに関する情報を保存します。
$computerinfo= Get-WMIObject Win32_ComputerSystemProduct
$Vendor = $computerinfo.vendor
$Model = $computerinfo.Name
$SerialNumber = $computerinfo.identifyingNumber
変数に割り当てられている値を見てみましょう:
$computer
$vendor
$Model
$SerialNumber
受信したデータをActiveDirectoryのコンピューターアカウントの[説明]フィールドに書き込む必要があります。次のPowerShellスクリプトを実行します:
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
$ComputerSearcher.SearchRoot = "LDAP://$("DC=$(($ENV:USERDNSDOMAIN).Replace(".",",DC="))")"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Description", "$vendor|$Model|$SerialNumber" )
$computerObj.SetInfo()
Set-ADComputer $computer –Description "$vendor|$Model|$SerialNumber”
AD PowerShellモジュールのコマンドレットを使用する場合は、RSATをインストールせずにモジュールファイルをすべてのコンピューターにコピーできます。
ADUCコンソールのコンピューターの説明フィールドにメーカーとモデルの情報が表示されていることを確認します。
このようなスクリプトは、ADの現在のコンピューターの説明属性のみを更新します。 Get-ADComputerとforeach
を使用して、すべてのドメインコンピューターの説明をリモートで入力できます。 ループ。ただし、ユーザーがログインしたとき、またはコンピューターが起動したときに、コンピューターにADの情報を自動的に更新させる方がはるかに便利です。
これを行うには、PowerShellログオンスクリプトを使用してグループポリシーを作成し、それをすべてのコンピューターに適用する必要があります。
- ドメイングループポリシー管理コンソール(
gpmc.msc
)を開きます )、GPOを作成し、コンピューターを使用してOUに割り当てます。 - GPOを拡張します:ユーザー構成->ポリシー-> Windows設定->スクリプト(ログオン/ログオフ)->ログオン;
- PowerShellスクリプトに移動します タブ;
- ファイルを表示をクリックします ボタンをクリックして、 FillCompDesc.ps1を作成します 次のコードを含むファイル:
# write information about the computer hardware/model in the Description field in Active Directory
$computer = $env:COMPUTERNAME
$computerinfo= Get-WMIObject Win32_ComputerSystemProduct
$Vendor = $computerinfo.vendor
$Model = $computerinfo.Name
$SerialNumber = $computerinfo.identifyingNumber
$DNSDOMAIN= (Get-WmiObject -Namespace root\cimv2 -Class Win32_ComputerSystem).Domain
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
$ComputerSearcher.SearchRoot = "LDAP://$("DC=$(($DNSDOMAIN).Replace(".",",DC="))")"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Description", "$vendor|$Model|$SerialNumber" )
$computerObj.SetInfo()
オプションで、PowerShellスクリプトアクションをログに記録して、トラブルシューティングを容易にすることができます。 - 追加をクリックします ボタンをクリックして、次のスクリプトパラメータを設定します。
スクリプト名:FillCompDesc.ps1
スクリプトパラメータ:-ExecutionPolicy Bypass
この場合、PowerShell実行ポリシー設定を変更したり、PS1スクリプトファイルに署名したりする必要はありません。 PowerShellスクリプトを実行します。 - 認証済みの特定のOUにAD権限を委任します ユーザー ドメイングループ。 OU内のすべてのコンピューターオブジェクトのDescription属性を変更する権限を割り当てます(
Write Description
許可)。これにより、ドメインユーザーとコンピューターは、コンピューターオブジェクトのDescription属性の値を変更できます。 - ターゲットOUでコンピューターを再起動し、グループポリシー設定を更新すると、ADの[説明]フィールドに自動的に入力されます。このフィールドには、コンピューターのハードウェアに関する情報が含まれます。
gpresult
を使用してGPOのトラブルシューティングを行うことができます ツールまたは記事のヒントの使用グループポリシーが適用されない原因となる一般的な問題。
したがって、ADのコンピュータオブジェクトの[説明]フィールドに任意の情報を追加できます。たとえば、最後にログオンしたユーザーの名前、部門(Get-ADUserコマンドレットを使用してこの情報を取得できます)、コンピューターのIPアドレス、またはその他の必要な関連情報。
注 。このアプローチの欠点は、認証されたADユーザーが、ActiveDirectory内の任意のコンピューターの説明を変更または削除できることです。ADのコンピューターの説明に最後にログオンしたユーザー名を追加する
上記のPowerShellスクリプトを使用して、ADのコンピューターオブジェクトの説明に他の情報を追加できます。たとえば、コンピューターの説明に現在ログオンしているユーザーが表示されている場合に便利です。また、ユーザーが認証されているドメインコントローラーの名前を追加しましょう(LOGONSERVER
。
PowerShellログオンスクリプトの1行を次のように変更します。
$computerObj.Put("Description","$vendor|$Model|$SerialNumber|$env:username|$env:LOGONSERVER")
ユーザーアカウントでログオフしてサインインします。コンピューターの説明属性に、現在のユーザーの名前と、認証したログオンサーバー(ドメインコントローラー)が表示されていることを確認します。
Description属性のデータを解析するには、次のPowerShellコードを使用できます。
$ComputerName = 'PC-MUN22s7b2'
$vendor,$Model,$SerialNumber,$Username,$LogonServer = ((Get-ADComputer -identity $ComputerName -Properties *).description).split("|")
説明フィールドの値を分割します( | で区切られます) )いくつかの別々の変数に。指定したリモートコンピューターでユーザー名を取得するには、次のコマンドを実行します。
$Username
次のPowerShellスクリプトを使用して、特定のユーザーが現在ログオンしているコンピューターの名前を取得できます。
$user='*M.Becker*'
Get-ADComputer -Filter "description -like '$user'" -properties *|select name,description |ft
-
Windows 10 で Active Directory を有効にする方法
Active Directory は Windows Server Technical Preview を管理します。管理者が権限を付与し、ネットワーク上のリソースにアクセスするために使用するツールです。デフォルトでは、Windows PC にはインストールされません。ただし、Microsoft の公式 Web サイトからオンラインで入手して、デバイスにインストールすることができます。 Windows 10 で Active Directory を使用する方法について混乱していますか?答えが「はい」の場合、この記事は Windows 10 で Active Directory を有効にする方法
-
インターネットはどのように話すか
コミュニケーションの物語 インターネットが実際にどのように話すのか疑問に思ったことはありませんか?あるコンピューターは、インターネットを介して別のコンピューターとどのように「会話」しますか? 人々が互いにコミュニケーションをとるとき、一見意味のある文章にまとめられた単語を使用します。これらの文の意味について合意したからこそ、これらの文は意味を成します。いわば、通信のプロトコルを定義しました。 結局のところ、コンピューターはインターネットを介して同様の方法で互いに通信します。しかし、私たちは先を行っています。人は口を使ってコミュニケーションをとります。まず、コンピューターの口が何であるかを