如何解决如何使用Cmdkey.exe / list powershell脚本报告Office应用程序中的Microsoft帐户许可证?
我们试图在运行此Powershell脚本后仅报告以下信息。
“ LegacyGeneric:target:MicrosoftAccount:user =”
cmdkey.exe /list | ForEach-Object {$found=$false} {
$line = $_.Trim()
if ($line -eq '')
{
if ($found) { $newobject }
$found = $false
$newobject = '' | Select-Object -Property Type,User,Info,Target
}
else
{
if ($line.StartsWith("Target: "))
{
$found = $true
$newobject.Target = $line.Substring(8)
}
elseif ($line.StartsWith("Type: "))
{
$newobject.Type = $line.Substring(6)
}
elseif ($line.StartsWith("User: "))
{
$newobject.User = $line.Substring(6)
}
else
{
$newobject.Info = $line
}
}
}
背后的想法是仅获得Microsoft Office应用程序用来获取其许可证的Microsoft帐户,如下所示。
在此先感谢任何愿意提供帮助的人!
解决方法
不确定我们的字母是否不同或您是否有错字。您列出了LegacyGeneric:target:MicrosoftAccount:user=
,但我只看到了LegacyGeneric:target=MicrosoftAccount:user=
如果我的不同,请修改它。如果您只想要该帐户,则可以使用类似这样的方法。
cmdkey /list | foreach {
if($_ -match 'LegacyGeneric:target=MicrosoftAccount:user=(.*)')
{
[PSCustomObject]@{Account = $matches.1}
}
}
对我来说输出看起来像
Account
-------
username1@email.com
username2@email.com
如果您想要单线,也可以这样做。
[PSCustomObject]@{Account = $(cmdkey /list | foreach {if($_ -match 'LegacyGeneric:target=MicrosoftAccount:user=(.*)'){$matches.1}})}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。