Articles of 自动化

远程重命名Win 7计算机

我很难搞清楚如何远程重命名Windows 7计算机。 这是为了使vSphere 5环境中的Win 7版本自动化,我试图尽可能地解决这个问题。 到目前为止,我已经设法得到一切,但机器重命名为自动化(或可自动化)。 WinRM正在工作,所以远程PowerShell方法的工作。 invoke-command -computername "W7-Img3-RPT49VA" -scriptblock {commands go here; have another one} 上面的工作。 我可以做像获取目录列表和运行命令的东西。 但是,获取域更改没有奏效。 根据这个SF问题 ,我在脚本块中尝试了以下内容: $comp=get-wmiobject -class computersystem ; $comp.rename("W7-clone-42") 返回ReturnValue : 5 ,经过多次search转换为“Access Denied”。 该页面上的其他build议: wmic computersystem rename "W7-Clone-42" 返回无用的“无效动词开关”。 另一个互联网来源提出了以下表述: wmic computersystem where Name="W7-Img3-RPT49VA" call rename name="W7-clone-42" 交替出现无效动词切换或无效的参数。 作为一个testing,我直接在pipe理站上运行上述命令,而不是通过invoke-command ,也得到了拒绝访问。 走老派,我把netdom复制到了目标机器上。 netdom renamecomputer W7-Img3-RPT49VA /newname:W7-clone-42 这给了我“拒绝访问”。 […]

使用PowerShell将用户添加到本地pipe理员组

我想使用PowerShell将特定用户添加到计算机上的本地pipe理员组。 我将在本地机器上具有pipe理权限的用户的上下文中运行PowerShell脚本。

如何安装木偶包装组?

木偶是否有办法安装yum软件包组(例如“开发工具”),除了exec?

如何在启动时为服务设置ulimits?

我需要mysql来使用大页面来设置ulimit – 我在limits.conf中做了这个。 但是,limits.conf(pam_limits.so)不能读入init,只能读取“真实”的shell。 我之前通过在initscript start函数中添加一个“ulimit -l”来解决这个问题。 我需要某种可重复的方式来做到这一点,现在这些盒子是由厨师pipe理的,我们不想接pipe一个由RPM实际拥有的文件。

改变MySQL中所有表中所有列的字符集和整理

我需要在所有列的所有表中执行这些语句。 alter table table_name charset=utf8; alter table table_name alter column column_name charset=utf8; 是否有可能在MySQL内部以任何方式自动化? 我宁愿避免mysqldump 更新:理查Bronosky给我看的方式:-) 我需要在每个表中执行的查询: alter table DBname.DBfield CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 疯狂的查询来生成所有其他查询: SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'DBname'; 我只想在一个数据库中执行它。 一次执行完成需要很长的时间。 事实certificate,它为每个表每个字段生成一个查询。 每个表只有一个查询是必要的(与救援不同)。 […]

将Powershell脚本与非Windows工作stream集成的方法?

早上我喜欢新机器的气味。 我正在自动创build一个机器创build工作stream程,该工作stream程涉及我的基础架构中的多个独立系统,其中一些涉及Solaris主机上的15年Perl脚本,PXE引导Linux系统和Windows Server 2008上的Powershell。 我可以编写每个单独的部分,并且集成Linux和Unix自动化相当简单,但是我不知道如何将Powershell脚本可靠地连接到其他进程。 我宁愿如果这个过程开始于Linux主机,因为我认为它将最终成为一个生活在Apache服务器上的Web应用程序,但是如果它需要在Windows上开始,那么我对此犹豫不决。 我希望Linux的psexec可以和Windows一样运行,但Cygwin看到了这个方向的答案,尽pipe我很欣赏他们所付出的辛勤劳动,但是从来没有感觉到这是正确的 ,如果你明白我的意思。 这对于桌面系统来说是非常棒的,并且提供了很多function,但是我觉得Windows服务器应该像Windows服务器一样被对待,而不是被混为一谈的Unix机器(顺便说一下,这也是我对OSX服务器的争论, 实际上它们是Unix) 。 无论如何,我不想和Cygwin一起去,除非这是最后也是唯一的select。 所以我想我要问的是,如果有一种方法可以从Linux的Windows机器上执行作业。 没有Cygwin。 我很乐意提出一些想法和build议,包括“看起来白痴,每个人都使用Cygwin,所以把它搞砸,然后处理”。 提前致谢!

Cygwin SSHd自动login失败login

我在Windows Server 2008机器上运行Cygwin和SSH deamon。 我正在查看事件查看器,并注意到来自不同IP的最近一周左右失败的login尝试次数达到每秒5次(蛮力)。 我怎样才能自动阻止这些IP,而不是手动一个一个地阻止它们呢? 谢谢,艾哈迈德

如何在不使用作业的情况下并行运行我的PowerShell脚本?

如果我有一个需要在多台计算机上运行的脚本,或者有多个不同的参数,那么我怎样才能并行执行它,而不必担心会在Start-Job中产生一个新的PSJob ? 例如, 我想重新同步所有域成员上的时间 ,如下所示: $computers = Get-ADComputer -filter * |Select-Object -ExpandProperty dnsHostName $creds = Get-Credential domain\user foreach($computer in $computers) { $session = New-PSSession -ComputerName $computer -Credential $creds Invoke-Command -Session $session -ScriptBlock { w32tm /resync /nowait /rediscover } } 但我不想等待每个PSSession连接并调用该命令。 没有乔布斯,这怎么可以同时完成呢?

Ssh,login时运行命令,然后保持login?

我期待着这样做,但没有奏效:最后closures了连接。 我们可以通过ssh运行一个脚本,它将login到远程机器,运行一个命令,而不是断开? 所以在一台机器上ssh,cd到这样一个目录,然后运行一个命令,并保持login状态。 -Jonathan (期待我使用) #!/usr/bin/expect -f set password [lrange $argv 0 0] spawn ssh root@marlboro "cd /tmp; ls -altr | tail" expect "?assword:*" send — "$password\r" send — "\r" interact

自动化服务器部署

我发现我经常为几个客户设置几乎相同的服务器和VPS,这可能非常耗时。 通常情况下,每个部署之间唯一的变化是要提供的不同网站。 有没有一种简单的方法来自动化所有这些,并采取无聊的单调设置56个相同的服务器? 到目前为止,我已经部署的服务器只有Ubuntu,但可能我开始使用其他Linux操作系统甚至Windows。 到目前为止,我已经看过Capistrano,但它似乎专注于写小ruby程序来完成这项工作,而且我根本不知道