显示用户有权访问的所有邮箱日历
Display all mailbox calendars which a user has access to
我想找出用户当前可以访问的所有日历。我在网上搜索了一下,最接近的答案是:
(get-mailbox) | foreach{Get-Mailboxfolderpermission (($_.PrimarySmtpAddress)+":\calendar") -user happyboy -ErrorAction SilentlyContinue} |select identity, user, accessrights
然而,显示并没有真正显示实际身份,即 happyboy(以上)可以访问的实际邮箱。显示是这样的:
Identity User AccessRights
-------- ---- ------------
HappyBoy HappyBoy {Reviewer}
HappyBoy HappyBoy {LimitedDetails}
HappyBoy HappyBoy {Editor}
HappyBoy HappyBoy {Editor}
HappyBoy HappyBoy {Owner}
HappyBoy HappyBoy {Editor}
我期待这样的事情:
Identity User AccessRights
-------- ---- ------------
FunnyMan HappyBoy {Reviewer}
PrettyGirl HappyBoy {LimitedDetails}
BadBoy HappyBoy {Editor}
LuckyBoy HappyBoy {Editor}
SadGirl HappyBoy {Owner}
LovelyGirl HappyBoy {Editor}
我们可以修改脚本来实现吗?
你的一行格式更具可读性:
(Get-Mailbox) | ForEach-Object {
Get-Mailboxfolderpermission (($_.PrimarySmtpAddress)+":\calendar") `
-User happyboy -ErrorAction SilentlyContinue
} | Select-Object Identity, User, Accessrights
应明确终止管道元素 (Select-Object
) 接收 Get-Mailboxfolderpermission
cmdlet 的输出,Get-Mailbox
输出不再可直接访问。
这个(未经测试的)脚本使用 $mailbox 变量来存储当前迭代的邮箱。
## Q:\Test18\SO_51836373.ps1
ForEach ($mailbox in (Get-Mailbox)){
Get-Mailboxfolderpermission (($mailbox.PrimarySmtpAddress)+":\calendar") `
-User happyboy -ErrorAction SilentlyContinue | ForEach-Object {
[PSCustomObject]@{
Identity = $mailbox.Identity
User = $_.User
AccessRights = $_.Accessrights
}
}
}
另一种更类似于您的模板的方法存储邮箱标识并将计算的 属性 插入到 Select-Object 中。 (也未经测试)
(Get-Mailbox) | ForEach-Object {
$Identity = $_.Identity
Get-Mailboxfolderpermission (($_.PrimarySmtpAddress)+":\calendar") `
-User happyboy -ErrorAction SilentlyContinue
} | Select-Object @{n='Identity';e={$Identity}}, User, Accessrights
我想找出用户当前可以访问的所有日历。我在网上搜索了一下,最接近的答案是:
(get-mailbox) | foreach{Get-Mailboxfolderpermission (($_.PrimarySmtpAddress)+":\calendar") -user happyboy -ErrorAction SilentlyContinue} |select identity, user, accessrights
然而,显示并没有真正显示实际身份,即 happyboy(以上)可以访问的实际邮箱。显示是这样的:
Identity User AccessRights
-------- ---- ------------
HappyBoy HappyBoy {Reviewer}
HappyBoy HappyBoy {LimitedDetails}
HappyBoy HappyBoy {Editor}
HappyBoy HappyBoy {Editor}
HappyBoy HappyBoy {Owner}
HappyBoy HappyBoy {Editor}
我期待这样的事情:
Identity User AccessRights
-------- ---- ------------
FunnyMan HappyBoy {Reviewer}
PrettyGirl HappyBoy {LimitedDetails}
BadBoy HappyBoy {Editor}
LuckyBoy HappyBoy {Editor}
SadGirl HappyBoy {Owner}
LovelyGirl HappyBoy {Editor}
我们可以修改脚本来实现吗?
你的一行格式更具可读性:
(Get-Mailbox) | ForEach-Object {
Get-Mailboxfolderpermission (($_.PrimarySmtpAddress)+":\calendar") `
-User happyboy -ErrorAction SilentlyContinue
} | Select-Object Identity, User, Accessrights
应明确终止管道元素 (Select-Object
) 接收 Get-Mailboxfolderpermission
cmdlet 的输出,Get-Mailbox
输出不再可直接访问。
这个(未经测试的)脚本使用 $mailbox 变量来存储当前迭代的邮箱。
## Q:\Test18\SO_51836373.ps1
ForEach ($mailbox in (Get-Mailbox)){
Get-Mailboxfolderpermission (($mailbox.PrimarySmtpAddress)+":\calendar") `
-User happyboy -ErrorAction SilentlyContinue | ForEach-Object {
[PSCustomObject]@{
Identity = $mailbox.Identity
User = $_.User
AccessRights = $_.Accessrights
}
}
}
另一种更类似于您的模板的方法存储邮箱标识并将计算的 属性 插入到 Select-Object 中。 (也未经测试)
(Get-Mailbox) | ForEach-Object {
$Identity = $_.Identity
Get-Mailboxfolderpermission (($_.PrimarySmtpAddress)+":\calendar") `
-User happyboy -ErrorAction SilentlyContinue
} | Select-Object @{n='Identity';e={$Identity}}, User, Accessrights