当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?

作者:精品下载站 日期:2024-12-14 20:08:59 浏览:16 分类:玩电脑

Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?


Set-ADComputer cmdlet 允许您更改 Active Directory 中计算机帐户对象的属性。在本文中,我们将展示如何使用 Set-ADComputer cmdlet 将当前登录的用户名和 IP 地址添加到 AD 中的计算机属性。当您需要在域中查找特定用户登录的计算机时,此 PowerShell 脚本可能很有用。

使用 Set-ADComputer 更改 Active Directory 中的计算机属性

Set-ADComputer cmdlet 是 PowerShell Active Directory 模块的一部分。必须安装此模块(作为 RSAT 的一部分)并将其导入到您的 PowerShell 会话中。让我们看看如何使用 Set-ADComputer cmdlet 更新计算机帐户属性。

让我们尝试将您的公司和部门名称添加到 AD 中的计算机属性中。首先,使用 Get-ADComputer cmdlet 检查域计算机的公司、部门和描述字段中指定的内容。

Get-ADComputer lon-man01 -properties *|select-object dNSHostName,operatingSystem,company,department, description|ft -wrap -auto

[玩转系统] Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?

正如您所看到的,该计算机对象的“描述”、“公司”和“部门”字段为空。

让我们尝试使用以下命令更改计算机描述:

Set-ADComputer -Identity LON-MAN01 -Add @{"description"="Infrastructure management server"}

您可以指定计算机位置:

Set-ADComputer -Identity LON-MAN01 -Location “UK/London”

如果要设置多个计算机参数,请使用以下 PowerShell 代码:

$Server = Get-ADComputer -Identity LON-MAN01
$Server.company = "Woshub"
$Server.department = "IT"
Set-ADComputer -Instance $Server

确保计算机属性已更改:

Get-ADComputer LON-MAN01 -properties *|select-object dNSHostName,operatingSystem,company,department, description|ft -wrap -auto

[玩转系统] Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?

正如你所看到的,计算机属性包含了我们需要的信息。然后我们就可以根据这些属性值来选择AD中的计算机了。例如,我想查找 Woshub 公司 IT 部门的所有计算机。根据这些条件查找所有计算机的 PS 命令可能如下所示:

Get-ADComputer -Filter {(company -eq 'Woshub') -and (department -like 'IT')} -properties *|select-object dNSHostName,operatingSystem,company,department, description|ft -wrap -auto

Set-ADComputer cmdlet 还允许您禁用/启用 AD 中的计算机对象帐户:

Set-ADComputer lon-pc-h1221 -Enabled $false

[玩转系统] Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?

如何将登录用户名添加到AD计算机属性中?

让我们考虑一个使用 Set-ADComputer 的更有趣和有用的示例。假设您决定将当前计算机的 IP 地址和上次登录用户的名称写入 Active Directory 中每台计算机的属性中。

我们将使用 description 属性来存储计算机的 IP 地址,并使用 ManagedBy 属性来存储当前登录此计算机的用户名。

首先,您必须为包含用户计算机的 OU 上的域用户组(或其他用户安全组)委派特定的 AD 权限。允许用户更改计算机对象的以下字段的值:管理者和描述(授予写入描述写入管理者权限)。

[玩转系统] Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?

然后创建一个新的组策略,其中包含要在用户登录计算机时运行的以下 PowerShell 登录脚本(用户配置 -> 策略 -> Windows 设置 -> 脚本 -> 登录):

$curhostname=$env:computername
$env:HostIP = (
Get-NetIPConfiguration |
Where-Object {
$_.IPv4DefaultGateway -ne $null -and
$_.NetAdapter.Status -ne "Disconnected"
}
).IPv4Address.IPAddress
$currus_cn=(get-aduser $env:UserName -properties *).DistinguishedName
$ADComp = Get-ADComputer -Identity $curhostname
$ADComp.ManagedBy = $currus_cn
$ADComp.description = $env:HostIP
Set-ADComputer -Instance $ADComp

此 PowerShell 脚本在用户帐户下运行,并检测当前计算机的 IP 地址和当前用户 CanonicalName (CN)。然后脚本将此数据写入 AD 中的计算机帐户对象。

此脚本要求在用户计算机上安装 RSAT-AD-PowerShell 模块。但是有一种方法可以在不安装 RSAT 的情况下部署 PowerShell ActiveDirectory 模块。

您必须将此 GPO 链接到具有计算机的 OU,并启用策略配置用户组策略环回处理模式(查看文章)。

现在,当用户登录到计算机时,将运行登录 PowerShell 脚本并更新 AD 中的计算机描述。

您可以在 Active Directory 用户和计算机 (ADUC) 控制台中检查计算机的 IP 地址。计算机属性的管理者选项卡包含指向上次登录此计算机的用户帐户的活动链接。

[玩转系统] Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?

现在您可以通过IP地址快速找到域中的计算机:

get-adcomputer -filter {description -like "192.168.15.*"} -properties *|select name,description,managedBy

或者您可以查找特定用户登录的域中的所有计算机(Get-ADUser 用于获取用户 DistinguishedName):

$user='a.adams'
$user_cn=(get-aduser $user -properties *).DistinguishedName
Get-ADComputer -Filter "ManagedBy -eq '$user_cn'" -properties *|select name,description,managedBy|ft

[玩转系统] Set-ADComputer:如何更改 AD 计算机属性并添加记录的用户信息?

以同样的方式,您可以将有关工作站或用户的任何信息保存到 AD 中的计算机帐户属性中,并使用它来搜索 AD 中的计算机。

本文考虑了在 Active Directory 计算机对象属性中存储有关服务器型号和序列号的信息的类似方案。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