Function Powershell CommandNotFoundException
我有以下powershell脚本,该脚本使用函数并将在ISE中正常运行:Function Powershell CommandNotFoundException,function,powershell,Function,Powershell,我有以下powershell脚本,该脚本使用函数并将在ISE中正常运行: Get-ComputerSessions -Computer "localhost" # =========================================================================== # Functions # ===================================================================
Get-ComputerSessions -Computer "localhost"
# ===========================================================================
# Functions
# ===========================================================================
Function Get-ComputerSessions {
<#
.SYNOPSIS
Retrieves tall user sessions from local or remote server/s
.DESCRIPTION
Retrieves tall user sessions from local or remote server/s
.PARAMETER computer
Name of computer/s to run session query against.
.NOTES
Name: Get-ComputerSessions
Author: Boe Prox
DateCreated: 01Nov2010
.LINK
https://boeprox.wordpress.org
.EXAMPLE
Get-ComputerSessions -computer "server1"
Description
-----------
This command will query all current user sessions on 'server1'.
#>
[cmdletbinding(
DefaultParameterSetName = 'session',
ConfirmImpact = 'low'
)]
Param(
[Parameter(
Mandatory = $True,
Position = 0,
ValueFromPipeline = $True)]
[string[]]$computer
)
Begin {
$report = @()
}
Process {
ForEach($c in $computer) {
# Parse 'query session' and store in $sessions:
$sessions = query session /server:$c
1..($sessions.count -1) | % {
$temp = "" | Select Computer,SessionName, Username, Id, State, Type, Device
$temp.Computer = $c
$temp.SessionName = $sessions[$_].Substring(1,18).Trim()
$temp.Username = $sessions[$_].Substring(19,20).Trim()
$temp.Id = $sessions[$_].Substring(39,9).Trim()
$temp.State = $sessions[$_].Substring(48,8).Trim()
$temp.Type = $sessions[$_].Substring(56,12).Trim()
$temp.Device = $sessions[$_].Substring(68).Trim()
$report += $temp
}
}
}
End {
$report
}
}
但是,如果尝试从powershell命令行运行此命令,则会出现以下错误:
PS C:\Downloads\Powershell> C:\Downloads\Powershell\test.ps1
The term 'Get-ComputerSessions' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At C:\Downloads\Powershell\test.ps1:25 char:21
+ Get-ComputerSessions <<<< -Computer "localhost"
+ CategoryInfo : ObjectNotFound: (Get-ComputerSessions:String) [], CommandNotFoundExc
eption
+ FullyQualifiedErrorId : CommandNotFoundException
PS C:\Downloads\Powershell>
谁能告诉我哪里出了问题,我需要把函数放在一个单独的模块中吗
我的背景是VB脚本,因此我正在努力掌握逻辑。移动此调用:
Get-ComputerSessions -Computer "localhost"
在函数“获取计算机会话”的定义下方,然后重试。PowerShell在您定义函数之前遇到函数调用 在函数定义之前不能调用它-将代码移动到函数定义之后的任何位置 它可能在ISE中工作,因为它是在加载时定义的,或者是在运行脚本之前定义的