2016-09-23 4 views
1

$ appPoolName에 대해 입력 된 값은 원격 시스템으로 전송 될 때 Test-Path에 대해 항상 true를 반환합니다. 이러한 풀이없는 경우에도 마찬가지입니다. 해당 컴퓨터에서 powershell로 로컬로 실행하면 올바른 결과가 반환됩니다. PSRemote가 대상 컴퓨터에서 활성화 된 것으로 확인되었습니다.IIS : AppPools 조회에서 false positive를 반환하는 Powershell 원격

$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 

왜이보고가 사실입니까? 아니면 추가 진단을 위해 취할 수있는 조치는 무엇입니까?

답변

1

난 당신이 사용하여 $ 놓친 생각 : $ AppPoolName을 첫 번째 통화 :

if (Test-Path IIS:\AppPools\$using:appPoolName) { 
0
+2

Test-Path는 두 번째 홉이 필요한 경우에만 실패합니다. 그러나 IIS : \는 사용자가 연결중인 컴퓨터의 PSDrive이므로 두 번째 홉은 필요하지 않습니다. – BenH

관련 문제