Compartir a través de


Deshabilitar la Panel de control heredada (CSCP)

Tras el lanzamiento de La nueva Panel de control, desde Skype Empresarial Server compilación 2019 2046.524, estamos agregando compatibilidad con dos nuevas claves del Registro que, cuando estén presentes, validen la entrada y deshabilite la Panel de control original (CSCP) desde el menú de opciones de inicio.

SOFTWARE\Microsoft\Real-Time Communications{5DC8C4D5-5133-4CE5-BF4E-8C459BF419D6}\DMR : Agrega la validación para el servidor de supervisión.

SOFTWARE\Microsoft\Real-Time Communications{5DC8C4D5-5133-4CE5-BF4E-8C459BF419D6}\OCP : Clave del Registro para deshabilitar el Panel de control original (CSCP)

Nota

Si las claves del Registro no están presentes, no habrá ningún cambio en el comportamiento de inicio Panel de control.

El siguiente script de PowerShell agrega las dos nuevas claves del Registro:

[CmdletBinding()]
param (
    [switch]$Undo
)

# IIS site details
$iisSiteName = "Skype for Business Server Internal Web Site"
$iisAppName = "cscp"
$iisAppPhysicalPathOld = "C:\Program Files\Skype for Business Server 2019\Web Components\AdminUI"
$iisAppPhysicalPath = "C:\Program Files\Skype for Business Server 2019\Web Components"

# Load the WebAdministration module
Import-Module WebAdministration

if ($Undo) {
    # Undo the changes made by the script
    $parentKey = "HKLM:\SOFTWARE\Microsoft\Real-Time Communications\{5DC8C4D5-5133-4CE5-BF4E-8C459BF419D6}"
    $registryKeys = @("DMR", "OCP")

    foreach ($key in $registryKeys) {
        $registryKey = "$parentKey\$key"
        # Check if the key exists before removing it
        if (Test-Path $registryKey) {
            Remove-Item -Path $registryKey -Recurse -Force
            Write-Host "Registry key '$registryKey' removed."
        } else {
            Write-Host "Registry key '$registryKey' does not exist. No changes were made."
        }
    }

     # IIS application changes
    # Check if the IIS site exists
    if ($iisSite = Get-Website $iisSiteName -ErrorAction SilentlyContinue) {
        # Check if the application exists
        $existingApp = Get-WebApplication -Site $iisSiteName | Where-Object { $_.Path -eq "/$iisAppName" }
        if ($existingApp) {
            # If the application exists, change the Physical Path using Set-WebConfigurationProperty
            Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/site[@name='$iisSiteName']/application[@path='/$iisAppName']/virtualDirectory[@path='/']" -Name "physicalPath" -Value $iisAppPhysicalPathOld
            Write-Host "IIS application '$iisAppName' Physical Path changed to '$iisAppPhysicalPathOld'."
        } else {
            Write-Host "IIS application '$iisAppName' does not exist. The Physical Path cannot be changed."
        }
    } else {
        Write-Host "IIS site '$iisSiteName' does not exist. The application cannot be changed."
    }
}
else {
    # Apply the changes

    # Registry changes
    $parentKey = "HKLM:\SOFTWARE\Microsoft\Real-Time Communications\{5DC8C4D5-5133-4CE5-BF4E-8C459BF419D6}"
    $registryKeys = @("DMR", "OCP")

    foreach ($key in $registryKeys) {
        $registryKey = "$parentKey\$key"
        # Check if the key exists
        if (-Not (Test-Path $registryKey)) {
            # If the key does not exist, create it with a default value or add any necessary subkeys or values
            New-Item -Path $registryKey -Force | Out-Null
            Write-Host "Registry key '$registryKey' and values created."
        } else {
            Write-Host "Registry key '$registryKey' already exists."
        }
    }

    # IIS application changes
    # Check if the IIS site exists
    if ($iisSite = Get-Website $iisSiteName -ErrorAction SilentlyContinue) {
        # Check if the application exists
        $existingApp = Get-WebApplication -Site $iisSiteName | Where-Object { $_.Path -eq "/$iisAppName" }
        if ($existingApp) {
            # If the application exists, change the Physical Path using Set-WebConfigurationProperty
            Set-WebConfigurationProperty -Filter "/system.applicationHost/sites/site[@name='$iisSiteName']/application[@path='/$iisAppName']/virtualDirectory[@path='/']" -Name "physicalPath" -Value $iisAppPhysicalPath
            Write-Host "IIS application '$iisAppName' Physical Path changed to '$iisAppPhysicalPath'."
        } else {
            Write-Host "IIS application '$iisAppName' does not exist. The Physical Path cannot be changed."
        }
    } else {
        Write-Host "IIS site '$iisSiteName' does not exist. The application cannot be changed."
    }
}

Write-Host "Restarting IIS Server"
# Perform IIS reset
iisreset
Write-Host "Done"

Nota

Si ha ejecutado accidentalmente el script anterior y desea revertir los cambios, ejecute el script de PowerShell anterior con -Undo el parámetro.