使用Start-Process with -Credential的winpe 4.0不能正常工作

时间:2013-11-04 14:48:56

标签: .net powershell .net-4.0 powershell-v3.0 winpe

我的部署脚本启动后,我试图在WinPE 4.0下运行它:

Start-Process x:\ windows \ notepad.exe -Credential(Get-Credential)

我为Credential弹出窗口提供了正确的凭据,但后来我收到了这个错误:

cmdlet命令管道位置1的Get-Credential 提供以下参数的值: 凭据 start-process:由于错误,无法运行此命令:指定的服务不作为已安装的服务存在。 在行:1个字符:1 + start-process x:\ windows \ system32 \ notepad.exe -Credential(Get-Credential) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~   + CategoryInfo:InvalidOperation :( :) [Start-Process],InvalidOperationException   + FullyQualifiedErrorId:InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

如果我删除-Credential开关,notepad.exe会正确执行,只是为了让您知道。

在Windows Server 2012上运行相同的确切行(使用-Credential)可以很好地工作,所以我认为PowerShell 3.0或WinPE 4.0下的.NET 4.0都缺少了。

感谢您提供任何帮助或指示。

3 个答案:

答案 0 :(得分:0)

尝试传入以编程方式创建的凭据,例如:

$passwd = ConvertTo-SecureString "PlainTextPassword" -AsPlainText -Force
$cred = new-object System.Management.Automation.PSCredential "username",$passwd
Start-Process x:\windows\notepad.exe -credential $cred

答案 1 :(得分:0)

您无法在备用凭据下启动进程,因为WinPE没有(或至少公开)安全帐户管理器(SAM)。由于WinPE无法加入Active Directory域,因此无法在域凭据下启动进程。此外,由于WinPE没有(或者可能根本不公开)安全帐户管理器(SAM),因此您无法在WinPE下创建自定义用户帐户。

答案 2 :(得分:0)

将空字符串参数传递给-Credential参数:start-process x:\ windows \ system32 \ notepad.exe -Credential""

这将显示凭据对话框,但无需进行身份验证,因为WinPE中未安装必要的服务。

Darrick West