当您从 internet 下载了一个文件,它可能会被 Windows 标记(通过 NTFS 流),并且 PowerShell 可能会拒绝执行它:
1 2 3 4 5 6 7 8 9
PS> & "$home\desktop\Rick.ps1" & : File C:\Users\tobwe\desktop\Rick.ps1 cannot be loaded. The file C:\Users\tobwe\desktop\Rick.ps1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170. At line:1 char:3 + & "$home\desktop\Rick.ps1" + ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
有时候,PowerShell 脚本的作者将脚本放在直接下载的服务器上。让我们寻找一种最有效的通过 PowerShell 下载文本文件的方法。我们将以 PowerShell Team 成员 Lee Holmes 发布的著名的 “Dancing Rick ASCII” 脚本作为我们的例子。它的下载地址位于这里(需要翻墙):
Name Gender Age Culture -------------------- Microsoft Zira Desktop Female Adult en-US Microsoft David Desktop Male Adult en-US Microsoft Hedda Desktop Female Adult de-DE
$sampleText = @{ [System.Globalization.CultureInfo]::GetCultureInfo("en-us") = "Hello, I am speaking English! I am " [System.Globalization.CultureInfo]::GetCultureInfo("de-de") = "Halli Hallo, man spricht deutsch hier! Ich bin " [System.Globalization.CultureInfo]::GetCultureInfo("es-es") = "Una cerveza por favor! Soy " [System.Globalization.CultureInfo]::GetCultureInfo("fr-fr") = "Vive la france! Je suis " [System.Globalization.CultureInfo]::GetCultureInfo("it-it") = "Il mio hovercraft è pieno di anguille! Lo sono "