Jump to content
Manny

Tastenbelegung vom Template auf alle User anwenden

Recommended Posts

Hallo zusammen,

ich versuche mit meinen rudimentären PS Kenntnissen die Tastaturbelegungen von einem Benutzer auf alle anzuwenen.

Vielleicht kann mir ja jemand unter die arme greifen ?

 

$user = "HansWurst"
$userDataTemplate = (Get-IpPbxUser -Name $user | Get-IpPbxUserData)
$userData = $userDataTemplate.m_PhoneSettings | Where-Object { $_.PhoneType -eq "OpenStage 40" -or $_.PhoneType -eq "OpenStage 60"}
Set-IpPbxUserData -UserEntry "$user" -UserData $userData 

 

Fehlermeldung:

PS C:\Users\Administrator.SCHNEIDER-DC> Set-IpPbxUserData -UserEntry "$user" -UserData $userData
Set-IpPbxUserData : Die Argumenttransformation für den Parameter "UserData" kann nicht verarbeitet werden. Der
Wert "System.Object[]" vom Typ "System.Object[]" kann nicht in den Typ "IpPbxBLOB.UserSettings" konvertiert
werden.
In Zeile:1 Zeichen:48
+ Set-IpPbxUserData -UserEntry "$user" -UserData $userData
+                                                ~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Set-IpPbxUserData], ParameterBindingArgumentTransformationExcepti
   on
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,Set-IpPbxUserData

 

 

Mit freundlichen Grüßen

Manny

 

Share this post


Link to post
Share on other sites

Hallo Manny,

 

du darfst bei dem folgenden Befehl $user nicht in " setzen:


Set-IpPbxUserData -UserEntry $user -UserData $userData

 

Des Weiteren rate ich dir dringend dazu nicht einzelne sondern alle Phone Settings zu kopieren.
Andernfalls könnte dies zu kuriosen Effekten führen.
Hier mein Vorschlag:

 

# Connect via Windows Authentication
Connect-IpPbx
 

# Get source user data
$sourceUserData = Get-IpPbxUserData -UserName "Sebastian"
 

# Get target user and user data
$targetUser = Get-IpPbxUser -UserName "Inneke"
$targetUserData = Get-IpPbxUserData -UserEntry $targetUser
 

# Copy Phone Settings
$targetUserData.m_iNumberOfPhoneSettings = $sourceUserData.m_iNumberOfPhoneSettings
$targetUserData.m_PhoneSettings = $sourceUserData.m_PhoneSettings
 

# Save changes
Set-IpPbxUserData -UserEntry $targetUser -UserData $targetUserData
 

# Cleanup
Disconnect-IpPbx

 

Kind regards

 

Sebastian Dreier

Share this post


Link to post
Share on other sites

Hallo,

vielen Dank für das Script.

Ich habe es gerade getestet.

Leider werden die Leitungstasten nicht mit übernommen.

 

Quelle:

quelle.png.2d8c6bdbaf321a6c28370023aa678770.png

 

Ziel:

ziel.png.e83509518e097bbd2b9d3201fdab4e31.png

 

Haben Sie eine Idee warum das nicht übernommen wird?

 

Gruß

Manny

 

Edited by Manny

Share this post


Link to post
Share on other sites

Hallo Manny,

 

das Verhalten ist sogar logisch. Du musst natürlich sicherstellen, dass die Zielbenutzer nicht weniger Leitungstasten haben als der Quellbenutzer:

 

# Connect via Windows Authentication
Connect-IpPbx
 

# Get source user entry and user data
$sourceUser = Get-IpPbxUser -UserName "Sebastian"
$sourceUserData = Get-IpPbxUserData -UserEntry $sourceUser
 

# Get target user entry and user data
$targetUser = Get-IpPbxUser -UserName "Inneke"
$targetUserData = Get-IpPbxUserData -UserEntry $targetUser
 

# Check Line Keys of target user
if ($targetUserData.m_iNumberOfLineKeys -lt $sourceUserData.m_iNumberOfLineKeys)
{
    Set-IpPbxUserLineKeyCount -UserEntry $targetUser -Count $sourceUserData.m_iNumberOfLineKeys
}

# THE HARD WAY -> JUST SET THE LINE KEY AMOUNT WITHOUT ANY CHECK
Set-IpPbxUserLineKeyCount -UserEntry $targetUser -Count $sourceUserData.m_iNumberOfLineKeys


# Receive updated target user data
$targetUserData = Get-IpPbxUserData -UserEntry $targetUser


# Copy Phone Settings
$targetUserData.m_iNumberOfPhoneSettings = $sourceUserData.m_iNumberOfPhoneSettings
$targetUserData.m_PhoneSettings = $sourceUserData.m_PhoneSettings


# Save changes
Set-IpPbxUserData -UserEntry $targetUser -UserData $targetUserData


# IMPORTANT
# Do not forget to disconnect
# This releases memory on the IpPbx server

Disconnect-IpPbx
 

Kind regards

 

Sebastian Dreier
 

Share this post


Link to post
Share on other sites

Hallo,

mit welchen Befehl kann ich die Tastenbelegung auf alle Tln einer Gruppe schreiben?

Für alle 50 Tln möchte ich einen neuen Tastenstandard vergeben, z.B. für alle Tln der "Konfig-Grp".

 

Gruß awado

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.