我正在尝试修改此PowerShell脚本,以允许从文本或CSV文件输入用户。我已经直接从Tim Rhymer提取了脚本。
这是原始脚本:
Import-Module ActiveDirectory
function Get-ADUsersLastLogon() {
$dcs = Get-ADDomainController -Filter {Name -like "*"}
$users = Get-ADUser -Filter *
$time = 0
$exportFilePath = "c:lastLogon.csv"
$columns = "name,username,datetime"
Out-File -FilePath $exportFilePath -Force -InputObject $columns
foreach ($user in $users) {
foreach ($dc in $dcs) {
$hostname = $dc.HostName
$currentUser = Get-ADUser $user.SamAccountName | Get-ADObject -Server $hostname -Properties lastLogon
if ($currentUser.LastLogon -gt $time) {
$time = $currentUser.LastLogon
}
}
$dt = [DateTime]::FromFileTime($time)
$row = $user.Name + "," + $user.SamAccountName + "," + $dt
Out-File -FilePath $exportFilePath -Append -NoClobber -InputObject $row
$time = 0
}
}
Get-ADUsersLastLogon
我想我应该修改脚本的一部分,设置$user
的变量,以及foreach ($user in $users)
循环如何处理每个用户,但无法弄清楚。
答案 0 :(得分:0)
至此...
允许从文本或CSV文件输入用户。
...这就是全部...
$users = Get-ADUser -Filter *
...您只需将其替换为文件
$users = Import-Csv -Path $UncToUserList.csv
但是,由于您的问题,由于这是一种非常常见的PowerShell基本知识,因此我假设您对此非常陌生,并建议您使用TechNet上的所有免费可用学习资源来逐步提高PowerShell的使用率。 MVA,MSChannel9和YouTube,以及免费提供的eBooks,以尽可能避免学习周期中的混乱和挫败感。
此外,您永远不要运行任何不受信任的代码,或者您不完全理解的代码。仅在可以考虑生产之前完全恢复的测试环境中使用,以避免可能导致您发生RPE错误的事情-“恢复生产事件”。