新足迹

 找回密码
 注册

精华好帖回顾

· 前杠喷漆+漆面保护=真的不能不求人了【图多手机慎点】 (2017-6-12) Simonjo · 《The Man in the Iron Mask 》 (2005-1-3) leeshine
· [心情日历 十一月二日] 这一天,被仔细记录过。 (2008-11-2) Tiger_Karen · 今天在childcare 看到一幕有感 (2008-11-11) chinara
Advertisement
Advertisement
查看: 1730|回复: 28

请教一个关于EXCHANGE POWERSHELL的问题 [复制链接]

头像被屏蔽

禁止访问

发表于 2013-8-20 15:28 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 lingg 于 2013-8-20 14:34 编辑

在弄个脚本调出 MAILBOX的列表和属性,在命令行直接跑,没有问题,比如:

get-mailbox  | Select-Object Emailaddresses, Displayname

EmailAddresses                                      DisplayName
--------------                                              -----------
{SMTP:admin@xxx.xx.au}                        admin@xxx.xxx.au



在脚本里带入变量以后,有点问题
  1. $tmp = "Emailaddresses, Displayname"
  2. get-mailbox  | Select-Object $tmp
复制代码
这样跑出来以后,变成select 一个object,使用的是双引号的值,返回为空:

Emailaddresses, Displayname
---------------------------

已经试过用replace将变量里的双引号替换掉,还是一样的结果
Advertisement
Advertisement

发表于 2013-8-20 16:07 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
$tmp = @{Property= 'Emailaddresses', 'Displayname'}

get-mailbox  | Select-Object @tmp

评分

参与人数 1积分 +6 收起 理由
stevenbian + 6 你太有才了

查看全部评分

发表于 2013-8-20 16:21 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
基友内部解决了

发表于 2013-8-20 16:22 来自手机 |显示全部楼层
此文章由 重机枪手 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 重机枪手 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我靠,大神啊
头像被屏蔽

禁止访问

发表于 2013-8-20 17:20 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 lingg 于 2013-8-20 16:47 编辑
kane321 发表于 2013-8-20 15:07
$tmp = @{Property= 'Emailaddresses', 'Displayname'}

get-mailbox  | Select-Object @tmp


谢了,回头试试

我顺便问下WINDOWS下的权限是怎么搞的,我现在想通过WEB前端 调用POWERSHELL,还是有权限问题。

大环境是个EXCHANGE 2013,这几个机器都在一个域里,域名假设是 EX.LOCAL

exchange的管理员账户是 EX.LOCAL\ADMIN
跑IIS这台机器叫 SERVER1,于是现在所有通过WEB跑的POWERSHELL,都是用这个虚拟用户跑: EX.LOCAL\SERVER1 (我用$env:username测的)

这个用户权限太不够了,于是新建了一个APPLICATION POOL,里面定义用户 EX.LOCAL\ADMIN,然后让WEB跑在这个POOL里,虽然WEB 前端还是显示 虚拟用户: EX.LOCAL\SERVER1,但是很神奇的居然都可以跑了。

直到刚才我试着通过POWERSHELL, RESET一个MAILBOX的 PASSWORD,COMMAND如下:
  1. Set-Mailbox -Identity "$user_id" -Password (ConvertTo-SecureString -String 'P@$w0rd1' -AsPlainText -Force)
复制代码
又碰到了权限问题。
EXCHANGE 2013默认不让ADMIN账户RESET PASSWORD,我刚给了ADMIN这个权限,现在可以在命令行里跑,
但是WEB那边又傻了。。
[quote]Set-Mailbox : You don't have permission to directly change a mailbox account
password without providing old password. Reset Password role is required for
directly changing password.[/code]

WINDOWS我实在不行,在IIS里应该怎么设置?

发表于 2013-8-20 17:27 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-20 16:20
谢了,回头试试

我顺便问下WINDOWS下的权限是怎么搞的,我现在想通过WEB前端 调用POWERSHELL,还是有权 ...

后面reset password那部分没看懂,你想做什么?
Advertisement
Advertisement
头像被屏蔽

禁止访问

发表于 2013-8-20 17:48 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kane321 发表于 2013-8-20 16:27
后面reset password那部分没看懂,你想做什么?

