security - 通过 Office 365 的 powershell 查看用户密码是什么

标签 security powershell passwords exchange-server exchangewebservices

这个问题违背了我所学过的所有最佳实践,但对于我当前的组织来说,这是一个更大的问题。关键是,我需要查看当前用户的密码是什么,而不仅仅是重置它。造成这种情况的原因有几个。

我的组织有一个事件目录,但它仅用于远程终端服务。有适当的专有软件不与任何内容同步,我们在这些不同的程序/数据库中手动创建用户帐户,然后手动将其凭据手动设置为用于登录 Office 365 帐户的相同凭据。在线交换是我们业务的核心,而不是事件目录。

因此,密码被设置为永不过期,并且保留所有用户及其密码的主列表。所有这一切对最终用户来说都是透明的,就他们而言,他们在所有内容上都只有一个帐户,因为他们的登录名对于所有内容都是相同的,但这是因为我们手动将他们的凭据设置为相同。现在,当用户忘记密码时(尤其是我们的移动用户,因为他们收到的手机/平板电脑已经登录并且很少知道密码),我们会查阅主列表。然而,在这种情况下,该用户无论出于何种原因都不在主列表中。

这种情况可能已经持续了几个月,但直到我不得不使用新平板电脑进行设置时才注意到。用户不知道他们的密码,如果没有主列表,我看不到它是什么。我认为可用的唯一其他选项是重置用户交换密码(我将在下面解释我遵循的过程),并让用户每次无法登录某些内容时给我打电话,转到它并重置他的密码密码或(在某些情况下)为他创建一个新帐户(这根本不理想,因为他将丢失多年来建立的所有链接数据)并重新开始。

我很清楚这些做法有多么糟糕,并且一直在努力插入改变,但那是另一回事了。

现在我重置用户密码的方法(因为office365 web应用程序不允许手动设置密码)是使用exchange、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 session ,我可以在其中运行密码重置命令

Set-MsolUserPassword –UserPrincipalName TYPE_USERNAME_HERE –NewPassword TYPE_DESIRED_PASSWORD_HERE -ForceChangePassword $False

但是我需要查看当前的密码是什么。在我的搜索中,我发现许多资源解释了如何获取有关密码上次设置时间、密码是否设置为永不过期等信息。然而,关于如何检索用户当前密码的实际答案(并以可读格式显示它,大概会被加密)。然而,我发现这篇文章让我相信这是可能的: Powershell Scripting example link

所以我基本上需要知道运行哪些 powershell 命令来检索和解码用户当前的密码。我是我的组织 I.T.管理员并拥有完整的管理员权限。另外,这是我的第一篇堆栈交换帖子,因此如果您需要任何其他信息,请告诉我。我很感谢您的帮助。

最佳答案

简短回答:这是不可能的。

密码并不直接存储在 Active Directory 中,而是经过哈希处理并存储该哈希值。当您输入详细信息时,系统会对您输入的密码进行哈希处理,并将其与存储的密码进行比较。用于生成该哈希值的算法只是一种方法,因此,恢复密码的唯一方法就是暴力破解它。

长答案:如果您更改 AD 设置来更改密码的存储方式(即可逆加密),可能是可能的,但这样做会非常疯狂。

关于security - 通过 Office 365 的 powershell 查看用户密码是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31953892/

相关文章:

powershell - 组合两个 PowerShell do..while 语句

database - Spring 安全 :password encoding in DB and in applicationContext

.net - 如何在我的数据库中安全地存储第三方 Web 服务的密码?

linux - sshfs 没有密码无法访问符号链接(symbolic link)

security - 网站登录: how should user credentials be sent to the server for verification?

regex - 打开文件并使用正则表达式对其进行过滤

security - 跨站点表单发布与不同域上的外部站点

sql-server - 在 Azure 自动化 powershell 脚本中从 SQL 打印消息不起作用

windows - 我如何从 C++ 服务应用程序访问 Windows 登录(身份验证)API?

regex - 有没有办法将恶意代码放入正则表达式?