如何在 PowerShell 中编写脚本以返回所有计算机的列表,这些计算机上次登录 +6 个月前从 Active Directory

问题描述 投票:0回答:0

我需要首先声明:我对 PowerShell 中的脚本编写非常陌生(我参加了 5 次在线课程)! 然而,这并不能阻止我尝试编写脚本。承认:我认为这会更容易! 关于脚本:我想让它执行以下操作:向我提供在过去 6 个月没有 登录的所有计算机的列表。该列表必须来自我工作的公司的Active Directory。 我还希望将此信息导出到 .CSV 文件中。

这是我到目前为止的代码(很多来自谷歌叔叔的帮助):

变量

$domainName = $env:USERDNSDOMAIN
$domainpath = (Get-ADDomain).DistinguishedName
$LastLogonDate = (Get-Date).AddDays(-180)
$allOus = Get-ADOrganizationalUnit -SearchBase $domainpath -searchscope subtree -Filter *

直到这一点它才起作用:我可以返回正确的变量,但是这些变量适用于所有 OU - 例如,我只需要来自 SG_Belgium 的变量(我不确定如何过滤一个 OU 以及在哪里过滤?) - 这个最后一个也有很多其他的 OU 在它下面——我需要脚本来检查计算机,在后期阶段也需要检查用户。

剧本

Get-ADComputer -properties LastLogonTimeStamp -filter {LastLogonTimeStamp -lt $LastLogonDate} -SearchBase "OU=SG_Belgium,OU=YELBL-O,OU=Administration,OU=_disabled objects,OU=Computers,OU=Departments,$domainName" |sort LastLogonTimeStamp | FT Name, @{N='lastlogontimestamp';E={[DateTime]::FromFileTime($_.lastlogontimestamp)}} -Autosize | Export-CSV 'C:\Users\brent.vanderbruggen\OneDrive - Yazaki\Desktop\Scripts\Active Directory\inactive_computers.csv'

但是运行完整的脚本,它总是返回以下错误:

Get-ADComputer:提供的可分辨名称必须属于以下分区之一:'CN=Configuration,DC=yazaki,DC=local,CN=Schema,CN=Configuration,DC=yazaki,DC=local,DC =yel,DC=yazaki,DC=local , DC=ForestDnsZones,DC=yazaki,DC=local , DC=DomainDnsZones,DC=yel,DC=yazaki,DC=local'.

我不知道怎么走?我尝试在 -SearchBase 后面添加 CN=System、CN=Policies、CN=Configuration 和 CN=Schema,但它给出了同样的错误。

欢迎任何帮助/提示,非常感谢!

powershell active-directory powershell-2.0 powershell-3.0 powershell-4.0
© www.soinside.com 2019 - 2024. All rights reserved.