私が信頼する共有フォルダーからスクリプトを実行しようとしています:
PowerShell -file "\\server\scripts\my.ps1"
しかし、セキュリティ警告が表示され、続行するには「R」を押す必要があります
セキュリティ警告信頼できるスクリプトのみを実行してください。インターネットからのスクリプトは有用ですが、このスクリプトは潜在的にあなたのコンピューターを傷つける可能性があります。\server\scripts\my.ps1を実行しますか? [D]実行しない[R]一度実行する[S]サスペンド[?]ヘルプ(デフォルトは「D」):d
この警告を無視できますか?必要な擬似コードは次のとおりです。
PowerShell -IGNORE_SECURITY_WARNING -file "\\server\scripts\my.ps1"
これについては、 「Lee Holmesのブログの標準イメージでのPowerShell実行ポリシー」 およびWindows Power Shellのブログの 「PowerShellのセキュリティガイド原則」で触れています 。
概要一部のマシンはUNCパスを大きな悪いインターネットとして扱うため、PowerShellはそれらをリモートファイルとして扱います。これらのサーバー(_UncAsIntranet = 0,
_)でこの機能を無効にするか、信頼できるホストにリモートマシンを追加できます。
どちらも実行したくない場合、PowerShell v2は、擬似コードが望んでいることを正確に実行する_-ExecutionPolicy
_パラメーターをサポートします。 PowerShell -ExecutionPolicy Bypass -File (...)
。
警告を回避するために、次のことができます。
Set-ExecutionPolicy bypass
ダウンロードしたPowerShellスクリプトからこのエラーが発生した場合、次の方法でスクリプトのブロックを解除できます。
問題の.ps1
ファイルを右クリックし、Propertiesを選択します
ファイルのプロパティでブロック解除をクリックします
[〜#〜] ok [〜#〜]をクリックします
SEE_MASK_NOZONECHECKS環境変数に1を割り当てるだけです
$env:SEE_MASK_NOZONECHECKS = 1
Start-Process $msi_file_path /qn -Wait | out-null
これを試して、ファイルを編集してください:
notepad foo.ps1:Zone.Identifier
そして、「ZoneId = 0」を設定します
Set-ExecutionPolicyを使用して、マシンに実行ポリシーを設定します。
Set-ExecutionPolicy Unrestricted
さまざまな実行ポリシーを調査して、どのポリシーが適切かを確認できます。 「help about_signing
" 詳細については。
これは私の特定のインスタンスでは機能しませんでした。 FQDNからNetBIOS名への変更が行われました。
の代わりに:\\server.domain.net\file.ps1
つかいます:\\server\file.ps1
この名前を使用すると、IEの「イントラネットネットワークを自動的に検出する」設定がバイパスされます。
ブログのオプション1を参照してください: http://setspn.blogspot.com/2011/05/running-powershell-scripts-from-unc.html
サーバー上の共有上のすべてのファイルのブロックを解除するために、このPowerShellスクリプトを作成しました
Get-ChildItem "\\ServerName\e$\MyDirectory\" -Recurse -File | % {
Unblock-File -Path $_.FullName
}
インターネットからスクリプトをダウンロードしましたか?
次に、コマンドラインでsysinternalの streams.exe を使用して、NTFSストリームをファイルから削除します。
cmd> streams.exe .\my.ps1
次に、スクリプトを再度実行してみます。
共有フォルダーからpsスクリプトを起動する必要があると仮定します
copy \\\server\script.ps1 c:\tmp.ps1 /y && PowerShell.exe -ExecutionPolicy Bypass -File c:\tmp.ps1 && del /f c:\tmp.ps1
追伸グーグルを減らす)
Ps1ファイルが多数ある場合は、PowerShellを開いて次のコマンドを記述するのが非常に簡単です。ここでは、パスでパスを変更する必要があります。
PS C:\Users> Get-ChildItem -Path "D:\downlod" -Recurse | Unblock-File
Set-executionpolicy "Policyname" -forceスイッチを試してください。警告ポップアップは表示されません。