【发布时间】:2012-08-14 08:38:09
【问题描述】:
将 Start-Process / Start-Job cmdlet 与 -Credential $cred 一起使用时,我没有得到任何结果
问题
我在部署中使用了一个服务帐户(无人值守模式)。以前它已添加到本地管理员组。我想通过从管理员组中删除该用户并明确分配文件夹权限给该用户来减少可能造成的损害。
- 我宁愿得到一个权限错误也不愿执行一些意外的事情。 删除项目“$notdefined\*”
但是,在同一个 powershell 脚本中,我希望能够提升以执行以下操作:
- sc.exe
- 应用程序池重启 这需要管理员用户。
我的一次失败尝试
$job = Start-Job -ScriptBlock {
param(
[string]$myWebAppId
)
Import-Module WebAdministration
Write-Host "Will get the application pool of: IIS:\Sites\$myWebAppId and try to restart"
$appPoolName = Get-ItemProperty "IIS:\Sites\$myWebAppId" ApplicationPool
Restart-WebAppPool "$($appPoolName.applicationPool)"
Write-Host "restart of apppool succeeded."
} -Credential $cred -ArgumentList @("appname")
Write-Host "started completed"
Wait-Job $job
Write-Host "wait completed"
Receive-Job $job -Verbose
Write-Host "receive completed"
【问题讨论】:
-
我找到了一个可能的解决方案powershell.com/cs/blogs/tobias/archive/2010/10/28/… - 虽然希望有一种方法可以使用 $cred 我用安全字符串检索
标签: powershell deployment