Выполните команду, если пользователь найден в OU, с помощью -Searchbase

Это специфично для данного приложения системы управления документами (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 }

Что происходит, надстройка для всех 3 сайтов добавлены для Outlook, что я не хочу. Если я использую тот же код на машине служб удаленного терминала, он выполняется только для $Office1 и останавливается, даже если пользователь $Office2 или же $Office3

Мои вопросы:

  1. Как я могу использовать -Searchbase для выполнения правильной команды для нужного офиса? "Если вошедшим в систему пользователем является $env:username, ищите в OU и затем выполняйте $thisexe"
  2. Мои операторы if неверны, но я не получаю эффективный метод использования функции Switch. РЕДАКТИРОВАТЬ: просто чтобы посмотреть, как это работает, я запустил скрипт без каких-либо условий, и он просто выполняет каждую строку последовательно, а теперь я я еще больше запутался.

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
Другие вопросы по тегам