使用 PowerShell 自动化 Cygwin 配置

Posted

技术标签:

【中文标题】使用 PowerShell 自动化 Cygwin 配置【英文标题】:Automation of Cygwin configuration with PowerShell 【发布时间】:2014-06-27 06:57:05 【问题描述】:

我已经使用 PowerShell 脚本安装了 Cygwin。

我正在手动执行以下步骤:

    运行一个新的cygwin bash shell(编辑cygwin.bat之后)并输入:

    mount --change-cygdrive-prefix /
    chmod +r /etc/passwd /etc/group
    chmod 755 /var
    

    启动 Cygwin bash shell 并运行 ssh-host-config。对所有密钥生成问题回答“是”。

是否可以在 PowerShell 脚本中自动执行这些操作,例如安装 Cygwin,然后一次性执行步骤 1 和 2?

【问题讨论】:

如果你 cd 进入 cygwin 目录,你可以运行 bash.exe ssh-host-config --yes 不明白为什么你不能把它添加到第 1 步的底部以在 1 步中完成所有操作 如果我运行 "bash.exe ssh-host-config --yes " ,我收到一个错误 "the term bash.exe is not Recognized as a cmdlet" ,还有一件事是我必须 Cygwin.bat 文件而不是 bash.exe 文件 您需要将cd 放入所有可执行文件所在的%cygwinhome%\bin,其中一个是bash.exe。您只需将上述命令附加到您的 cygwin.bat 文件中即可自动生成密钥 非常感谢,最后澄清一下,运行“run ssh-host-config”后,有一个“为守护进程输入CYGWIN的值”的步骤,这一步怎么做在执行期间无需用户输入干预的情况下静默输入值? 【参考方案1】:

使用这个命令:

bash.exe ssh-host-config --yes -u "Cygwinuser" -c "binmode ntsec tty" -w "pwd@123"
cygrunsrv -S sshd

稍后去 services.msc 检查服务是否正在运行

【讨论】:

以上是关于使用 PowerShell 自动化 Cygwin 配置的主要内容,如果未能解决你的问题,请参考以下文章

如何在 powershell 中更改目录并在该目录中运行文件?

使用 Windows bat 文件打开 Cygwin 并运行脚本文件

Cygwin 下的 自动安装工具 apt-cyg

在 Cygwin 中构建 Emacs 时,目标“自动加载”的配方失败

cygwin中的Ruby Outlook自动化

通过批处理文件自动化 cygwin