如果使用-Searchbase在OU中找到用户,则执行命令

时间:2017-06-21 05:30:28

标签: powershell worksite-sdk

这是我们使用的名为Worksite / Filesite的文档管理系统(DMS)应用程序的特定类型。基本上,我们有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

,也会停止

我的问题是:

  1. 如何使用-Searchbase为正确的办公室执行正确的命令? "如果登录的用户是$ env:username,则在OU中搜索基础,然后执行$ thisexe"
  2. 我的if语句错了,但我没有得到有效的方法来使用Switch功能 编辑:只是看看它是如何工作的,我运行脚本没有任何条件,它只是按顺序执行每一行,现在,我更加困惑。

1 个答案:

答案 0 :(得分:1)

也许你可以使用DistinguishedName:

$loggedinuser = get-aduser -Identity $env:UserName -Properties DistinguishedName 
if ($loggedinuser.DistinguishedName  -like "*Office1-User*") {

$Office1 = & 'C:\Program Files (x86)\Interwoven\WorkSite\addiman.exe OFFICE1-SRV'


}
etc