gpt4 book ai didi

powershell - Get-AdComputer -filter 参数不接受 Get-Date 输出

转载 作者:行者123 更新时间:2023-12-02 23:47:31 26 4
gpt4 key购买 nike

我在 PowerShell 脚本中偶然发现了一个奇怪的错误,该脚本为我返回特定 OU(和子 OU)中 Active Directory 中的计算机,这些计算机在特定日期内启用并登录。

以下代码段确实有效:

$date = (get-date).AddDays(-100)
Get-ADComputer -Filter {(enabled -eq "true") -and (lastLogonTimestamp -gt $date)} -Properties lastLogonTimestamp -SearchBase "CN=Computers,DC=some,DC=domain,DC=com"

...但是我最初尝试这样做是一行:
Get-ADComputer -Filter {(enabled -eq "true") -and (lastLogonTimestamp -gt  $((get-date).AddDays(-100)))} -Properties lastLogonTimestamp -SearchBase "CN=Computers,DC=some,DC=domain,DC=com"

...但我反复收到以下错误(这让我尝试了上面的两行示例):
Get-ADComputer : Cannot process argument because the value of argument "path" is not valid. Change the value of the "path" argument and run the operation again.
At line:1 char:1
+ Get-ADComputer -Filter {(enabled -eq "true") -and (lastLogonTimestamp -gt $((ge ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-ADComputer], PSArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.Management.Automation.PSArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADComputer

我已经在 Windows 8 和 Windows Server 2008 R2 上运行了该脚本 - 两者都使用 PowerShell v3。我假设两个操作系统上的 RSAT 工具安装的 Active Directory 模块的版本也可能略有不同。

数据方面,我已经得到了我需要的东西,但我很难理解为什么单线器不起作用。 Get-Date 或 Get-AdComputer cmdlet 都不需要参数“path”,但作为尝试,我还确保我的工作目录是 C:。

我很感兴趣是否有人能够提供一些关于为什么会这样的见解 - 我之前在非 ActiveDirectory 模块 cmdlet 中使用过这种类型的语法,所以我倾向于假设因为查询在“过滤器”参数可能会错误地传递给 Get-AdComputer cmdlet 本身(这是我们所有人都必须忍受的东西)。

最佳答案

过滤器组件的右侧必须是一个值,而不是一个表达式。

解决方案(正如您已经发现的那样)是将表达式产生的值分配给一个变量,并在过滤器的右侧使用该变量:

$date = (get-date).AddDays(-100)
Get-ADComputer -Filter {(enabled -eq "true") -and (lastLogonTimestamp -gt $date)} ...

关于powershell - Get-AdComputer -filter 参数不接受 Get-Date 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15246639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com