不知道这是否是实现这一目标的最佳方式,但这是背景和目标。
背景我们是一个小企业。 有时候我自己或其他有能力处理电子邮件中断的人是不可用的。通常情况下,只要重新启动老旧的交换箱就可以使其恢复在线状态,这显然是一个临时性的修复直到我能find特定停运的原因。 但是,这个想法是为了限制由此造成的停机时间给我们的呼叫中心。
目标 :我想设置一次使用pipe理员帐户。 或者写一个脚本,允许用户简单地重新启动服务器。
了解这个用户目前的帐户只限于一个域用户而不是任何types的pipe理员。
附加信息一次性使用账户的想法是用户可以使用一次。 login进行更改,一旦完成并注销,账户将被locking,或者密码已更改或被禁用。 任何阻止他们再次使用它的东西。 这样,用户就有责任将其仅用于紧急情况和预期用途,而不是调整有限帐户或安装软件等的简单方法。
至于脚本,我明白,由于标准用户的有限权限,这个用户将无法使用他们当前的权限远程执行交换箱上的PSSHUTDOWN.EXE。 所以我们不得不想出一个好方法来让用户重启。 应该是一个简单的VB脚本,这不是问题。 我的问题是创build某种forms的安全,允许他们input一个密码才能让程序开始。 奖励积分,如果你可以包括在脚本中停止服务。 像我这样的事情可以填补其他人,一旦我看到你如何执行第一个。 净停止“Microsoft Exchange信息存储”
我觉得第二个计划似乎更安全。 这样我就可以使用默默无闻的安全性。 不要告诉他的RDP端口,而不是他的系统,但更多的只是使用密码来激活重启。
所以在这方面的援助是非常感谢。 或者可选的build议总是欢迎。
这是可笑的,但这可能工作…
在其他机器上设置一个计划任务,通过特定的用户启动psshutdown。 授予你的奴隶足够的权利来启动任务。 不要给它一个时间表。 当Exchange需要发痒时,他们可以右键单击运行它。
缺点是他们可以随时做到这一点,但这是他们所能做的。
使用PowerShell我认为这应该工作,虽然我没有testing过这一切显而易见的原因。 我build议创build一个交换pipe理员帐户,将其添加到交换服务器的本地pipe理员组。 给这个帐户在AD 自己的完整权限(我实际上不知道如果用户帐户默认情况下是可以禁用自己)。 然后将下面的PowerShell脚本保存在networking上,并在要运行它的人的桌面上放置一个快捷方式的CMD文件。 向他们展示如何使用“以其他用户身份运行”function(右键点击时按住Shift键)。 CMD文件只需要:
电源shell 。 \\服务器\共享\ script.ps1
PowerShell脚本可以很短:
# Stop the service (get-wmiobject win32_service -filter "name='Spooler'" -computername ComputerName).StopService() # check service status # Add a While loop if needed (get-wmiobject -query "select * from win32_service where name='Spooler'" -computername ComputerName).state # this will return the state of the named service restart-computer -computername ExchangeServerName # Import ActiveDirectory module Import-Module active* # disable the account # substitute $username with the newly created account # or perhaps with $env:USERNAME using RunAs might work right... set-user $username -Enabled $false
一旦这个脚本运行,用户就可以拥有密码,直到你或者拥有相应凭证的用户可以重新启用它为止,这个账户将被禁用。
此外,出于安全考虑,您可能希望将该新帐户置于策略中,以防止以交互方式或其他方式login。 在适用于[也许所有工作站和服务器]的GPO中:计算机configuration\ Windows设置\安全设置\本地策略\用户权限分配\ 拒绝本地 login并拒绝通过远程桌面服务login