Manny 0 Report post Posted September 12, 2018 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 0 Share this post Link to post Share on other sites
Sebastian Dreier 12 Report post Posted September 12, 2018 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 0 Share this post Link to post Share on other sites
Manny 0 Report post Posted September 12, 2018 (edited) Hallo, vielen Dank für das Script. Ich habe es gerade getestet. Leider werden die Leitungstasten nicht mit übernommen. Quelle: Ziel: Haben Sie eine Idee warum das nicht übernommen wird? Gruß Manny Edited September 12, 2018 by Manny 0 Share this post Link to post Share on other sites
Sebastian Dreier 12 Report post Posted September 12, 2018 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 0 Share this post Link to post Share on other sites
Manny 0 Report post Posted September 17, 2018 Vielen Dank, läuft prima !!! Gruß Manny 0 Share this post Link to post Share on other sites
awado 0 Report post Posted November 21, 2018 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 0 Share this post Link to post Share on other sites