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

Powershell 我想通过命令行使用自定义帐户验证应用程序池标识,powershell,iis,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.passw

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

\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
当我尝试这样做时,我得到的错误是:

错误(消息:找不到标识符为“DomainNameTest”的站点对象

我还需要一种在代码中加密密码的方法。我已经创建了应用程序池。有人知道我做错了什么吗


此外,我还可以随时获取有关如何加密密码或让PowerShell提示输入密码的提示吗?

这是使用
get Credential
执行此操作的一种方法。它会弹出一个对话框,询问用户名和密码。如果使用PowerShell处理appcmd.exe,则必须稍微更改为m确保一切正常,而不会抛出您看到的错误。请确保以管理员身份运行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:*