我正在迁移到云,从 SBS 2003 Active Directory 迁移到 2008 R2。
我配置了一个新用户,并注意到该用户无法重置密码。
我的服务器管理员向我展示了如何使用网络用户。
我注意到我可以从某些帐户而不是其他帐户获取信息。有超过 100 个帐户要处理,我想我会尝试 PowerShell。
在这篇文章中(使用 powershell 在其他域上查找“网络用户”?)Lorenzo 建议使用 Get-ADUser(这适用于从另一个域进行轮询)。当我从 PowerShell 提示符运行 Get-ADUser 时,我收到一条消息,指出无法识别命令行开关。
我正在从文本文件中读取用户 ID,并将输出发送到日志文件,以便我可以发送给服务器管理员进行进一步分析。
到目前为止,这是我的代码(请注意,我对 PowerShell 完全陌生):
# Get our list of user names from the local staff.txt file
$users = get-content 'C:\Scripts\staff.txt'
# Create log file of output:
$LogTime = Get-Date -Format 'MM-dd-yyyy_hh-mm-ss'
$CompPath = "C:\Scripts\"
$CompLog = $CompPath + "NetUserInfo" + $LogTime + ".txt"
New-Item -path $CompLog -type File
foreach ($user in $users) {
#Testing user:
"Testing user: $user" | out-file $CompLog -Append
# Obtain user information using net user:
net user $user /domain >> $CompLog
# Pause to let system gather information:
Start-Sleep -Second 15
}
由于脚本当前运行,我的日志文件将有两个或三个用户名,后跟响应“请求将在域(域)的域控制器上处理”
如果来自 CMD 的网络用户将返回“系统错误 5 已发生,访问被拒绝”。这未记录在输出文件中。如果来自 CMD 的 net user 将返回用户信息,这将记录到输出文件中。我目前只接收几个用户的输出,但是当我从 CMD 运行命令时,我能够检索至少十个用户的信息。
我的第一个想法是我需要等待 net user 命令完成(因此是 Start-Sleep 命令),但这对输出没有任何影响。
任何帮助将不胜感激。