2

私はpowershellに非常に慣れていないので、何が間違っていたのかわかりません。私の Windows 8 PC では正常に動作していますが、他の人 (彼は Windows 7 を持っていて、彼のためにこれを作成しました) に送信すると、スクリプトの実行が許可されていないというエラーが表示されます。

-ExecutionPolicy RemoteSigned で試してみましたが、まだ運がありません。

##################
<# CONFIG START #>
##################
#replace the path with your steam path. For example: C:\Program Files (x86)\Steam\Steam.exe
$steam_path = "C:\Program Files (x86)\Steam\steam.exe"

#You can change it to Ethernet 1 or Ethernet 2 or Ethernet 3 etc depending on which adapter you want to disable.
#If you have custom name for them (you can rename them from control panel), have to use that name.
$adapter_name = "Ethernet 1"

<#
What program to run.
1: Steam Dota 2
2: Steam CS
3: Steam CSS
4: Steam CSGO
5: Custom Program 1
6: Custom Program 2
7: Custom Program 3
#>
$game_id = "5"

<# Custom Program path and arguments#>
$cp1_path = "C:\Program Files (x86)\counter-strike source\css.exe"
$cp1_arg = " "

$cp2_path = ""
$cp2_arg = " "

$cp3_path = ""
$cp2_arg = " "

$delay = 20


################
<# CONFIG END #>
################


"Checking admin permissions..."

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
    "Administrator permissions required."
    $arguments = '-ExecutionPolicy RemoteSigned -file "' + $myinvocation.mycommand.definition + '"'
#    $arguments
    Start-Process powershell -Verb runAs -ArgumentList $arguments
    Break
}


"Exiting Steam..."
Start-Process -FilePath $steam_path -ArgumentList "-shutdown" -Wait:$true

Start-Sleep -s 2

"Disabling Network Adapter..."
Disable-NetAdapter -Name $adapter_name -Confirm:$false

Start-Sleep -s 5

"Starting Game..."

Switch($game_id)
{

    1
    {
        Start-Process -filepath "steam://rungameid/570"
    }

    2
    {
        Start-Process -filepath "steam://rungameid/10"
    }

    3
    {
        Start-Process -filepath "steam://rungameid/240"
    }

    4
    {
        Start-Process -filepath "steam://rungameid/730"
    }

    5
    {
        Start-Process $cp1_path -ArgumentList $cp1_arg
    }

    6
    {
        Start-Process $cp2_path -ArgumentList $cp2_arg
    }

    7
    {
        Start-Process $cp3_path -ArgumentList $cp3_arg
    }
}

Start-Sleep -s $delay

"Enabling Network Adapter..."
Enable-NetAdapter $adapter_name -Confirm:$false

exit
4

2 に答える 2

3

彼にスクリプトを送った場合、それRemoteSignedは問題なく機能しています。彼はリモートで (あなたから) スクリプトを取得しましたが、署名されていないため、実行されません。

ps1Windows エクスプローラーでスクリプトに移動し、右クリックして [ブロックの解除] を選択するように友人に伝えます。この種の情報は Windows によってキャッシュされるため、既にスクリプトの実行に失敗している場合は、PowerShell インスタンスを再起動する必要があります。

于 2013-06-02T22:55:00.660 に答える
0

このエラーは、実行ポリシーが正しく設定されていないことを示しています。まず、管理者として Powershell を実行しました。これを行うには、スタート メニューの Powershell アイコンを右クリックし、[管理者として実行] をクリックします。次に、Powershell で次のコマンドを実行する必要があります。

Set-ExecutionPolicy RemoteSigned

変更を許可するよう求められます。「Y」と入力してリターンキーを押します。

最後に、スクリプトを実行してみます。

于 2013-06-02T22:53:30.110 に答える