标签: powershell

在PowerShell中忽略输出的更好(更干净)的方法是什么?

假设您有一个返回某些内容的方法或cmdlet,但您不想使用它而您不想输出它.我找到了这两种方式:

Add-Item > $null

[void]Add-Item

Add-Item | Out-Null
Run Code Online (Sandbox Code Playgroud)

你用什么?哪种更好/更清洁?为什么?

powershell null void

121
推荐指数
5
解决办法
10万
查看次数

从Powershell ISE中的另一个PS1脚本调用PowerShell脚本PS1

我希望在Powershell ISE内的第二个myScript2.ps1脚本中调用myScript1.ps1脚本.

MyScript2.ps1中的以下代码在Powershell Administration中运行良好,但在PowerShell ISE中不起作用:

#Call myScript1 from myScript2
invoke-expression -Command .\myScript1.ps1
Run Code Online (Sandbox Code Playgroud)

从PowerShell ISE执行MyScript2.ps1时出现以下错误:

术语".\ myScript1.ps1"未被识别为cmdlet,函数,脚本文件或可操作程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.

powershell

121
推荐指数
7
解决办法
33万
查看次数

创建并抛出新的异常

我如何在PowerShell中创建并抛出新的异常?

我想针对特定错误做不同的事情.

powershell

121
推荐指数
2
解决办法
13万
查看次数

如何从命令提示符"以管理员身份运行"运行应用程序?

我有一个名为的批处理文件test.bat.我在test.bat文件中调用以下说明:

start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1
Run Code Online (Sandbox Code Playgroud)

当我通过命令提示符运行时,我的testscript运行成功.我想以管理员身份运行它(就像我创建了一个桌面快捷方式并以管理员身份运行.它不应该提示任何用户名或密码).

我在上面尝试过添加/elevate/NOUAC参数test.bat,但没有运气.我该如何解决这个问题?

我知道如何手动执行,但我希望从命令提示符执行此操作.

(作者Marnix Klooster):...不使用任何其他工具,例如在回答超级用户问题时建议的那些工具如何从具有提升权限的命令行运行程序.)

powershell cmd command-prompt

120
推荐指数
3
解决办法
70万
查看次数

在PowerShell中重新加载路径

如果我有一个运行PowerShell ISE的实例,我安装了修改PATH的东西,或者我在PowerShell之外以任何方式修改它,那么我需要重新启动PowerShell才能看到更新的PATH变量.

有没有办法从PowerShell中重新加载路径而不重新启动它?

console powershell powershell-ise

120
推荐指数
6
解决办法
4万
查看次数

有没有办法通过双击.ps1文件使PowerShell脚本工作?

我正在向我的团队分发Powershell脚本.该脚本是从Vsphere客户端获取IP地址,进行mstsc连接并将其记录在共享文件中.

他们使用脚本的那一刻他们就知道了机器的IP地址.之后,他们总是倾向于直接使用mstsc而不是运行powershell脚本.(因为他们正在使用mstsc,我无法知道他们是否经常使用VM)

主要是他们告诉我运行PowerShell并不是直截了当的.

我因他们的懒惰而生病.

有没有办法通过双击.ps1文件使PowerShell脚本工作?

powershell powershell-2.0

119
推荐指数
14
解决办法
13万
查看次数

PowerShell中的布尔文字

PowerShell中的布尔文字是什么?

powershell

119
推荐指数
3
解决办法
6万
查看次数

无法加载.ps1,因为在此系统上禁用了脚本的执行

我运行此代码以从ASP.NET应用程序执行PowerShell代码:

System.Management.Automation.Runspaces.Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();
runspace.Open();
System.Management.Automation.Runspaces.Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(@"\\servername\path");

pipeline.Commands.Add("Out-String");

Collection<PSObject> results = pipeline.Invoke();

runspace.Close();
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

无法加载.ps1,因为在此系统上禁用了脚本的执行.有关详细信息,请参阅"get-help about_signing".

从命令提示符或Windows(Windows窗体)应用程序运行相同的代码.

c# asp.net powershell

119
推荐指数
6
解决办法
22万
查看次数

PowerShell和-contains运算符

请考虑以下代码段:

"12-18" -Contains "-"
Run Code Online (Sandbox Code Playgroud)

你认为这会评估true,但事实并非如此.这将评估false相反.我不确定为什么会这样,但确实如此.

为避免这种情况,您可以使用此代码:

"12-18".Contains("-")
Run Code Online (Sandbox Code Playgroud)

现在表达式将评估为true.

为什么第一个代码片段的行为如此?有什么特别的东西-不能很好地搭配-Contains吗?该文档没有提及任何相关内容.

powershell operators

117
推荐指数
3
解决办法
18万
查看次数

如何将PowerShell与Visual Studio命令提示符一起使用?

我现在已经使用Beta 2了一段时间,这让我疯狂,我必须在运行VS2010命令提示符时向cmd.exe发挥作用.我曾经为Visual Studio 2008提供了一个很好的vsvars2008.ps1脚本.任何人都有vsvars2010.ps1或类似的东西吗?

powershell visual-studio-2010 visual-studio

116
推荐指数
6
解决办法
4万
查看次数