Function 使用invoke命令Powershell调用函数中的函数
我希望在invoke命令中调用函数中的函数。看来我做得不对。我得到“get-group_用户”是无法识别的错误。所有内容都在一个ps1脚本中 截断的脚本:Function 使用invoke命令Powershell调用函数中的函数,function,powershell,invoke-command,Function,Powershell,Invoke Command,我希望在invoke命令中调用函数中的函数。看来我做得不对。我得到“get-group_用户”是无法识别的错误。所有内容都在一个ps1脚本中 截断的脚本: function get-session { $session = New-PSSession -ComputerName $ip -Credential $cred -Auth CredSSP $ComputerName = $cred.Replace('\Admin',"") $csv = "C:\Scripts\Serverlists\
function get-session {
$session = New-PSSession -ComputerName $ip -Credential $cred -Auth CredSSP
$ComputerName = $cred.Replace('\Admin',"")
$csv = "C:\Scripts\Serverlists\" + $ComputerName + ".txt"
$subcomps = import-csv $csv | foreach-object {$_.Name}
foreach ($ComputerName in $subcomps)
{
$ComputerName
$xmlWriter.WriteStartElement("Computer",$ComputerName)
Invoke-Command -Session $session -ScriptBlock { (get-groups_users -ComputerName $ComputerName) } -ArgumentList $ComputerName
$xmlWriter.WriteEndElement()
}
Remove-PSSession -ComputerName $ip
}
$ip = '172.16.24.11'
$ComputerName = "COMP1"
$user = '\Admin'
$cred = $ComputerName + $user
(get-groups_users -ComputerName $ComputerName)
(get-session -Credential $cred -ComputerName $ip)
因此,我省略了get-groups\u users
函数。如果有人认为这有助于解释一切,我可以把它贴出来。这是一个长的。另外,我省略了$xmlwriter
定义
get-groups\u users
在COMP1上运行时工作,但一旦我输入PSSession
并尝试在子comp的invoke命令中使用它,它就无法识别它
我忘记了什么?调用
Invoke命令时,必须在-ScriptBlock
参数中包含get-groups\u用户
函数定义。如果不知道,则远程会话不知道get-groups\u users
功能
以下是如何解决这个问题:
$ScriptBlock = {
function get-groups_users {
############ Put your function's code here ############
}
(get-groups_users -ComputerName $ComputerName)
};
Invoke-Command -Session $session -ScriptBlock $ScriptBlock -ArgumentList $ComputerName
那么,我是否必须将get-groups\u users函数放在内部,而它也必须放在外部?(用于与会话功能分开运行)您还必须将其留在外部,否则本地会话将不知道它。