30 PowerShell说“此系统上的脚本执行被禁用。” 我正在尝试运行 命令 调用一个文件 电源外壳的脚本cmd.exe,并且出现以下错误: Management_Install.ps1 无法加载,因为此系统上禁用了脚本执行。 我跑了 Set-ExecutionPolicy -ExecutionPolicy Unrestricted 当我Get-ExecutionPolicy从电源外壳,我Unrestricted回来了。 PS C:\Users\Administrator\> Get-ExecutionPolicy Unrestricted C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> powershell .\Management_Install.ps1 1 WARNING: Running x86 PowerShell... C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\Management_Install.ps1无法加载文件,因为此系统上禁用了脚本的执行。请参阅“ get-help about_signing”以获取更多详细信息。 在线:1字符:25 .\Management_Install.ps1 <<<< 1 CategoryInfo:未指定:(:) [],PSSecurityException FullyQualifiedErrorId:RuntimeException C:\Projects\Microsoft.Practices.ESB\Source\Samples\Management Portal\Install\Scripts\> PAUSE Press any key to continue . . . 系统是Windows Server 2008R2。 我究竟做错了什么? 1760 powershell windows-server-2008-r2
14 如何运行PowerShell脚本 如何运行PowerShell脚本? 我有一个名为myscript.ps1的脚本 我已经安装了所有必要的框架 我设置执行政策的事情 我已按照此MSDN帮助页面上的说明进行操作, 并尝试按以下方式运行它:( powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'带有或不带有--noexit) 除了输出文件名外,它什么也不返回。 没有错误,没有消息,什么都没有。哦,当我添加时-noexit,会发生同样的事情,但是我仍然在PowerShell中,必须手动退出。 .ps1文件应该运行一个程序,并根据该程序的输出返回错误级别。但是我很确定我还没有到达那儿。 我究竟做错了什么? 709 windows powershell scripting
20 如何在PowerShell中连接字符串和变量? 假设我有以下代码段: $assoc = New-Object psobject -Property @{ Id = 42 Name = "Slim Shady" Owner = "Eminem" } Write-host $assoc.Id + " - " + $assoc.Name + " - " + $assoc.Owner 我希望这个代码片段显示出来: 42 - Slim Shady - Eminem 但是它显示: 42 + - + Slim Shady + - + Eminem … 609 powershell string-concatenation
16 设置Windows PowerShell环境变量 我发现设置PATH环境变量仅影响旧的命令提示符。PowerShell似乎具有不同的环境设置。如何更改PowerShell(v1)的环境变量? 注意: 我想永久保留更改,因此不必每次运行PowerShell时都进行设置。PowerShell是否有配置文件?类似于Unix上的Bash配置文件? 605 windows powershell
14 确定当前PowerShell脚本位置的最佳方法是什么? 每当需要引用公共模块或脚本时,我都喜欢使用相对于当前脚本文件的路径。这样,我的脚本始终可以在库中找到其他脚本。 那么,确定当前脚本目录的最佳标准方法是什么?目前,我正在做: $MyDir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition) 我知道可以在模块(.psm1)中使用$PSScriptRoot此信息,但是在常规脚本(即.ps1文件)中没有设置此信息。 获取当前PowerShell脚本文件位置的规范方法是什么? 530 powershell powershell-2.0
1 如何在PowerShell中处理命令行参数 处理命令行参数的“最佳”方法是什么? 关于“最佳”方式的问题似乎有几个答案,结果,我被困在如何处理简单的事情上: script.ps1 /n name /d domain 和 script.ps1 /d domain /n name. 是否有可以更好地处理此问题的插件?我知道我在这里重新发明轮子。 显然,我已经不是很漂亮,而且肯定不是“最好的”,但是它可以工作..而且很丑。 for ( $i = 0; $i -lt $args.count; $i++ ) { if ($args[ $i ] -eq "/n"){ $strName=$args[ $i+1 ]} if ($args[ $i ] -eq "-n"){ $strName=$args[ $i+1 ]} if ($args[ $i ] -eq "/d"){ … 494 powershell command-line-arguments
7 如何将参数传递给PowerShell脚本? 有一个PowerShell名为的脚本itunesForward.ps1可使iTunes快进30秒: $iTunes = New-Object -ComObject iTunes.Application if ($iTunes.playerstate -eq 1) { $iTunes.PlayerPosition = $iTunes.PlayerPosition + 30 } 通过提示行命令执行: powershell.exe itunesForward.ps1 是否可以从命令行传递参数并将其应用到脚本中,而不是硬编码的30秒值? 443 command-line powershell automation itunes argument-passing
15 如何在PowerShell中将多个参数传递给函数? 如果我有一个接受多个字符串参数的函数,则第一个参数似乎会获取分配给它的所有数据,其余参数将作为空传递。 快速测试脚本: Function Test([string]$arg1, [string]$arg2) { Write-Host "`$arg1 value: $arg1" Write-Host "`$arg2 value: $arg2" } Test("ABC", "DEF") 生成的输出是 $arg1 value: ABC DEF $arg2 value: 正确的输出应为: $arg1 value: ABC $arg2 value: DEF 这在多台计算机上的v1和v2之间似乎是一致的,因此很明显,我在做错事。谁能指出到底是什么? 438 powershell
11 如何在PowerShell中检查字符串是否为null或为空? IsNullOrEmpty在PowerShell中是否有类似内置的函数来检查字符串是否为null或为空? 到目前为止,我找不到它,如果有内置的方法,我不想为此编写函数。 413 .net string powershell null
13 在PowerShell中相当于* Nix'哪个'命令? 我如何问PowerShell在哪里? 例如,“哪个记事本”并根据当前路径返回运行notepad.exe的目录。 404 unix powershell command
10 在PowerShell中终止脚本 我一直在寻找一种在函数内发生不可恢复的错误时终止PowerShell(PS1)脚本的方法。例如: function foo() { # Do stuff that causes an error $host.Exit() } 当然,没有这样的事情$host.Exit()。有$host.SetShouldExit(),但这实际上关闭了控制台窗口,这不是我想要的。我需要的是与Python等效的东西sys.exit(),它将停止当前脚本的执行而不再需要其他任何条件。 编辑:是的,只是exit。咄。 394 powershell
18 PowerShell是否准备好在Windows上替换我的Cygwin Shell?[关闭] 已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 去年关闭。 我正在辩论是否应该学习PowerShell,还是只坚持使用Cygwin / Perl脚本/ Unix shell脚本等。 PowerShell的好处是可以使没有Cygwin的队友更容易使用脚本;但是,我不知道我是否真的会写那么多通用脚本,或者人们是否会使用它们。 Unix脚本是如此强大,PowerShell是否足够接近以保证可以切换? 以下是一些我将在PowerShell中寻找的特定内容(或等效内容): grep 分类 优衣库 Perl(PowerShell与Perl的功能有多接近?) AWK sed 文件(提供文件信息的命令) 等等 384 unix shell powershell