【问题标题】:how to connect to a remote computer without credentials?如何在没有凭据的情况下连接到远程计算机?
【发布时间】:2016-07-26 15:02:37
【问题描述】:

我已经完成了编写 Powershell 脚本以从域中的其他计算机获取一些信息的工作。 它看起来有点奇怪,但是是否可以在远程计算机上运行此脚本 test.ps1 而无需输入(凭据) 因为运行起来似乎不合逻辑:

enable-psremoting -Force

在每台机器上,然后:

Invoke-Command -FilePath C:\path\test.ps1 -ComputerName computername -Credential domain\usrname

期待你的回答

【问题讨论】:

    标签: powershell credentials remoting powershell-remoting


    【解决方案1】:

    我认为没有办法解决这个问题。

    您的管理员应使用全局策略为您公司中所有需要的计算机启用远程处理。

    否则,您可以使用 sysinternals psexec 远程运行 powershell:

     psexec \\remote-computer powershell -File <....> 
     psexec \\remote-computer powershell -Command <....> 
    

    对于-File 变体工作文件必须在远程服务器上可用或可通过 SMB 共享访问。

    请注意,这要求您是远程计算机上的管理员,因为它使用您的 Windows 凭据。否则您可以指定远程用户和密码。

    你也可以

     psexec \\remote-computer powershell -Command "enable-psremoting -Force"
    

    为了不每次都运行它,您可以通过代理函数将其自动化到 Invoke-Command,方法是向它添加一个参数,例如 EnableRemoting,然后您可以调用它,例如:

    Invoke-Command -FilePath C:\path\test.ps1 -ComputerName computername -EnableRemoting
    

    在代理中,您可以将此参数默认设置为 true,在这种情况下您不需要它。除了代理之外,您还可以为此使用函数。

    在此之前,如果您首先测试它是否已启用,您将加快速度:

    if (!(Test-WsMan \\remote)) { psexec .... enable-psremoting... }
    Invoke-Command ...
    

    【讨论】:

    • 但是我们还是有用户名和密码的问题。
    • 隐式使用您的域用户名和密码。没有操作系统,您将无法访问操作系统。您始终可以使用默认管理员帐户
    猜你喜欢
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2011-05-12
    • 1970-01-01
    • 2022-10-13
    相关资源
    最近更新 更多