Function PowerShell故障-使用带参数的函数
我正在开发一个脚本,它将用于禁用人们在PowerShell中的广告帐户以及执行许多其他功能 我希望脚本提供批量模式或单一模式的选项。例如,只要运行脚本,就会强制执行一个参数,询问您是要在单一模式还是批量模式下运行脚本。如果选择批量模式,则应加载已定义的功能BULKmode并导入csv 如果选择了Single mode(单一模式),则它将在Single mode(单一模式)下运行并选择Singlemode(单一模式)功能 但是,PowerShell的问题是,参数和函数都位于脚本的顶部。我已经尝试了这两个命令,当我把函数放在参数前面时收到的错误是 没有param这样的术语 当我先输入参数,然后它加载参数,然后说 没有这样的功能 下面是一个片段Function PowerShell故障-使用带参数的函数,function,powershell,parameters,Function,Powershell,Parameters,我正在开发一个脚本,它将用于禁用人们在PowerShell中的广告帐户以及执行许多其他功能 我希望脚本提供批量模式或单一模式的选项。例如,只要运行脚本,就会强制执行一个参数,询问您是要在单一模式还是批量模式下运行脚本。如果选择批量模式,则应加载已定义的功能BULKmode并导入csv 如果选择了Single mode(单一模式),则它将在Single mode(单一模式)下运行并选择Singlemode(单一模式)功能 但是,PowerShell的问题是,参数和函数都位于脚本的顶部。我已经尝试了
最好的解决方案是分解函数,这样就可以使用循环来使用执行实际工作的函数 实现这一点的方法是将信息作为数组传递到主函数中。如果您有一个条目或多个条目,则无所谓。然后使用foreach在数组中循环并调用实际禁用AD帐户和任何其他所需操作的函数 这意味着您不必检查“批量”或“单一”模式。这就行了 例如:
function MainFunction
{
param (pass in array here)
foreach(entry in $myArray)
{
DoWork $entry
}
}
function DoWork
{
//do things here
}
您似乎想要提示用户输入。 我更喜欢使用参数,但如果要提示输入,请尝试以下操作:
Function BulkMode
{
"Running BulkMode"
}
Function SingleMode
{
"Running SingleMode"
}
$Input = Read-Host "Press Y for BulkMode"
if ($Input -eq "Y")
{
Bulkmode
}
else
{
SingleMode
}
希望这是有意义的,如果您需要更多信息,请提供建议这听起来像是两个参数集可以更好地实现的东西。其中一个参数集可能采用SamAccountName数组。除其他外,另一个参数集可能采用单个文件名。
Function BulkMode
{
"Running BulkMode"
}
Function SingleMode
{
"Running SingleMode"
}
$Input = Read-Host "Press Y for BulkMode"
if ($Input -eq "Y")
{
Bulkmode
}
else
{
SingleMode
}