我对PowerShell完全陌生,这可能是一个愚蠢的问题
我创建了一个小脚本来远程添加管理员权限:
$computername = Read-Host 'Computername';
$name = Read-Host 'UserName';
Enter-Pssession -computername $computername;
Add-LocalGroupMember -Group "Administrators" -Member $name;
如果我尝试一起运行,那将不起作用
但是如果我尝试单独运行它,它将起作用
$computername = Read-Host 'Computername'
Enter-Pssession -computername $computername;
然后
$name = Read-Host 'UserName';
Add-LocalGroupMember -Group "Administrators" -Member $name;
您介意告诉我出什么问题了吗
谢谢!
答案 0 :(得分:3)
在脚本中输入PSSession
后,变量$name
再次设置为$0
,因为您没有将变量传递给会话。
我会尝试像这样运行脚本:
$computername = Read-Host 'Computername'
$name = Read-Host 'UserName'
Invoke-Command {
param($name)
Add-LocalGroupMember -Group "Administrators" -Member $name
} -computer $computername -ArgumentList $name
答案 1 :(得分:1)
这基本上与Paxz答案相同,但是是单线的。
您可以在Invoke-Command
脚本块中添加“ using:”作为局部变量。
$computername = Read-Host 'Computername'
$name = Read-Host 'UserName'
Invoke-Command -ComputerName $computername -ScriptBlock {Add-LocalGroupMember -Group "Administrators" -Member $using:name}