重写了一下,就是做个密码重置

发表于 2013-8-20 17:51 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-20 16:48
重写了一下,就是做个密码重置

你们用的全是cloud 的还是on-prem和cloud hybrid 的?

发表于 2013-8-20 17:53 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
太专业了,用skype基友频道交流吧
头像被屏蔽

禁止访问

发表于 2013-8-20 17:54 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kane321 发表于 2013-8-20 16:51
你们用的全是cloud 的还是on-prem和cloud hybrid 的?

都是虚拟机

发表于 2013-8-20 17:56 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-20 16:54
都是虚拟机

o,那你都是设本地的服务器吧,我以为涉及到cloud了
Advertisement
Advertisement
头像被屏蔽

禁止访问

发表于 2013-8-20 17:56 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stevenbian 发表于 2013-8-20 16:53
太专业了,用skype基友频道交流吧

发表于 2013-8-20 17:57 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 kane321 于 2013-8-20 16:59 编辑
lingg 发表于 2013-8-20 16:56


Launch Exchange Management Shell
Run “Add-pssnapin microsoft*”
Run “Install-CannedRbacRoles”
Run “Install-CannedRbacRoleAssignments”
Close and re-open Exchange Management Shell

google来的,哈哈

不过又看了下,你这个没问题了,应该是web那边的问题,这个我也不懂,呵呵
头像被屏蔽

禁止访问

发表于 2013-8-20 18:00 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kane321 发表于 2013-8-20 16:56
o,那你都是设本地的服务器吧,我以为涉及到cloud了

不全都是本地的,我写的名字是举个栗子,域名方面只有一个本地域名。

要不我这么问?怎么让IIS跑的这个进程 使用 DOMAIN里的用户?

我已经在APPLICATION POOL里面的高级设置里 扔了个EX.LOCAL/ADMIN 进去了,还是不太对。
头像被屏蔽

禁止访问

发表于 2013-8-20 18:01 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kane321 发表于 2013-8-20 16:57
Launch Exchange Management Shell
Run “Add-pssnapin microsoft*”
Run “Install-CannedRbacRoles”

哈哈,谢啦,是的,我已经做过这个的了,ADMIN的权限已经给了

我再琢磨琢磨吧

发表于 2013-8-20 18:04 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 kane321 于 2013-8-20 17:08 编辑
lingg 发表于 2013-8-20 17:01
哈哈,谢啦,是的,我已经做过这个的了,ADMIN的权限已经给了

我再琢磨琢磨吧 ...


你按照这个把
http://technet.microsoft.com/en-us/library/jj657492(v=exchg.150).aspx
EX.LOCAL\SERVER1也加到Manage Role Group

成功加分啊,前面的问题那个肯定行,测试过了,这个只能你测了.

我缺分...

评分

参与人数 1积分 +4 收起 理由
lingg + 4 好可爱啊

查看全部评分

Advertisement
Advertisement
头像被屏蔽

禁止访问

发表于 2013-8-21 11:40 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kane321 发表于 2013-8-20 17:04
你按照这个把
http://technet.microsoft.com/en-us/library/jj657492(v=exchg.150).aspx
EX.LOCAL\SERVER ...

美女。。。

EX.LOCAL\SERVER1 是个虚拟用户,这个家伙是不存在的啊,我无从加起

发表于 2013-8-21 11:42 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-21 10:40
美女。。。

EX.LOCAL\SERVER1 是个虚拟用户,这个家伙是不存在的啊,我无从加起 ...

炯,你这个不是ad下的用户?

发表于 2013-8-21 11:49 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kane321 发表于 2013-8-21 10:42
炯,你这个不是ad下的用户?

名字叫local
签名不可外链

发表于 2013-8-21 11:56 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stevenbian 发表于 2013-8-21 10:49
名字叫local

他说了是domain下的,我以为总是ad下的一个用户吧,local user不是她这么说的吧

发表于 2013-8-21 12:00 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-21 10:40
美女。。。

EX.LOCAL\SERVER1 是个虚拟用户,这个家伙是不存在的啊,我无从加起 ...

你那个错误提示就是要改用户密码的那个用户没有在那个可以改密码的role group里,所以你要确定你是想用的那个用户去改密码,然后把那用户通过EMC去加到那个group里
Advertisement
Advertisement

