Powershell - 提示变量添加到命令
问题描述:
我很喜欢PowerShell,而且所有类似的东西都是诚实的。Powershell - 提示变量添加到命令
我想实现一个简单的批处理文件来执行并简化用户帐户的解锁操作。
目前我已经成功创建了基于谷歌搜索的下面,这将简单地解锁名为“用户名”的用户帐户。
PowerShell的-Command“& {导入模块ActiveDirectory中;解锁adaccount USERNAME}”
我想实现的设置,“USERNAME”部分作为一个变量并执行时产生一个提示批文件要求输入用户名以便能够解锁输入的任何帐户。
我试过搜索相关的帖子,但似乎无法找到一种方法把它放在一起我自己。 我将不胜感激任何帮助!
谢谢。
答
使用Read-Host
命令例如: -
PowerShell -Command "& {$username = Read-Host "Enter username"; Import-Module ActiveDirectory; Unlock-ADAccount $username}"
答
查找到书写可重用的工具。简单的功能和脚本。
从PowerShell.exe调用各种命令只适用于您为其编写的特定场景。函数和脚本可以在任何有意义的地方使用。写一次,在很多地方使用它。它可以节省大量时间,并且可以帮助您学习和改进PowerShell。
下面是一个简单的例子!这段代码保存为C:\解锁ADAccountSimple.ps1
param (
$Username = (Read-Host "Enter Username")
)
Import-Module ActiveDirectory
Unlock-ADAccount $Username
现在你可以在场景中使用它。这将提示用户名:
PowerShell.exe -File C:\Unlock-ADAccountSimple.ps1
你也可以针对特定用户运行它:
PowerShell.exe -File C:\Unlock-ADAccountSimple.ps1 -Username jdoe
你可以使用它在脚本编写
#Inside a script, you could run it like this, with various logic before or after:
& "C:\Unlock-ADAccountSimple.ps1" -Username Someone
下了线,您可以编写更有趣和有用的功能,并将它们组合成更大的解决方案。但是你需要从某个地方开始,并且构建小型的可重用工具(函数/脚本)将使你开始顺利进入!
祝你好运!
答
如果你有用户名作为你的命令的参数,我认为Show-Command可能是你在这里寻找的。
powershell -Command "& { import-module activedirectory; Show-Command unlock-adaccount }"
它会弹出一个小小的gui,允许您的管理员输入用户名或您在命令中定义的任何其他参数。
我也想指出,使用'[Parameter(Mandatory = $ true)] $ Username'会产生相同的效果。 – kevmar 2014-12-06 05:58:40