powershell - Get-ADComputer 找不到主机名,但我可以手动找到它
问题描述
所以我有一个永远有效的脚本,我从来没有看过它。然而,它突然停止了工作。当我尝试使用 Get-ADComputer cmdlet 在 AD 中搜索主机名时,它返回以下错误消息:
Get-ADComputer:在“DC=domain,DC=name,DC=edu”下找不到具有身份的对象:“主机名”
即使我尝试基本的Get-ADComputer hostname
,它也会返回相同的错误消息。但是,如果我自己打开 AD 并搜索主机名,我会发现它很好。AD 和 Powershell 之间似乎存在某种脱节。
有其他人遇到过基本 PS cmdlet 无法正常工作的情况吗?
解决方案
弄清楚了。我有"$ComputerName"
什么时候应该$ComputerName
没有引号。不知道为什么我需要搜索“类似”计算机名而不是名称本身的东西,但它确实有效。最终脚本看起来像:
Param(
[Parameter(Mandatory=$True)]
[string]$ComputerName
)
echo ""
echo ""
$Properties =
@(
'CanonicalName',
'Enabled',
'Created',
'LastLogonDate',
'IPv4Address',
'OperatingSystem',
'OperatingSystemServicePack',
'OperatingSystemVersion'
)
Get-ADComputer -Filter 'Name -like $ComputerName' -Properties $Properties | select $Properties```
推荐阅读
- python - 添加到整数的数组形式 - 如何显示完整结果?
- windows - 如何在 Nginx 上配置虚拟主机(在 Windows 上)
- php - PHP从循环中保存增量变量
- ios - 请求访问照片库提示停留在后台
- visual-studio - 使用 vsperfmon 获取在 IIS 中运行的 REST 服务的代码覆盖率
- mysql - SELECT JOIN 与条件 (OR) 交叉
- r - 对行中的单元格进行排序以匹配 R 中的相应列标题
- javascript - 有一种方法可以在 v3 中重新获取 fullcalendar 吗?
- asp.net-core - 异常时 Serilog 更改日志级别
- php - Symfony4 上的 Gandi + SwiftMailer