Manny Posted September 12, 2018 #1 Share 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 Link to comment Share on other sites More sharing options...
Most Valued User Sebastian Dreier Posted September 12, 2018 Most Valued User #2 Share 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 Link to comment Share on other sites More sharing options...
Manny Posted September 12, 2018 Author #3 Share Posted September 12, 2018 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 Link to comment Share on other sites More sharing options...
Most Valued User Sebastian Dreier Posted September 12, 2018 Most Valued User #4 Share 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 Link to comment Share on other sites More sharing options...
Manny Posted September 17, 2018 Author #5 Share Posted September 17, 2018 Vielen Dank, läuft prima !!! Gruß Manny Link to comment Share on other sites More sharing options...
awado Posted November 21, 2018 #6 Share 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 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.