Uzak bir bilgisayarın uzak bilgisayarda PowerShell betiğini çalıştırmasını nasıl sağlayabilirim?


4

İki uzak makinem var: 1 sürücüye diyoruz, 2 müşteri diyoruz. Aynı etki alanındalar onlara "TECH.com" diyelim.

Sürücü makinesinde, istemci makineyi kontrol eden bir PowerShell betiğim var: 1, istemcideki kontrol noktasını geri yükleyin. 2, müşteriyi durdur. 3, istemciyi başlat. vb. Yapmaya çalıştığım şey, istemci makinenin başka bir PowerShell betiğini çalıştırmasını sağlamaktır (bu, istemcide veya / veya sürücünün her ikisinde de bulunabilir. Gerekirse dosyayı sürücüden istemciye kopyalayabilirim). müşteri makinesi.

Bu yüzden bazı araştırmalar yaptım ve iki yöntem buldum: 1, WS Yönetimi. 2, WMI Her iki makinede de psremoting özelliğini etkinleştirdim. Her iki makinede WsMan'ı test ettim ve iyi çalıştığını görüyorlar. Bu iki makine arasında dosya aktarabildim. Ancak, Invoke-komutunu çalıştırmaya çalıştığımda, bana hatalar verdi:

Connecting to remote server XXXXXXtech.com failed with the following error message : WinRM cannot process the request. The following 
error with errorcode 0x80090311 occurred while using Kerberos authentication: There are currently no logon servers available to service the logon request.  
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.
    + CategoryInfo          : OpenError: (XXXXXX.XXXXtech.com:String) [], PSRemotingTransportException
    + FullyQualifiedErrorId : AuthenticationFailed,PSSessionStateBroken

Yanıtlar:


5

Birkaç seçenek:


Yerel makinede, kimlik doğrulama olmadan uzak makineye bağlanmaya izin verin:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value $remoteMachine -Force

Aynı etki alanındaysanız ve uzaktaki makinede yönetici haklarına sahipseniz, devam edin ve kullanıcı adınızla uzaktaki bir oturuma girmeyi deneyin.


Aksi takdirde, bir kimlik bilgisi nesnesi ayarlamanız ve bir oturum başlatmak için kullanmanız gerekebilir / isteyebilirsiniz Invoke-Command.

$script = { Write-Host "Hello, World!" }
$computerName = "Server Name Or Ip Address"
$username = "domain\user"
$pw = "worstpasswordever"

# Create Credentials
$securepw = ConvertTo-SecureString $pw -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential -argument $username, $securepw

# Create and use session
$session = New-PSSession -credential $cred -ComputerName $computerName
Invoke-Command -Session $session -ScriptBlock $script
Remove-PSSession $session

Set-item komutunu zaten kullandım. Daha sonra kimlik bilgisi nesnesini oluşturmayı deneyeceğim. Kimlik bilgisi için $ clientMachineName \ Admin kullanıyordum
FrozenLand 17:13
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.