我有一些 PowerShell 脚本来更新活动目录中的数据。现在我想从另一台加入域的计算机上运行这些脚本,但当前登录的用户没有运行这些脚本的 AD 管理员权限。如何首先传递凭据以以管理员身份连接到域,然后运行脚本?
我知道该命令get-credentials
,但我不想要任何手动干预。有运行脚本的批处理文件,我想放置一次凭据。我也不想向登录用户显示密码。我们有没有可能以加密格式保存密码?
我有一些 PowerShell 脚本来更新活动目录中的数据。现在我想从另一台加入域的计算机上运行这些脚本,但当前登录的用户没有运行这些脚本的 AD 管理员权限。如何首先传递凭据以以管理员身份连接到域,然后运行脚本?
我知道该命令get-credentials
,但我不想要任何手动干预。有运行脚本的批处理文件,我想放置一次凭据。我也不想向登录用户显示密码。我们有没有可能以加密格式保存密码?
希望两个域之间有信任
$Server = 'XXXXXXXXXX'
$username = 'Domain\XXXXXXXXXX'
$password = 'XXXXXXXXXX'
$securepassword = ConvertTo-SecureString $Password -AsPlainText -force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList ($username,$securepassword)
Get-ADComputer -Identity $Server -Credential $cred
您可以使用 PowerGUI 将整个脚本更改为 exe 文件,并使用凭据将其保存以免被打开。
或者
使用 Brenton JW Blawat 的脚本进行加密,位于http://gallery.technet.microsoft.com/scriptcenter/PowerShell-Script-410ef9df
或者
使用以下文章中提到的简单脚本 http://www.interworks.com/blogs/trhymer/2013/07/08/powershell-how-encrypt-and-store-credentials-securely-use-automation-script
您可以编写一个 VBS 包装器,然后使用脚本编码器将其转换为 VBE,而不是使用批处理文件。从技术上讲,Vista 或 7 不支持脚本编码器,但如果你能在某个地方找到它,它仍然可以工作。另一种选择是将所有代码放入.Net EXE。一旦编译完成,它将对普通用户隐藏密码。知道他们在做什么的人仍然可以提取它,所以要注意这一点。编码的 VBE 也是如此。