使用-Credential参数运行Start-Job时,会出现一个控制台窗口。如果不提供-Credential,则没有控制台窗口。在使用带-Credential的Start-Job时,有什么方法可以抑制控制台窗口?
# No Window
Start-Job -ScriptBlock { get-process | select Name -First 10 } | Receive-Job -Wait -AutoRemoveJob
# Window
Start-Job -ScriptBlock { get-process | select Name -First 10 } -Credential $(get-credential) | Receive-Job -Wait -AutoRemoveJob
谢谢, 唐纳德
答案 0 :(得分:0)
是。您可以通过在运行任何需要它的cmdlet /脚本/函数之前创建凭证对象来禁止凭据请求窗口。当然,使用任何存储的凭据时都有安全注意事项。
示例:
$username = 'UserName'
$password = ConvertTo-SecureString -String 'Password' -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username,$password
Start-Job -ScriptBlock { get-process | select Name -First 10 } -Credential $credential | Receive-Job -Wait -AutoRemoveJob
使用其他方式处理Powershell凭据的解决方案来源:Create Windows PowerShell Scripts that Accept Credentials
注意:在某些情况下,用户名可能需要采用不同的格式(domain \ user,user @ domain.com等)。输入脚本密码时,单引号很重要。如果使用双引号,某些字符(如$和{)可能会导致问题。