我有一個腳本可以在本地或遠程運行(通過WinRM),但是我希望它在遠程計算機上運行時的行爲稍有不同。我意識到我可以將腳本切換到腳本以確定腳本是在本地還是遠程運行,但是我想知道腳本本身是否可以檢測它是否在遠程運行?如何檢查Powershell腳本是否正在遠程運行
回答
Get-Host
回報,除其他信息Name
:
PS> (Get-Host).Name ConsoleHost PS> (Invoke-Command -ComputerName dev2 -Script {Get-Host}).Name ServerRemoteHost
+1這是正確的方式! –
你可以在$ MyInvocation檢查計算機名:
PS>Invoke-Command -ComputerName smacnt01 -ScriptBlock {$MyInvocation}
PSComputerName : smacnt01
RunspaceId : 333f5333-0ca5-4461-8f38-cb086fbd1ea4
MyCommand : $MyInvocation
BoundParameters : {}
UnboundArguments : {}
ScriptLineNumber : 0
OffsetInLine : 0
HistoryId : -1
ScriptName :
Line :
PositionMessage :
InvocationName :
PipelineLength : 1
PipelinePosition : 1
ExpectingInput : False
CommandOrigin : Runspace
感謝Kayasax的迴應,不知道我將如何使用它來判斷腳本是否在遠程運行。除非腳本獲得啓動遠程調用的計算機名稱的某種方式,才能將其與$ MyInvocation中的值進行比較? –
在你啓動invoke-command的腳本中你可以調用$ env:computername no? –
這將工作,但我想避免傳遞給腳本額外的值,而是讓腳本找出它在$ Myinvocation –
我認爲這是可能在你的腳本測試,如果
$myinvocation.mycommand.path -eq $null
那麼如果是true
通過調用命令遠程運行。
我還沒有準確測試,但我認爲它可以工作。
if ($PSSenderInfo) {
"Running remote"
}
else {
"Running local"
}
- 1. 如何檢查是否在PowerShell中運行時通過腳本
- 2. 編寫腳本來檢查是否正在運行的遠程主機服務
- 3. 在PowerShell中運行遠程腳本
- 4. Bash腳本檢查進程是否正在運行
- 5. 如何從腳本本身檢查腳本是否正在運行?
- 6. 如何使用VB腳本檢查進程是否在運行?
- 7. powershell - 如何檢查成績單是否正在運行?
- 8. 如何通過批處理腳本檢查進程是否正在運行
- 9. 有沒有辦法檢查腳本是否由PowerShell ISE運行?
- 10. PowerShell腳本是否在Mono下運行?
- 11. 如何檢測遠程計算機是否正在運行RDP?
- 12. 檢查進程是否正在運行
- 13. 檢查程序是否正在運行
- 14. 檢查進程是否正在運行
- 15. 檢查程序是否正在運行
- 16. PowerShell:如何在遠程服務器上運行腳本?
- 17. 腳本來檢查IIS是否運行
- 18. 檢查是否python腳本運行
- 19. 檢查腳本是否成功運行?
- 20. 檢查一個Python腳本是否在遠程機器上運行
- 21. Node.js - 如何檢測節點腳本是否正在運行?
- 22. 如何檢測我的新貴腳本是否正在運行?
- 23. shell腳本 - 檢查mongod服務器是否正在運行
- 24. PHP檢查腳本/函數是否正在運行
- 25. python:檢查IP地址是否正在運行的腳本
- 26. 檢查ahk(autohotkey)腳本是否正在運行
- 27. 檢查端口是否正在運行的腳本
- 28. 如何檢查是否通過ssh遠程調用python腳本
- 29. 如何檢查Perl腳本是否在終端中運行?
- 30. 如何檢查python腳本(test.py)是否在Windows 10上運行
你如何調用腳本用於在遠程? –
我正在使用Invoke-Command –