透過指令方式調整機碼,以開啟遠端管理作為範例。
前置需求:
#確保目標電腦已安裝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並下指令
嘗試以自己的角度來整理並紀錄,也許會對一些人有幫助。
文章有錯、參考聯結有漏或是連結失效..等,還請幫忙告知,謝謝。
另外參考資料中有很多更棒的文章,建議多看看。