[英]How to remote to the computer itself with powershell
現在,我需要在遠程計算機上運行腳本,以使用以下方法完成一些部署工作:
Invoke-Command -ComputerName $hostName -Credential $cred -ScriptBlock $scriptBlock
如果$ hostName是調用此命令的計算機,它將報告:
message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (myMachineName:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : AccessDenied,PSSessionStateBroken
我想以統一的方式運行命令,無論它是遠程計算機還是本地計算機。
更新:我正在使用Azure中的計算機。 該命令有效:
Invoke-Command -ComputerName XXX -Credential $cred -ScriptBlock $scriptBlock
但這不是:
Invoke-Command -ComputerName XXX.cloudapp.net -Credential $cred -ScriptBlock $scriptBlock
有人可以幫忙嗎?
傳遞localhost
作為計算機名:
Invoke-Command -ComputerName localhost -Credential $cred -ScriptBlock $scriptBlock
如@CB所述,也可以使用計算機的主機名。 在對問題的評論中:
Invoke-Command -ComputerName $env:COMPUTERNAME -Credential $cred `
-ScriptBlock $scriptBlock
如果您在其他地方需要FQDN,而只想刪除Invoke-Command
語句的域部分,則可以這樣刪除它:
Invoke-Command -ComputerName ($hostname -replace '\..*') -Credential $cred `
-ScriptBlock $scriptBlock
要根據給定的主機名是否是本地主機的名稱來處理目標計算機的名稱,可以執行以下操作:
$server = if (($hostname -replace '\..*') -eq $env:COMPUTERNAME) {
'localhost'
} else {
$hostname
}
Invoke-Command -ComputerName $server -Credential $cred -ScriptBlock $scriptBlock
請注意,無論哪種方式都必須在本地計算機上啟用WinRM才能使它起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.