Skip to content

Commit 60637c7

Browse files
updated AD-Connector with imported TeamViewerPS module functions
1 parent 1705b6b commit 60637c7

File tree

12 files changed

+187
-856
lines changed

12 files changed

+187
-856
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
# Change Log
22

3+
## [2.0.0]
4+
5+
- imported TeamViewePS module for API calls
6+
37
## [1.5.0]
48

59
- Removed company permissions
610
- Removed Conditional Access synchronization support (access groups)
711
- Harmonize code format
812
- Updated year in copyright
13+
- Removed Conditional Access synchronization support.
914

1015
## [1.4.1]
1116

Configure TeamViewer AD Connector.bat

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
SETLOCAL
33

44
CD /D "%~dp0"
5-
POWERSHELL -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command "& {.\TeamViewerADConnector\Invoke-Configuration.ps1 ; exit $LastExitCode }"
5+
POWERSHELL -ExecutionPolicy Bypass -Command "& { .\TeamViewerADConnector\Invoke-ImportedTeamViewerPSModule.ps1 -Verbose ; exit $LastExitCode }"
6+

TeamViewerADConnector/Internal/Forms/MainWindow.xaml

Lines changed: 118 additions & 175 deletions
Large diffs are not rendered by default.

TeamViewerADConnector/Internal/GraphicalUserInterface.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ function Invoke-GraphicalUserInterfaceConfiguration($configuration, [string] $cu
149149
} })
150150

151151

