【问题标题】:winpe 4.0 using Start-Process with -Credential doesn't work as it shouldwinpe 4.0 使用带有 -Credential 的 Start-Process 无法正常工作
【发布时间】:2013-11-04 14:48:56
【问题描述】:

一旦我的部署脚本启动,我会尝试在 WinPE 4.0 下运行它:

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

我向“凭据”弹出窗口提供了正确的凭据,但随后收到此错误:

cmdlet Get-Credential 在命令管道位置 1 为以下参数提供值: 凭据 start-process :由于错误无法运行此命令:指定的服务不作为已安装的服务存在。 在行:1 字符:1 + 启动进程 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 缺少一些东西。

感谢您的任何帮助或指点。

【问题讨论】:

    标签: .net powershell .net-4.0 powershell-3.0 winpe


    【解决方案1】:

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

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

    【讨论】:

    • 嗨 Keith,按照您建议的方式进行操作也会产生同样的错误。
    • 您使用的是本地帐户还是域帐户的凭据?
    • 对于域帐户:域\用户名
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      这将显示凭据对话框,但由于 WinPE 中未安装必要的服务,因此不会有任何可验证的内容。

      达里克·韦斯特

      【讨论】:

        猜你喜欢
        • 2011-06-20
        • 1970-01-01
        • 2014-01-20
        • 2013-01-25
        • 2013-03-14
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 2014-06-08
        相关资源
        最近更新 更多