2017-08-04 89 views
0

术语“AutomatedTest”没有被识别为cmdlet的名字......PowerShell函数无法识别

,但我不知道为什么。

但PowerShell ISE中的作品,

功能如下

if($DefaultPool.GetMachines().Name -eq $TestMachineOne) 
{ 
    MultiMachineTest 
}else{ 
    AutomatedTest 
} 

function AutomatedTest() 
{ 
    Write-host "test" 
} 
+3

在你的调用之前移动你的函数定义。它在ISE中起作用,因为你已经运行了你的脚本,所以上一次运行的内存中的函数。 – JohnLBevan

回答

1

以便它在执行前加载在你的脚本的顶部添加您的功能。

function AutomatedTest() 
{ 
    Write-host "test" 
} 

if($DefaultPool.GetMachines().Name -eq $TestMachineOne) 
    { 
     MultiMachineTest 
    }else{ 
     AutomatedTest 
    } 
+0

但我遵循这一点,没有响应,不写主机测试 – JeffQooQa

+0

如果没有响应,这是因为'$ DefaultPool.GetMachines()。Name'不等于'$ TestMachineOne'。在条件中反转你的2个函数,看看会发生什么。 – Manu

+0

谢谢。它已经解决了。 – JeffQooQa