Jump to content

Powershell - Skin einzelner User ändern


Stepke97

Recommended Posts

Hallo zusammen, 

ich würde gerne den Skin aller User einer Gruppe per Powershell ändern. 

Soweit ich weiß, hat der User selbst kein Attribut "Skin" o.ä. - ich habe nur die folgenden Funktionen zu diesem Thema gefunden: 

Get-IpPbxDefaultSkin 

Set-IpPbxDefaultSkin

Reset-IpPbxUserSkin    

Wobei sich Get-IpPbxDefaultSkin  und  Set-IpPbxDefaultSkin ja auf den Server-Standard-skin beziehen und nur Reset-IpPbxUserSkin auf einen User-Skin bezieht. 

 

Somit hier vielleicht ein kleiner Weg wie man es umgehen könnte...?:

# -------------------
#      Config
# -------------------
[string]$NeuerSkin = "4Sellers Shop.cab"
[string]$zuaendernde_Gruppe = "IT Intern (Gruppe)"
# -------------------
#      Script
# -------------------
#Connect to Server
Connect-IpPbx
#Standard Skin abspeichern
$DefaultSkin = Get-IpPbxDefaultSkin
# Temporär den neuen Skin als default einstellen
Set-IpPbxDefaultSkin -SkinFileName $NeuerSkin
# Für jeden User der Gruppe den Skin reseten
Get-IpPbxGroupMember -GroupName $zuaendernde_Gruppe | ForEach-Object {
      Reset-IpPbxUserSkin    
}
# Änderung des Default Skins rückgängig machen.
Set-IpPbxDefaultSkin -SkinFileName $DefaultSkin

 

Ist dies so möglich?

Normal dürfte es ja nichts ausmachen, wenn ich den Standard-Skin des Servers kurz ändere, oder?

Vielleicht auch ein generelles Missverständnis der oben genannten Funktionen? (Bin gerade in Swyx-Shell noch ein rechter Neuling...)

 

Bin auch für alternative/bessere Scriptvorschläge dankbar!

 

 

Freue mich auf Antworten!

Link to comment
Share on other sites


  • 7 months later...

Ja es geht,man muss aber mit den Befehlen Get-IpPbxUserData die Attribute des Benutzers auslesen, modifizieren und danach wieder mit Set-IpPbxUserData in die Datenbank schreiben.

 

Ich nutze es selber, wenn ich die Speeddialkeys für unsere User ändere. Der Charme an dieser Methode ist, dass man das Updaten von 150 Namekeys im laufenden Betrieb machen kann, ohne

dass der Netphone Clienten beim User bestürzt.

 

Man muss aber darauf achten, dass hier nur der Name eingetragen wird, die der User laden soll. Es empfiehlt sich nach einiger Zeit den Skin wieder auf Systemstandard wieder zu resetten.

# Establish connection to the Swyx database
Write-Host " Establish connection to the Swyx database "

# Import Netphone Module
Import-Module IpPbx
# Establisch Connection to Netphone/Swyx Server
Connect-IpPbx -ServerName *EIGENER_SWYXSERVER

#**************************************************************************
# 

# Import Speeddialkeys to an Array
$Keys = Import-Csv -Path "PATH_TO_NAMEKEY_IN_TXT\namekey.txt" -Delimiter ";" -Encoding UTF8

# Get the User, that will have their Speeddialkeys modified and put them into an Array.
# We Are Using Netphone/Swyx Groups to select the users. 
$Members = Get-IpPbxGroupMember -GroupName "Konfig-Gruppe"

#**************************************************************************

Foreach($Member in $Members) {

#########################################################################
# Optional - change the Skin manually									#
# 									                                    #
#########################################################################

### Change the Skin the User Loads ( New Skin )
$UserData = Get-IpPbxUser -UserName $Member.Name | Get-IpPbxUserData
$UserData.m_szSkinName = "NAME_OF_THE_NEW_SKIN.cab"
Set-IpPbxUserData -UserData $UserData -UserName $Member.Name

Foreach($Key in $Keys) {
### Get the Users Namekey object, that we want to modify.
$updatenamekey = Get-IpPbxSpeedDialKey -UserName $Member.Name -SpeedDialKeyId $Key.Idx

### modify the existing namekey according to our new $Keys list.
$updatenamekey.Label = $Key.Name  
$updatenamekey.DialNumber = $Key.Nummer
$updatenamekey.DialImmediately = $False
$updatenamekey.DeleteforDial = $True 
$updatenamekey.DirectCall = $False 
$updatenamekey.UserBitmap = $Automatic

### Update the selected $Key with the modiefied Namekey from $updatenamekey
Update-IpPbxSpeedDialKey -UserName $Member.Name -SpeedDialKey $updatenamekey

}

 

Link to comment
Share on other sites


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.