发表于 2013-8-21 12:04 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2013-8-21 12:10 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-21 10:40
美女。。。

EX.LOCAL\SERVER1 是个虚拟用户,这个家伙是不存在的啊,我无从加起 ...

用什么用户跑web应该都没关系,关键是你web程序里调用的是那个exchange server的用户。

评分

参与人数 1积分 +4 收起 理由
kane321 + 4 你太有才了

查看全部评分

签名不可外链

发表于 2013-8-21 12:15 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 kane321 于 2013-8-21 11:17 编辑
stevenbian 发表于 2013-8-21 11:10
用什么用户跑web应该都没关系,关键是你web程序里调用的是那个exchange server的用户。 ...


对的,不过不管怎么样实现用的哪个用户改密码要知道

评分

参与人数 1积分 +6 收起 理由
stevenbian + 6 我很赞同

查看全部评分

头像被屏蔽

禁止访问

发表于 2013-8-21 13:26 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stevenbian 发表于 2013-8-21 11:10
用什么用户跑web应该都没关系,关键是你web程序里调用的是那个exchange server的用户。 ...

搞了半天,终于工作了,虽然我们都不知道我们怎么修复的。。
我只说最后的设置吧,因为有些东西我还是不是很懂。

你说的是对的。
但WEB那边,还是有限制的,最后的情况是在APPLICATION POOL里给了个DOMAIN里面的ADMIN用户。
然后调用POWERSHELL的时候,初始化了一些环境变量(从EXCHANGE POWERSHELL的启动脚本里拿了一段过来),然后就工作了

我之前用的这个,不行
  1. Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
复制代码
换成下面这段,就行了

  1. ## EXCHANGE VARIABLEs ########################################################

  2. $global:exbin = (get-itemproperty HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Setup).MsiInstallPath + "bin"
  3. $global:exinstall = (get-itemproperty HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Setup).MsiInstallPath
  4. $global:exscripts = (get-itemproperty HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Setup).MsiInstallPath + "scripts"

  5. ## LOAD CONNECTION FUNCTIONS #################################################
  6. "Microsoft.Exchange.Data.dll", "Microsoft.Exchange.Configuration.ObjectModel.dll" `
  7.   | ForEach { [System.Reflection.Assembly]::LoadFrom((join-path $global:exbin $_)) } `
  8.   | Out-Null

  9. . $global:exbin"CommonConnectFunctions.ps1"
  10. . $global:exbin"ConnectFunctions.ps1"

  11. Connect-ExchangeServer -auto
复制代码
头像被屏蔽

禁止访问

发表于 2013-8-27 13:38 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kane321 发表于 2013-8-20 15:07
$tmp = @{Property= 'Emailaddresses', 'Displayname'}

get-mailbox  | Select-Object @tmp

还得再请教一下,和之前那个类似的问题

我现在想生成一个这个命令
set-Mailbox -Identity "xxxx" -DeliverToMailboxandforward $true -ForwardingAddress “xxx@xxx.com"

在脚本里这样写,不行
Set-Mailbox  -Identity "xxxx" $cmd
$cmd="-DeliverToMailboxandforward $true -ForwardingAddress \“xxx@xxx.com\""

还是要用到PIPE一个OBJECT的方法?请教一下这样的应该怎么写,

我想要做的就是 要一次让SET-MAILBOX  处理多个参数。


Advertisement
Advertisement
头像被屏蔽

禁止访问

发表于 2013-8-27 13:52 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-27 12:38
还得再请教一下,和之前那个类似的问题

我现在想生成一个这个命令

偷懒了,之前没找到,用 SET-MAILBOX @object 就行了

评分

参与人数 1积分 +2 收起 理由
kane321 + 2 你太有才了

查看全部评分

发表于 2013-8-27 15:28 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lingg 发表于 2013-8-27 12:52
偷懒了,之前没找到,用 SET-MAILBOX @object 就行了

你客串程序猿啊
签名不可外链
头像被屏蔽

禁止访问

发表于 2013-8-27 15:29 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stevenbian 发表于 2013-8-27 14:28
你客串程序猿啊

有点在打酱油的感觉。。。

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部