以域用户身份执行命令

时间:2018-01-20 00:42:17

标签: powershell dfs

我想使用域用户运行以下命令:

New-DfsReplicationGroup -GroupName“RG01”

我尝试了两种方法,但两种方法都有错误:

1). Start-Process powershell -Credential domain.com\Admin -password abc1234 New-DfsReplicationGroup -GroupName "RG01"
2). Invoke-Command -Credential domain.com\Admin -password abc1234 New-DfsReplicationGroup -GroupName "RG01"

请建议。

1 个答案:

答案 0 :(得分:0)

您正在尝试使用下级WinNT登录,但指定域fqdn。

改变这个......

Start-Process powershell -Credential domain.com\Admin -password abc1234 New-DfsReplicationGroup -GroupName "RG01"
Invoke-Command -Credential domain.com\Admin -password abc1234 New-DfsReplicationGroup -GroupName "RG01"

对此...下面的每一个都会使用用户信息自动填写密码对话框,当然你仍然需要输入密码。

Start-Process powershell -Credential domain\Admin -password abc1234 New-DfsReplicationGroup -GroupName "RG01"
Invoke-Command -Credential domain\Admin -password abc1234 New-DfsReplicationGroup -GroupName "RG01"

永远不要在脚本中以明文形式放置密码

所以,使用

$DomainUserCreds = Get-Credential -Credential 'Domainname\Username'
Start-Process powershell -Credential $DomainUserCreds New-DfsReplicationGroup -GroupName "RG01"
Invoke-Command -Credential $DomainUserCreds New-DfsReplicationGroup -GroupName "RG01"

如果您以域管理员身份登录,则可以动态获取

$DomainUserCreds = Get-Credential -Credential "$env:USERDOMAIN\$env:USERNAME"
Start-Process powershell -Credential $DomainUserCreds New-DfsReplicationGroup -GroupName "RG01"
Invoke-Command -Credential $DomainUserCreds New-DfsReplicationGroup -GroupName "RG01"

如果您将域设置为使用UPN,则可以执行

$DomainUserCreds = Get-Credential -Credential "$env:USERNAME@$env:USERDNSDOMAIN"
Start-Process powershell -Credential $DomainUserCreds New-DfsReplicationGroup -GroupName "RG01"
Invoke-Command -Credential $DomainUserCreds New-DfsReplicationGroup -GroupName "RG01"