停用舊版 主控台 (CSCP)

從 商務用 Skype Server 組建 2019 2046.524 啟動新主控台之後,我們新增了兩個新登錄機碼的支援,在出現時驗證輸入並停用啟動選項功能表中的原始 主控台 (CSCP) 。

SOFTWARE\Microsoft\Real-Time Communications{5DC8C4D5-5133-4CE5-BF4E-8C459BF419D6}\DMR: 新增監控伺服器的驗證

SOFTWARE\Microsoft\Real-Time Communications{5DC8C4D5-5133-4CE5-BF4E-8C459BF419D6}\OCP:用於停用原始 主控台 (CSCP) 的登錄機碼

注意事項

如果沒有登錄機碼,則不會變更控制台啟動行為。

下列 PowerShell 腳本新增了兩個新的登錄機碼:

[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"

注意事項

如果您不小心執行上述腳本,並想要還原變更,請使用參數執行上述 PowerShell 腳本 -Undo