2012-04-28 76 views
0

嗨,我是新来的电源外壳,我不能似乎得到这个脚本来运行它是使用命令提示符在这里工作组中的计算机上远程执行命令的错误我得到的脚本如下我是Win 7的机器上运行的脚本,我想远程执行对机器的Windows XP SP3防火墙被关闭和COM设置为默认的身份验证设置设置并确定冒充和帮助将是巨大的PowerShell的错误WMI

这里是错误 Invoke-WmiMethod:访问被拒绝。 (从HRESULT异常:0X80070005(E_ACCESSDENIED)) 在C:\用户\凯文\文件\ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1:57字符:40 + $的NewProc =调用-WmiMethod < < < < -class Win32_Process的-name创建` + CategoryInfo:NotSpecified:(:) [调用-WmiMethod],UnauthorizedAccessException + FullyQualifiedErrorId信息:System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.InvokeWmiMethod

$command = Read-Host " Enter command to run" 
    $user = "\Administrator" 
    $Domainname = $HostName +$user 
    $login = Get-Credential $domainname 

     [string]$cmd = "CMD.EXE /C " +$command 
         } 
    process { 
     $newproc = Invoke-WmiMethod -class Win32_process -name Create ` 
      -ArgumentList ($cmd) -EnableAllPrivileges -ComputerName $HostName -authentication Packetprivacy -Impersonation 3 -Credential $login 
     if ($newproc.ReturnValue -eq 0) 
       { Write-host -foregroundcolor Green "Command $($command) Ran Sucessfully on $($HostName)"} 

回答

1

我想这是因为GET-凭据赢得”将密码传递给Invoke-WmiMethod的-credential。我通过使用“convertto-securestring”创建凭证密码来做到这一点确切的事情

我知道它不像您必须以纯文本形式输入密码那样安全,但如果您是唯一使用脚本做维护或其他..这不是什么大事。

试试这个:

$command = Read-Host " Enter command to run" 
$pass = ConvertTo-SecureString "yourpassword" -Force -AsPlainText 
$Domainname = 'Domain' 
$user = '\administrator' 
$login = $Domainname + $user 
$cred = (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $login, $pass) 

     [string]$cmd = "CMD.EXE /C " +$command 
         } 
    process { 
     $newproc = Invoke-WmiMethod -class Win32_process -name Create ` 
      -ArgumentList ($cmd) -EnableAllPrivileges -ComputerName $HostName -authentication Packetprivacy -Impersonation 3 -Credential $cred 
     if ($newproc.ReturnValue -eq 0) 
       { Write-host -foregroundcolor Green "Command $($command) Ran Sucessfully