Powershell 远程脚本中的局部变量

Powershell 远程脚本中的局部变量,powershell,arguments,invoke-command,Powershell,Arguments,Invoke Command,我已经创建了一个脚本,可以循环浏览包含两列的电子表格。我遇到的问题是,当我运行invoke命令时,局部变量不起作用。我已经添加了-ArgumentList参数,但是仍然得到一个关于$null参数的错误。有人知道我做错了什么吗 foreach($list in(导入Csv C:\Users\joerod\Desktop\remove\u Users.Csv)){ 写入输出“连接到$($list.computer) $myses=New PSSession-ComputerName$list.com

我已经创建了一个脚本,可以循环浏览包含两列的电子表格。我遇到的问题是,当我运行
invoke命令时,局部变量不起作用。我已经添加了
-ArgumentList
参数,但是仍然得到一个关于
$null
参数的错误。有人知道我做错了什么吗

foreach($list in(导入Csv C:\Users\joerod\Desktop\remove\u Users.Csv)){
写入输出“连接到$($list.computer)
$myses=New PSSession-ComputerName$list.computer
调用命令-Session$myses-ScriptBlock{
写入输出“搜索软件…”
写入输出$list.user
$find_java=gwmi Win32_产品-筛选“类似“%java”的名称”|选择-ExpandProperty IdentificationNumber
if($find_java-ne$null){
写入输出“找到软件…正在卸载…”
foreach($find_mktx中的i){
msiexec.exe/x$i/qn/passive/l*v!c:\uninst.log
}
写入输出“将$($list.user)添加到安全组”
$group=“CN=Java\u已删除,OU=Groups,OU=Resources,DC=Contoso,DC=LOCAL”
添加ADGroupMember$group-Identity$list.user
}
否则{
写入输出“找不到已安装的Java软件”
} 
}-ArgumentList$list
}    

问题是您试图将争论列表传递到您的
else
中。如果代码的格式正确,就更容易看到了

foreach($list in (Import-Csv C:\Users\joerod\Desktop\remove_users.csv)){
    Write-Output "Connecting to $($list.computer)..."
    $myses = New-PSSession -ComputerName $list.computer
    Invoke-Command -Session $myses -ScriptBlock {
    Param($list)
        Write-Output "Searching for software..."
        Write-Output $list.user

        $find_java = gwmi win32_product -filter "Name LIKE '%Java'" | select -ExpandProperty     IdentifyingNumber
        if($find_java -ne $null){
            Write-Output "Software found... Uninstalling..."
            foreach($i in $find_mktx){
                msiexec.exe /x $i /qn /passive /l*v! c:\uninst.log 
            }
            Write-Output "Adding $($list.user) to security group"
            $group = "CN=Java_removed,OU=Groups,OU=Resources,DC=Contoso,DC=LOCAL"
            Add-ADGroupMember $group -Identity $list.user
        }
        else{
            Write-Output "Could not find Java software installed"
        } 
    } -ArgumentList $list

}

这是我复制脚本时的错误,
-ArgumentList$list
位于正确的位置,并且仍然相同error@JoeRod在
invoke命令之后,您还缺少
参数($list)
。。。那也是复印错误吗?啊,是的,我失踪的那个情人,谢谢你,伙计。谢谢你没有居高临下。