2

以下の Powershell スクリプトを実行すると、以下のエラーが表示されます。パラメータを使用してpowershellでプログラムを実行するにはどうすればよいですか? スクリプトは、グループ ポリシー ログオンになります。

Invoke-Expression : 引数 '\TBHSERVER\NETLOGON\BGInfo\BGIFILE.bgi /timer:0 /s ilent /nolicprompt ' を受け入れる位置パラメーターが見つかりません。X:\Systems\scripts\PowerShell\UpdateDesktopWithBGInfo.ps1:6 char:18 + Invoke-Expression <<<< $logonpath $ArguList + CategoryInfo : InvalidArgument: (:) [Invoke-Expression]、ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound、 Microsoft.PowerShell.Commands.InvokeExpressionCommand

$LogonPath = $env:LOGONSERVER + "\NETLOGON\BGInfo\Bginfo.exe" 
$ArguList = $env:LOGONSERVER + '\NETLOGON\BGInfo\BGIFILE.bgi /timer:0 /silent /nolicprompt '
invoke-command $LogonPath
Invoke-Expression $logonpath $ArguList
4

2 に答える 2

7

Invoke-Commandコマンドをリモートで実行するのに最適です。Shay が指摘しているように、アンパサンド&を使用して、cmd.exe シェルと同様にローカルで何かを実行するように PowerShell に指示できます。

仕事をするためInvoke-Commandには、次のようなことをする必要があります:

$program = "C:\windows\system32\ping.exe"
$programArgs = "localhost", "-n", 1
Invoke-Command -ScriptBlock { & $program $programArgs }

スクリプト ブロックでアンパサンドを使用していることに注意してください。したがって、コマンドをローカルで実行している場合は、Shay の例が示すようにアンパサンドを使用してください。

于 2012-01-09T16:41:28.573 に答える
5

これを試して:

& "\\$env:LOGONSERVER\NETLOGON\BGInfo\Bginfo.exe" "\\$env:LOGONSERVER\NETLOGON\BGInfo\BGIFILE.bgi" /timer:0 /silent /nolicprompt

BGIFILE.bgi が Bginfo.exe と同じ場所にある場合は、ファイル名のみを指定できます。

& "\\$env:LOGONSERVER\NETLOGON\BGInfo\Bginfo.exe" BGIFILE.bgi /timer:0 /silent /nolicprompt
于 2012-01-09T16:00:38.053 に答える