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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now