这是我们使用的文档管理系统 (DMS) 应用程序特有的一种,称为Worksite / Filesite
. 基本上,我们有 3 个办公室和 3 台服务器,如果人们从特定站点的 OU 登录,无论实际存在,运行以下命令后,他们都应该看到该站点的连接。我接近实现结果,但由于多种原因和在不同情况下它不起作用。
此代码在 Windows 10 机器上运行
Start-Process 'C:\Program Files (x86)\Microsoft Office\Office16\OUTLOOK.EXE'
Start-Process 'C:\Program Files (x86)\Internet Explorer\iexplore.exe'
$Office1 = & 'C:\Program Files (x86)\Interwoven\WorkSite\addiman.exe OFFICE1-SRV'
$Office2 = & 'C:\Program Files (x86)\Interwoven\WorkSite\addiman.exe OFFICE2-SRV'
$Office3 = & 'C:\Program Files (x86)\Interwoven\WorkSite\addiman.exe OFFICE3-SRV'
$loggedinuser = Get-ADUser -Identity $env:UserName
if (Select-String -Pattern "Office1-User" -InputObject $loggedinuser) { $Office1 }
if (Select-String -Pattern "Office2-User" -InputObject $loggedinuser) { $Office2 }
if (Select-String -Pattern "Office3-User" -InputObject $loggedinuser) { $Office3 }
发生的情况是,为 Outlook 添加了所有 3 个站点的加载项,这是我不想要的。如果我在远程终端服务机器上使用相同的代码,$Office1
即使用户来自任一$Office2
或$Office3
我的问题是:
- 如何使用 -Searchbase 为正确的办公室执行正确的命令?"如果登录用户是$env:username,在OU中搜索数据库然后执行$thisexe"
- 我的 if 语句是错误的,但我没有找到使用 Switch 函数的有效方法我更糊涂了。