如何在没有提示的情况下在指定的凭据下执行powershell脚本?

时间:2015-03-09 18:29:22

标签: powershell vmware credentials microsoft-dynamics

我正在编写一个动作脚本'在VMWare AppDirector' AppD'安装MS Dynamics。 (我的动作脚本实际上是一个powershell脚本)。这种方式的工作方式是AppD将使用内置管理员帐户在新部署的服务器上执行powershell脚本。此脚本是高度协调部署的最后一步。在此阶段,我的SQL服务器已经部署,数据库已加载,我正在执行最终部署。

当我以自己的身份运行我的脚本时,一切都很好。但当然,这是在&mydomain \ myusername'下执行的。但是,当AppD在本地内置帐户下执行此脚本时,它不具备安装程序所需的凭据以对SQL进行身份验证,并使安装成功连接成功。

我的第一次尝试是调用一个脚本,调用我的实际部署脚本,这样我就可以传递凭证;

$user = "mydomain\myusername"
$pword = ConvertTo-SecureString -String "mypassword" -AsPlainText -Force
$credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $pword

Invoke-Command -FilePath "C:\Scripts\DeployAOS.ps1" -Credential $credential -Computer localhost

这看起来可能有用,但在查看安装日志时,我看到以下错误;

2015-03-09 13:15:19Z    Property DbSqlServer set to: 'SQLSERVER001'
2015-03-09 13:15:23Z    Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

我原来的DeployAOS.ps1脚本包含这一行,它将启动安装;

# Perform AOS Installation
Start-Process -FilePath $exeAOSSetup -ArgumentList $cfgAOS -Wait

我还尝试修改我的DeployAOS.ps1以设置' System.Management.Automation.PSCredential'对象w \用户名\密码,并执行类似的操作;

# Perform AOS Installation
Start-Process -FilePath $exeAOSSetup -ArgumentList $cfgAOS -Credential $credentials -Wait

它确实不是那样的。感觉就像AOS设置需要在域用户下执行,可以访问SQL服务器,甚至可以在安装运行时加载用户配置文件(因此它可以创建桌面快捷方式等)。

我有什么想法可以解决这个问题?我对PowerShell中的脚本编写起来相当新,所以任何帮助都会受到赞赏。

0 个答案:

没有答案