gpt4 book ai didi

powershell - 将参数传递到 Powershell

转载 作者:行者123 更新时间:2023-12-02 20:26:05 24 4
gpt4 key购买 nike

我有一个 powershell 脚本,可以完成 Active Directory 和 MS Exchange 中的一些任务。我需要从我们的调用记录系统传入 Active Directory 用户名。让通话记录系统传递参数很简单。

我面临的问题是让 powershell 将参数读取到变量中。

我将提供一个概念验证示例。

这是将参数传递到 powershell 的示例命令。

C:\Users\UserName\Desktop\Test.ps1 -ADusername "Hello World"

这是示例脚本:

Param([string]$adusername)
$adusername
pause

我期待以下输出:

Hello World
Press Enter to continue...:

这是实际输出:

Press Enter to continue...:

只要理解这个核心概念就会对我有很大帮助。我无法找到任何适用于我的场景的示例或教程。如果这是重复的帖子,我深表歉意,在该网站上也找不到任何内容。

编辑:根据请求,这是我的完整脚本:http://pastebin.com/ktjpLQek

最佳答案

我认为,如果您避免尝试使用参数并完全按照这种方式调用脚本,您的运气会好得多。

这是可能的,但如果您内联脚本文件,参数效果会更好:

. .\scriptFile.ps1
function "Hello World"

但是,为了更接近您正在做的事情,您应该使用 $args 调用 PowerShell(直接执行 exe)

如果你像这样调用你的脚本文件:(我使用了 runbox)

powershell c:\Path\Folder\Script.ps1 "Hello World!"

然后将您的 Param([string]$adusername) 替换为:

$adUserName = $args[0]
write-host $adUserName

此外,这应该对你有用(剖析):

Param([string]$ad)

Write-Host $args[0]
Write-Host $ad

Read-Host
pause

使用路径调用脚本, powershell c:\Path\Folder\Script.ps1 “Hello World!” $ad =“JSmith”

如果这不起作用,您应该确保执行策略设置正确。 Get-ExecutionPolicy 会告诉您当前的级别。为了进行测试,您可以使用 Set-ExecutionPolicy unrestricted

将其设置得非常低

关于powershell - 将参数传递到 Powershell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37082103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com