我想通过命令行使用自定义帐户验证应用程序池标识

时间:2015-12-28 21:42:24

标签: powershell iis

我目前正在尝试使用此命令:

.\appcmd set config /section:applicationPools /[name='cobra.appdelivery.com'].processModel.identityType:SpecificUser /[name='cobra.appdelivery.com'].processModel.userName: domainname\joshtest /[name='cobra.appdelivery.com'].processModel.password: test1234

当我尝试这样做时,我收到的错误是:

  

错误(消息:找不到标识符为“domainnamejoshtest”

的SITE对象

此外,我还需要一种方法来加密代码中的密码。我已经创建了应用程序池。有谁知道我做错了什么?

我是否可以获得有关如何加密密码或在我想运行脚本时随时使用PowerShell提示输入密码的提示?

1 个答案:

答案 0 :(得分:1)

这是使用Get-Credential执行此操作的一种方法。它会弹出一个对话框,询问用户名和密码。如果您使用PowerShell与appcmd.exe配合使用,则必须稍微更改the way things are quoted以使其工作正常而不会抛出您所看到的错误。请务必以管理员身份运行PowerShell。

$cred = Get-Credential
$name = $cred.UserName
$encryptedpass = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($cred.Password)
$decryptedpass = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($encryptedpass)
.\appcmd set config /section:applicationPools /"[name='Marketing'].processModel.identityType:SpecificUser" /"[name='Marketing'].processModel.userName:$name" /"[name='Marketing'].processModel.password:$decryptedpass"

确保appcmd在您的系统路径中,或者从它所在的文件夹中运行它。另请注意,它对用户名或密码的输入进行零验证。它只是应用设置。

如果要验证设置,请运行以下命令并在[processModel]下检查:

.\appcmd list apppool "Marketing" /text:*