UPDATEPowerShell的 - 上次登录的用户 - 相同的输入,不同的输出
@ HAL9256
你的答案真的让我觉得!
我做了一些谷歌上搜索更多的,发现这个网站,该网站提供了另一种方法
到目前为止,它的工作原理!
我远程进入另一台服务器运行powershell脚本,显示最后登录的用户。
几件事情
- 它只有当我在服务帐户的上下文中运行一切正常,没有 管理员
- 它需要几分钟的时间输出
但是当我运行它在一个服务帐户的contenxt中,我得到不同的输出为相同的输入
$line_array = @()
$multi_array = @()
[hashtable]$my_hash = @{}
foreach ($i in $args){
$line_array+= $i.split(" ")
}
foreach ($j in $line_array){
$multi_array += ,@($j.split("="))
}
foreach ($k in $multi_array){
$my_hash.add($k[0],$k[1])
}
$Sender_IP = $my_hash.Get_Item("sender-ip")
$eventList = @()
Get-EventLog "Security" -computername $Sender_IP `
| Where -FilterScript {$_.EventID -eq 4624 -and $_.ReplacementStrings[4].Length -gt 10 -and $_.ReplacementStrings[5] -notlike "*$"} `
| Select-Object -First 2 `
| foreach-Object {
$row = "" | Select UserName, LoginTime
$row.UserName = $_.ReplacementStrings[5]
$row.LoginTime = $_.TimeGenerated
$eventList += $row
}
$userId = $eventList[0].UserName
$userId
举例来说,我调用的命令行的脚本
script.ps1 "sender-ip=10.10.10.10"
我第一次运行它,它输出的用户的窗口的登录名
我第二次用相同的输入运行同一个脚本,它输出我用来运行powershell脚本的同一个服务帐户
而当我尝试使用相同的输入运行相同的脚本时,我得到了相同服务帐户的输出。
~~~~~~~
接下来,我尝试用另一个IP地址运行脚本
我第一次运行它的输出窗口的登录名
我第二次剧本运行该脚本,它输出相同的服务帐户从中PowerShell脚本运行
~~~~~~~
这似乎是一个patte RN。第一次运行的脚本,它返回正确的输入,第二次运行,它返回服务帐户。
这是怎么发生的?
如何使脚本始终返回正确的输出,无论它被调用多少次?
如何解决此问题?
@ HAL9256:哇,这是非常彻底的!让我试试看,我会让你知道它是如何工作的。谢谢。 – Glowie
很高兴听到你有东西在工作!乐意效劳! – HAL9256