【发布时间】:2015-11-04 09:27:37
【问题描述】:
这个问题与我所学过的所有最佳实践都背道而驰,但对于我目前的组织来说,这是一个更大的问题。关键是,我需要查看当前用户密码是什么,而不仅仅是重置它。这有几个原因。
我的组织有一个活动目录,但它仅用于远程终端服务。有适当的软件不与任何东西同步,我们在这些不同的程序/数据库中手动创建用户帐户,并且只需手动将其凭据设置为他们用于登录 Office 365 帐户的相同凭据。在线交流是我们业务的核心,而不是活动目录。
因此,密码设置为永不过期,并且保存了所有用户及其密码的主列表。所有这一切对最终用户来说都是透明的,就他们而言,他们在所有事情上只有一个帐户,因为他们的登录名对所有事情都是相同的,但那是因为我们手动将他们的凭据设置为相同。现在,当用户忘记密码时(尤其是我们的手机用户,因为他们收到的手机/平板电脑已经登录并且很少知道他们的密码),我们会查阅主列表。但是,在这种情况下,无论出于何种原因,用户都不在主列表中。
这种情况可能已经有几个月了,但只是在我不得不用新平板电脑设置它们时才注意到。用户不知道他们的密码,没有主列表我看不到它是什么。我看到的唯一可用的其他选项是重置用户交换密码(我将在下面解释我遵循的过程)并让用户每次无法登录时给我打电话,转到它,然后重置他的密码或(在某些情况下)为他创建一个新帐户(这根本不理想,因为他会丢失他多年来建立的所有关联数据)并重新开始。
我很清楚这些做法有多糟糕,并且一直在努力改变它们,但那是另一回事。
现在我目前重置用户密码的方式(因为 office365 webapp 不允许手动设置密码)是使用交换、azure admin 和 azure 登录助手插件从我的 IT 笔记本电脑上运行 powershell,然后输入以下内容命令:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -credential $UserCredential -Authentication Basic –AllowRedirection
使用我的域管理员帐户登录
import-pssession $session
和
connect-msolservice
这让我进入在线交换 powershell 会话,我可以在其中运行密码重置命令
Set-MsolUserPassword –UserPrincipalName TYPE_USERNAME_HERE –NewPassword TYPE_DESIRED_PASSWORD_HERE -ForceChangePassword $False
但是我需要查看当前的密码是什么。在我的搜索中,我发现了许多资源,这些资源解释了如何获取有关上次设置密码的时间、是否设置为永不过期等信息。然而,关于如何检索用户当前密码的实际答案(并以可读格式显示,因为它可能会被加密)。但是,我发现这篇文章使我相信这是可能的: Powershell Scripting example link
所以我基本上需要知道运行哪些 powershell 命令来检索和解码用户当前密码。我是我的组织 I.T.管理员并拥有完整的管理员权限。另外,这是我的第一个堆栈交换帖子,所以如果您需要任何其他信息,请告诉我。感谢您的帮助。
【问题讨论】:
标签: security powershell passwords exchange-server exchangewebservices