[PowerShell][IIS]透過指令方式調整機碼,以開啟遠端管理作為範例

透過指令方式調整機碼,以開啟遠端管理作為範例。

前置需求:
#確保目標電腦已安裝IIS[管理服務],安裝方式請參考: [IIS]安裝IIS管理服務(Management Service)
#機碼位置:HKLM:\SOFTWARE\Microsoft\WebManagement\Server 預設值為0(不啟用)

範例:
#建立一個[對目標電腦調整機碼]的function
function Set-RemoteRegistryValue {
    param(
        $ComputerName,
        $Path,
        $Name,
        $Value,
        [ValidateNotNull()]
        [System.Management.Automation.PSCredential]
        [System.Management.Automation.Credential()]
        $Credential = [System.Management.Automation.PSCredential]::Empty
    )
		
        $null = Invoke-Command -ComputerName $ComputerName -ScriptBlock {
            Set-ItemProperty -Path $using:Path -Name $using:Name -Value $using:Value
        } -Credential $Credential
}

#----執行範例----
#----[範例一]需手動提供認證相關資訊(帳/密),預設為空白認證----
$remoteKeyParams = @{
    ComputerName = $env:COMPUTERNAME
    Path = 'HKLM:\SOFTWARE\Microsoft\WebManagement\Server'
    Name = 'EnableRemoteManagement'
    Value = '1'
}

#無預設使用者名稱
#Set-RemoteRegistryValue @remoteKeyParams -Credential (Get-Credential)
#預設使用者名稱為 Administrator
Set-RemoteRegistryValue @remoteKeyParams -Credential Administrator

#----[範例二]自動提供認證相關資訊(帳Administrator/密P@ssw0rd),預設為空白認證----
$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ("Administrator", $password)

$remoteKeyParams = @{
    ComputerName = $env:COMPUTERNAME
    Path = 'HKLM:\SOFTWARE\Microsoft\WebManagement\Server'
    Name = 'EnableRemoteManagement'
    Value = '1'
}

Set-RemoteRegistryValue @remoteKeyParams -Credential $Cred

#----[範例三]沒有認證執行,用預設空白認證連線----
$remoteKeyParams = @{
    ComputerName = $env:COMPUTERNAME
    Path = 'HKLM:\SOFTWARE\Microsoft\WebManagement\Server'
    Name = 'EnableRemoteManagement'
    Value = '1'
}

Set-RemoteRegistryValue @remoteKeyParams

#----當Cmdlet版本不支援認證物件或不允許空白認證----
#請參考官方文件解法

參考資料:
Add Credential support to PowerShell functions

相關文章:
[IIS]安裝IIS管理服務(Management Service)
[PowerShell][JSON][Http] 透過PowerShell監控服務運行狀態
[PowerShell][Windows Server]使用PowerShell遠端連線Windows Server 2019並下指令

嘗試以自己的角度來整理並紀錄,也許會對一些人有幫助。

文章有錯、參考聯結有漏或是連結失效..等,還請幫忙告知,謝謝。
另外參考資料中有很多更棒的文章,建議多看看。