我有一些PowerShell脚本来更新活动目录中的数据。现在我想从另一个加入计算机的域运行这些脚本,但当前登录的用户没有AD的管理员权限来运行脚本。如何首先通过凭据以管理员身份连接到域,然后运行脚本?
我知道命令get-credentials
,但我不想进行任何手动干预。
有批处理文件运行脚本,我想把凭证放一次。
我也不想向登录用户显示密码。我们是否有可能以加密格式保存密码?
答案 0 :(得分:0)
希望两个域之间存在信任
$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 J.W.的脚本。 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
答案 1 :(得分:-1)
您可以编写VBS包装器,然后使用脚本编码器将其转换为VBE,而不是使用批处理文件。 Vista或7在技术上不支持脚本编码器,但如果您可以在某处找到它,它仍然有效。另一种选择是将所有代码放入.Net EXE。一旦编译它就会隐藏普通用户的密码。知道自己在做什么的人仍然可以提取它,所以要注意这一点。编码的VBE也是如此。