2016-09-23 2 views
1

Der für $ appPoolName eingegebene Wert gibt immer True für Test-Path zurück, wenn er an den Remote-Computer gesendet wird, auch wenn kein solcher Pool vorhanden ist. Wenn es lokal in Powershell auf diesen Computern ausgeführt wird, wird das richtige Ergebnis zurückgegeben. PSRemote wird für die Aktivierung auf den Zielrechnern überprüft.Powershell-Remote gibt falsches positives Ergebnis für IIS: AppPools-Suche zurück

$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 

Warum ist diese Meldung richtig oder welche Schritte kann ich zur weiteren Diagnose unternehmen?

Antwort

1

Ich glaube, Sie die $ verpasst werden: auf dem ersten Aufruf von $ AnwPoolname:

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

Wahrscheinlich ermöglicht cred-ssp wird auf dem entfernten Rechner benötigt. Bitte beachten Sie diesen Thread: https://social.technet.microsoft.com/Forums/scriptcenter/en-US/3ea1ac5a-60f4-4ba1-9bdf-1119e2e5c896/testpath-fails-on-remote-computer-with-invokecommand?forum=ITCG

+2

Test-Pfad wird nur fehlschlagen, wenn es einen zweiten Sprung erfordert. Aber IIS: \ ist ein PSDrive auf dem Computer, mit dem der Benutzer eine Verbindung herstellt, so dass kein zweiter Hop benötigt wird. – BenH

Verwandte Themen