在Windows 7 cscript.exe上迭代用户配置文件

时间:2012-08-16 19:57:18

标签: windows windows-7-x64 wsh

我正在尝试迭代用户个人资料并在系统上记录每个个人资料。

for /d %%X in (C:\Users\*) do (
echo %username% >> C:\%computername%.log

)

我遇到的问题是我必须使用提升的权限运行此cmd。因此,由于它以管理员身份运行,因此输出只是管理员

我已经尝试了echo %username%,%cd%,%userprofile%并且我无法获得当前路径的输出...我希望%cd%有效,因为我认为在循环期间它会进入路径..但你仍然是管理员帐户。

谢谢!

2 个答案:

答案 0 :(得分:0)

我想你可能想要:

for /d %%X in  (C:\Users\*) do (
    echo %%X >> C:\%computername%.log
)

答案 1 :(得分:0)

我宁愿使用以下powershell脚本:

Get-WmiObject -Class Win32_UserAccount -ComputerName . -ErrorAction Stop  | where-object { $_.localAccount -eq "true" -and $_.Disabled -eq "false" -and $_.Name -cnotcontains "ASPNET"}

或者使用cscript:

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
If Not IsObject(objWMIService) Or IsNull(objWMIService) Then
    wscript.echo "Not an Object"
    wscript.quit
End If

Set usersItems = objWMIService.ExecQuery( "SELECT * FROM Win32_UserAccount " _
    & "WHERE localAccount=true and disabled=false",,48)
If Not IsObject(colItems) Or IsNull(colItems) Then
    wscript.echo "Not an Object"
    wscript.quit
End If