无论为$appPoolName输入什么值,在发送到远程计算机时,Test-Path始终返回true,即使不存在此类池也是如此。在这些计算机上的powershell中本地运行时,将返回正确的结果。PSRemote已验证为在目标计算机上启用。
$appPoolName = 'Abc123'
$scriptBlock = {
Import-Module WebAdministration
if (Test-Path IIS:\AppPools\$appPoolName) {
Write-Host "Already installed."
} else {
Write-Host "Installing..."
$appPool = New-Item –Path IIS:\AppPools\$using:appPoolName
$appPool | Set-ItemProperty -Name managedRuntimeVersion -Value 'v4.0'
}
}
Invoke-Command -ComputerName LT-CODE8 -ScriptBlock $scriptBlock
为什么此报告是真实的,或者我可以采取哪些步骤来进一步诊断?
3条答案
按热度按时间4c8rllxm1#
我认为您错过了$使用:第一次调用$appPoolname时:
xcitsw882#
可能需要在远程机器上启用cred-ssp。请查看此线程:https://social.technet.microsoft.com/Forums/scriptcenter/en-US/3ea1ac5a-60f4-4ba1-9bdf-1119e2e5c896/testpath-fails-on-remote-computer-with-invokecommand?forum=ITCG
suzh9iv83#
我在VS代码中运行Powershell时遇到了这个问题,在伊势中它总是按预期工作。