152-
$scheduledSyncIntervalsData = (Get-SupportedScheduledSyncIntervals | ForEach-Object {
152+
$scheduledSyncIntervalsData = (Get-SupportedScheduledSyncIntervals | ForEach-Object {
153153
New-Object PSObject -Prop @{
154154
Tag = "$_"
155155
Content = $_
@@ -222,7 +222,7 @@ function Invoke-GraphicalUserInterfaceConfiguration($configuration, [string] $cu
222222
# Click Handler Button "Test Token"
223223
$mainWindow.FindName('BtnTestToken').Add_Click( {
224224
try {
225-
$tokenValid = (Invoke-TeamViewerPing $mainWindow.DataContext.ConfigurationData.ApiToken)
225+
$tokenValid = (Invoke-TeamViewerPing -ApiToken (ConvertTo-SecureString $mainWindow.DataContext.ConfigurationData.ApiToken -AsPlainText -Force))
226226
}
227227
catch {
228228
Write-Error "Token test failed: $_"

TeamViewerADConnector/Internal/Localization/GraphicalUserInterface.de.json

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
2-
"AccountTypeDefaultPassword": "Vorgegebenes Passwort:",
3-
"AccountTypeGeneratedPassword": "Zufällig generiertes Passwort",
4-
"AccountTypeSso": "Single Sign-On(SSO):",
2+
"AccountTypeDefaultPassword": "Konten mit vorgegebenem Passwort erstellen:",
3+
"AccountTypeGeneratedPassword": "Konten mit generiertem Passwort erstellen",
4+
"AccountTypeSso": "Single Sign-On verwenden (benötigt Tensor Lizenz)",
55
"Add": "Hinzufügen",
66
"Apply": "Übernehmen",
77
"Cancel": "Abbrechen",
@@ -12,27 +12,18 @@
1212
"InstallError": "Geplante Aufgabe konnte nicht eingerichtet werden!",
1313
"IntervalUnit": "Stunden",
1414
"LabelADGroups": "AD Gruppen:",
15-
"LabelADHeader": "Active Directory Gruppen:",
16-
"LabelAccountType": "Anmeldeverfahren:",
17-
"LabelADConnectorSettings": "Einstellungen des Active Directory Connectors",
15+
"LabelAccountType": "Kontotyp:",
1816
"LabelApiToken": "API Token:",
19-
"LabelAuthentication": "Authentifizierung:",
2017
"LabelCustomerId": "Customer ID:",
2118
"LabelDefaultPassword": "Init. Passwort:",
2219
"LabelInterval": "Intervall:",
2320
"LabelLanguage": "Sprache:",
2421
"LabelLogDirectory": "Logverzeichnis:",
25-
"LabelLogDirectoryHeader": "Definieren Sie den Ordner, in dem Protokolle gespeichert werden.",
26-
"LabelLogging": "Protokollierung:",
27-
"LabelOptions": "Synchronisierungseinstellungen:",
28-
"LabelOtherUserSettings": "Andere:",
29-
"LabelScheduledTaskHeader": "Fügt eine geplante Aufgabe hinzu, die den Active Directory Connector regelmäßig mit der gespeicherten Konfiguration ausführt.",
22+
"LabelOptions": "Optionen:",
3023
"LabelSelectedADGroups": "Ausgewählte AD Gruppen:",
3124
"LabelStatus": "Status:",
32-
"LabelSyncHeader": "Synchronisierungseinstellungen festlegen",
33-
"LabelUserSettingsHeader": "Die Einstellungen definieren, die für alle exportierten Benutzer innerhalb von TeamViewer vorgegeben werden.",
3425
"LoadingADGroups": "Lade Active Directory Gruppen ...",
35-
"LogDirectoryWarning": "Der angegebene Ordner existiert nicht. Bitte erstellen Sie den Ordner.",
26+
"LogDirectoryWarning": "Der angegebene Ordner existiert nicht. Bitte erstellen sie den Ordner.",
3627
"OK": "OK",
3728
"RecursiveGroups": "Benutzer verschachtelter AD Gruppen einschließen",
3829
"Remove": "Entfernen",
@@ -41,26 +32,24 @@
4132
"ScheduledSyncDisabled": "Geplante Aufgabe ist nicht konfiguriert",
4233
"ScheduledSyncEnabled": "Geplante Aufgabe ist konfiguriert",
4334
"SectionConfiguration": "Konfiguration",
44-
"SectionScheduledSync": "Geplante Aufgabe:",
45-
"SyncCompleted": "Abgeschlossen",
46-
"SyncCreateUpdateUser": "Benutzer erstellen/aktualisieren",
47-
"SyncDeactivateUser": "Benutzer deaktivieren",
48-
"SyncError": "Benutzersynchronisierung war nicht erfolgreich!",
35+
"SectionScheduledSync": "Geplante Aufgabe",
36+
"SyncCompleted": "Fertig",
37+
"SyncCreateUpdateUser": "Erstelle/aktualisiere Benutzer",
38+
"SyncDeactivateUser": "Deaktiviere Benutzer",
39+
"SyncError": "Synchronisierung der Benutzer fehlgeschlagen!",
4940
"SyncGetActiveDirectoryGroupMembers": "Mitglieder der Active Directory Gruppen werden abgerufen",
50-
"SyncGetTeamViewerUserGroups": "TeamViewer-Benutzergruppen werden abgerufen",
51-
"SyncGetTeamViewerUsers": "Benutzer der TeamViewer-Firma werden abgerufen",
52-
"SyncUserGroups": "Synchronisiere TeamViewer-Benutzergruppen",
41+
"SyncGetTeamViewerUserGroups": "TeamViewer User Gruppen werden abgerufen",
42+
"SyncGetTeamViewerUsers": "Benutzer der TeamViewer Company werden abgerufen",
43+
"SyncUserGroups": "Synchronisiere TeamViewer User Gruppen",
5344
"TabHeaderAccounts": "TeamViewer Konten",
5445
"TabHeaderGroups": "Gruppen",
55-
"TabHeaderUserSettings": "Benutzereinstellungen",
56-
"TabHeaderSettings": "Einstellungen",
5746
"TabHeaderSynchronization": "Synchronisierung",
5847
"TestRun": "Testlauf",
5948
"TestToken": "Token prüfen",
6049
"TestTokenFailure": "Das Token ist ungültig!",
61-
"TestTokenSuccess": "Token erfolgreich geprüft!",
50+
"TestTokenSuccess": "Token erfolgreicht geprüft!",
6251
"Title": "TeamViewer AD Connector",
63-
"Uninstall": "Deinstallieren",
52+
"Uninstall": "Entfernen",
6453
"UninstallError": "Geplante Aufgabe konnte nicht entfernt werden!",
6554
"UseSecondaryEmails": "Sekundäre E-Mail-Adressen ebenfalls berücksichtigen",
6655
"UserLanguage_bg": "Bulgarisch (bg)",
@@ -73,7 +62,7 @@
7362
"UserLanguage_fi": "Finnisch (fi)",
7463
"UserLanguage_fr": "Französisch (fr)",
7564
"UserLanguage_hr": "Kroatisch (hr)",
76-
"UserLanguage_hu": "Ungarisch (hu)",
65+
"UserLanguage_hu": "Ungarsich (hu)",
7766
"UserLanguage_id": "Indonesisch (id)",
7867
"UserLanguage_it": "Italienisch (it)",
7968
"UserLanguage_ja": "Japanisch (ja)",

TeamViewerADConnector/Internal/Localization/GraphicalUserInterface.en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,4 @@
9191
"UserLanguage_vi": "Vietnamese (vi)",
9292
"UserLanguage_zh_CN": "Simple Chinese (zh_CN)",
9393
"UserLanguage_zh_TW": "Traditional Chinese (zh_TW)"
94-
}
94+
}

TeamViewerADConnector/Internal/Sync.ps1

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -136,23 +136,26 @@ function Invoke-SyncPrework($syncContext, $configuration, $progressHandler) {
136136
# Users are mapped to their email addresses.
137137
Write-SyncProgress -Handler $progressHandler -PercentComplete 10 'GetTeamViewerUsers'
138138
Write-SyncLog 'Fetching TeamViewer company users'
139-
140-
$usersTVByEmail = (Get-TeamViewerUser $configuration.ApiToken)
139+
$usersTVByEmail = (Get-TeamViewerUser -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force))
141140
Write-SyncLog "Retrieved $($usersTVByEmail.Count) TeamViewer company users"
142141

143142
if ($configuration.EnableUserGroupsSync) {
144143
# Fetch all available user groups
145144
Write-SyncProgress -Handler $progressHandler -PercentComplete 20 'GetTeamViewerUserGroups'
146145
Write-SyncLog 'Fetching list of TeamViewer user groups.'
147-
$userGroups = @(Get-TeamViewerUserGroup $configuration.ApiToken)
146+
$userGroups = @(Get-TeamViewerUserGroup -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force))
148147
Write-SyncLog "Retrieved $($userGroups.Count) TeamViewer user groups."
149148

150149
# Fetch user group members
151150
$userGroupMembersByGroup = @{}
152151

153152
foreach ($userGroup in $userGroups) {
154153
Write-SyncLog "Fetching members of TeamViewer user group '$($userGroup.name)'"
155-
$userGroupMembers = @(Get-TeamViewerUserGroupMember $configuration.ApiToken $userGroup.id)
154+
if ($null -eq $userGroup) {
155+
Write-Host 'UserGroup is null'
156+
break
157+
}
158+
$userGroupMembers = @(Get-TeamViewerUserGroupMember -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force) -Id $userGroup.id)
156159
Write-SyncLog "Retrieved $($userGroupMembers.Count) members of TeamViewer user group '$($userGroup.name)'"
157160
$userGroupMembersByGroup[$userGroup.id] = $userGroupMembers
158161
}
@@ -194,7 +197,7 @@ function Invoke-SyncUser($syncContext, $configuration, $progressHandler) {
194197
$updatedUser.active = $true
195198

196199
try {
197-
Edit-TeamViewerUser $configuration.ApiToken $userTv.id $updatedUser | Out-Null
200+
Set-TeamViewerUser -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force) $userTv.id $updatedUser | Out-Null
198201
$statistics.Updated++
199202
}
200203
catch {
@@ -230,7 +233,7 @@ function Invoke-SyncUser($syncContext, $configuration, $progressHandler) {
230233
}
231234

232235
try {
233-
$addedUser = (Add-TeamViewerUser $configuration.ApiToken $newUser)
236+
$addedUser = (Add-TeamViewerUser -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force) $newUser)
234237
$newUser.id = $addedUser.id
235238
$syncContext.UsersTeamViewerByEmail[$newUser.email] = $newUser
236239
$statistics.Created++
@@ -254,7 +257,7 @@ function Invoke-SyncUser($syncContext, $configuration, $progressHandler) {
254257
# This information is used to not accidentially deactivate the token owner,
255258
# which would block further processing of the script.
256259
Write-SyncLog 'Trying to fetch account information of configured TeamViewer API token'
257-
$currentAccount = Get-TeamViewerAccount $configuration.ApiToken -NoThrow
260+
$currentAccount = Get-TeamViewerAccount -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force) -NoThrow
258261

259262
if (!$currentAccount) {
260263
Write-SyncLog 'Unable to determine token account information. Please check API token permissions.'
@@ -271,7 +274,7 @@ function Invoke-SyncUser($syncContext, $configuration, $progressHandler) {
271274
Write-SyncLog "Deactivating TeamViewer user $($user.email)"
272275
if (!$configuration.TestRun) {
273276
try {
274-
Disable-TeamViewerUser $configuration.ApiToken $user.id | Out-Null
277+
Set-TeamViewerUser -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force) $user.id | Out-Null
275278
$statistics.Deactivated++
276279
}
277280
catch {
@@ -316,7 +319,7 @@ function Invoke-SyncUserGroups($syncContext, $configuration, $progressHandler) {
316319
Write-SyncLog "Creating user group '$adGroupName'"
317320
if (!$configuration.TestRun) {
318321
try {
319-
$userGroup = (Add-TeamViewerUserGroup $configuration.ApiToken $adGroupName)
322+
$userGroup = (Add-TeamViewerUserGroup -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force) $adGroupName)
320323
$statistics.CreatedGroups++
321324
}
322325
catch {
@@ -359,7 +362,7 @@ function Invoke-SyncUserGroups($syncContext, $configuration, $progressHandler) {
359362
$currentMembersToAdd = $_
360363

361364
try {
362-
(Add-TeamViewerUserGroupMember $configuration.ApiToken $userGroup.id $currentMembersToAdd) | Out-Null
365+
(Add-TeamViewerUserGroupMember -ApiToken (ConvertTo-SecureString $configuration.ApiToken) $userGroup.id $currentMembersToAdd -AsPlainText -Force) | Out-Null
363366
$statistics.AddedMembers += $currentMembersToAdd.Count
364367
}
365368
catch {
@@ -376,20 +379,20 @@ function Invoke-SyncUserGroups($syncContext, $configuration, $progressHandler) {
376379
$membersToRemove = @()
377380

378381
foreach ($userGroupMember in $userGroupMembers) {
379-
$userTv = ($usersTv | Where-Object { $_.id.Trim('u') -Eq $userGroupMember.accountId })
382+
$userTv = ($usersTv | Where-Object { $_.id.Trim('u') -eq $userGroupMember.accountId })
380383

381384
if (!$userTv) {
382385
Write-SyncLog "User '$($userGroupMember.name)' will be removed from user group '$($userGroup.name)'"
383386
$membersToRemove += $userGroupMember.accountId
384387
}
385388
}
386389
Write-SyncLog "Removing $($membersToRemove.Count) members from user group '$($userGroup.name)'"
387-
if (!$configuration.TestRun -And $membersToRemove.Count -Gt 0) {
390+
if (!$configuration.TestRun -and $membersToRemove.Count -gt 0) {
388391
$membersToRemove | Split-Bulk -Size 100 | ForEach-Object {
389392
$currentMembersToRemove = $_
390393

391394
try {
392-
(Remove-TeamViewerUserGroupMember $configuration.ApiToken $userGroup.id $currentMembersToRemove) | Out-Null
395+
(Remove-TeamViewerUserGroupMember -ApiToken (ConvertTo-SecureString $configuration.ApiToken -AsPlainText -Force) $userGroup.id $currentMembersToRemove) | Out-Null
393396
$statistics.RemovedMembers += $currentMembersToRemove.Count
394397
}
395398
catch {

0 commit comments

Comments
 (0)