获取登录用户

时间:2016-10-20 02:39:43

标签: powershell registry

我在网上看到很多关于获取远程注册表的例子但是我想检查登录用户的文件夹重定向而不是我运行脚本的用户。

使用PowerShell可以实现这一点吗?在我加入这家公司之前,他们的IT外包,整个AD / GPO一切都是一大堆。有些用户正在重定向,有些用户没有重定向,我想检查谁启用了重定向,而无需亲自去每台计算机。

$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('CurrentUser','10.0.0.113')
$regkey = $reg.OpenSubKey("Software\\Microsoft\\Windows\CurrentVersion\\Explorer\\User Shell Folders")
$regkey.GetValue("Personal")

我尝试了这一点但又只向我显示了脚本运行的管理员用户帐户的信息。

1 个答案:

答案 0 :(得分:1)

可能,但需要finding out who is currently logged in,然后loading their ntuser.dat file into the registry

$computer = '...'
$qry = 'SELECT * FROM Win32_Process WHERE Name="explorer.exe"'
$key = 'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'

$username = (Get-WmiObject -Computer $computer -Query $qry).GetOwner().User

Invoke-Command -Computer $computer -ScriptBlock {
  & reg load "HKU\foo C:\Users\$using:username\ntuser.dat" | Out-Null
  (Get-ItemProperty "HKU:\foo\$using:key").Personal
  & reg unload 'HKU\foo' | Out-Null
}

更简单的方法可能是使用登录脚本将信息写入文件(在用户的计算机或中央共享上),因此您可以从那里收集信息:

$key    = 'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'
$output = "\\server\share\$env:USERNAME.txt"

Get-ItemProperty "HKCU:\$key" | Select-Object -Expand Personal |
  Set-Content $output