Jump to content

Tastenbelegung vom Template auf alle User anwenden


Manny

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

 

Link to comment
Share on other sites


  • Most Valued User

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

Link to comment
Share on other sites


  • Most Valued User

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
 

Link to comment
Share on other sites


  • 2 months later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.