2014-12-04 66 views
1

我很喜歡PowerShell,而且所有類似的東西都是誠實的。Powershell - 提示變量添加到命令

我想實現一個簡單的批處理文件來執行並簡化用戶帳戶的解鎖操作。

目前我已經成功創建了基於谷歌搜索的下面,這將簡單地解鎖名爲「用戶名」的用戶帳戶。

PowerShell的-Command「& {導入模塊ActiveDirectory中;解鎖adaccount USERNAME}」

我想實現的設置,「USERNAME」部分作爲一個變量並執行時產生一個提示批文件要求輸入用戶名以便能夠解鎖輸入的任何帳戶。

我試過搜索相關的帖子,但似乎無法找到一種方法把它放在一起我自己。 我將不勝感激任何幫助!

謝謝。

回答

2

使用Read-Host命令例如: -

PowerShell -Command "& {$username = Read-Host "Enter username"; Import-Module ActiveDirectory; Unlock-ADAccount $username}" 
0

查找到書寫可重用的工具。簡單的功能和腳本。

從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 

下了線,您可以編寫更有趣和有用的功能,並將它們組合成更大的解決方案。但是你需要從某個地方開始,並且構建小型的可重用工具(函數/腳本)將使你開始順利進入!

祝你好運!

+0

我也想指出,使用'[Parameter(Mandatory = $ true)] $ Username'會產生相同的效果。 – kevmar 2014-12-06 05:58:40

1

如果你有用戶名作爲你的命令的參數,我認爲Show-Command可能是你在這裏尋找的。

powershell -Command "& { import-module activedirectory; Show-Command unlock-adaccount }" 

它會彈出一個小小的gui,允許您的管理員輸入用戶名或您在命令中定義的任何其他參數。