如何使用Windows注册表自动为Outlook 2007和其他设置中的Exchange设置代理服务器?

时间:2013-07-24 15:29:28

标签: powershell outlook registry

我是使用Windows注册表的新手。

这是我的问题和背景:

我需要编写一个powershell脚本,它将自动更改outlook 2007中的以下设置,以便您只需要输入LogonDomain \ UserName和Password,如步骤2中所述:

第1步: 工具 - >帐户设置... - >双击电子邮件帐户 - >更多设置... - >连接 - >选中“使用HTTP连接到Microsoft Exchange”框 - > Exchange代理设置... - > 进入代理服务器(例如exmail.example.com) - >选中“在快速网络上...”和“在慢速网络上...”框 - >在下拉栏中设置“基本身份验证” - >好的 - >好的 - >下一个 - >光洁度

第2步: 重启Outlook - >输入LogonDomain和UserName - >输入密码 - >重复步骤1,除非此时取消选中“在快速网络上...”框

注意:当您执行步骤2时,已经设置了步骤1中的某些设置,例如用于交换的代理服务器的名称。

要查找对注册表所做的更改,我使用了应用程序RegFromApp,它记录了特定进程(在这种情况下为Outlook)所做的每个注册表更改。在新帐户上手动执行第1步和第2步后,我编写了两个脚本来进行RegFromApp记录的更改。

当我尝试在新帐户上执行第1步时,它无法进行更改。但是,如果我手动执行步骤1然后执行步骤2,则进行适当的更改。然后,如果我执行步骤1,则设置会相应更改!不幸的是,只有第2步自动化还不够好。我认为问题在于“进入代理服务器”步骤1的一部分。在我的脚本中没有任何地方存在字符串“exmail.example.com”。有大量的十六进制值发生了变化,“exmail.example.com”可能被编码成其中一个,但我不知道。

问:有没有人知道如何使用注册表设置代理服务器以进行交换,是否可以这样做,或者是否有这个设置的注册密钥?

由于

帕特里克

1 个答案:

答案 0 :(得分:0)

以下是我为公司中希望做类似事情的人制作的READ_ME.txt


任务:在Outlook 2007中为Exchange设置代理服务器

要求: -RegFromApp(\ nas \ it \ MS \ ExchangeSetup) -PowerShell

方法: - 打开Outlook和RegFromApp。 - 选择outlook作为RegFromApp中要监控的流程 - 对outlook设置进行适当的更改。 - 对注册表的更改将记录在RegFromApp中。 - 编写Powershell脚本以对注册表进行这些更改。 - 要自动执行Powershell脚本,您需要创建一个更改执行策略的.BAT文件  暂时将PowerShell设置为RemoteSigned并恢复它出于安全原因受限制。

注意: -RegFromApp将为您提供对注册表所做的每项更改。实际上只需要少数几个进行适当的更改  Outlook中的设置。 - 此方法应能够更改在Windows XP或更高版本上运行的任何程序的任何设置,并且是用户推荐的  在stackoverflow上,他必须对10000台计算机的网络进行类似的更改。 - 要运行此脚本,请执行位于\ nas \ it \ MS \ ExchangeSetup的exchange_setup.BAT

PowerShell脚本:

Stop-Process -processname outlook
$regkey1 = "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging     Subsystem\Profiles\Outlook\13dbb0c8aa05101a9bb000aa002fc45a"
$regkey2 = "HKCU:\Software\Microsoft\Exchange"
set-itemproperty -path $regkey1 -name 00036623 -value ([byte[]](0x2b,0x00,0x00,0x00))    #this value is used for binary regkeys
set-itemproperty -path $regkey1 -name 001f6622 -value ([byte[]](0x65,0x00,0x6D,0x00,0x61,0x00,0x69,0x00,0x6C,0x00,0x2E,0x00,0x6A,0x00,0x6F,0x00,0x6E,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x6E,0x00,0x67,0x00,0x2E,0x00,0x63,0x00,0x6F,0x00,0x6D,0x00,0x00,0x00)) 
set-itemproperty -path $regkey1 -name 001f6625 -value ([byte[]](0x00,0x00))
set-itemproperty -path $regkey1 -name 00036627 -value ([byte[]](0x01,0x00,0x00,0x00))
set-itemproperty -path $regkey1 -name 00036601 -value ([byte[]](0x84,0x19,0x00,0x00))
set-itemproperty -path $regkey2 -name LogonDomain -value jonesgroup         #this value is used for string regkeys

[System.Diagnostics.Process]::Start("outlook").WaitForExit()

set-itemproperty -path $regkey1 -name 00036623 -value ([byte[]](0x23,0x00,0x00,0x00))

[System.Diagnostics.Process]::Start("outlook")

.BAT档案:

powershell.exe -executionpolicy remotesigned -file     \\nas\it\MS\ExchangeSetup\exchange_setup.ps1
set-executionpolicy restricted