我有一个脚本可以在本地或远程运行(通过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 –