我有一个PowerShell 2.0脚本,它执行一些涉及启动的非MS应用程序的任务。 如果通过RDP或本地控制台运行,这将非常有效,但是如果通过远程工作站的Enter-PSSession会话运行,则会删除不想要的文件。 我在找什么而不是find(或理解),是否在PowerShell脚本中有一种方法来testing它是在本地执行还是通过Enter-PSSession远程执行。 这将允许我testing,如果它是一个远程会话,并正常退出与“对不起,这必须在本地运行”消息。
我在我的36核心服务器(EC2 c4.8xlarge / Amazon Linux)上运行这样的命令。 find . -type f | parallel -j 36 mycommand 要处理的文件数量是〜100万,需要几十分钟。 它应该同时运行36个进程。 但是,从top的结果来看, top只有10个进程,而70%是空闲的。 ps显示更多的进程,但其中大部分已经失效。 我猜测是因为每个mycommand如此迅速地完成, parallel无法赶上产生新的进程。 所以我尝试了parallel –nice 20来分配更多的CPU时间到parallel本身,但是这不起作用。 有没有人有一个想法来改善这一点? $ parallel –version GNU parallel 20151022
我想创build一个命令, 只在当前时间在午夜和上午6点之间附加一个特定的参数。 示例伪代码: mvn clean verify <#if isBetweenMidnightAnd6AM> -Dfindbugs.skip=false</#if> 有可能在单个命令行中构build它,还是需要一个shell脚本?
所以,我可能会手动做这个,因为它只有44个文件。 但是,如果出现类似的情况,我想知道如何在将来做更轻松的事情。 基本上,DFS-R从来没有安装在replace文件服务器上,现在是一个月后,我需要安装angular色。 但是,在我这样做之前,我需要将将要成为辅助复制伙伴的44个新文件复制到主复制伙伴,以便在初始复制期间不会丢失它们。 我使用robocopy做了差异比较,所以我使用完整path的文件名,只需将它们复制到主服务器上的相同确切path,只需使用不同的服务器名称即可。 所以基本上:“\ servername1 \ share \ path1 \ path2 \ path3 \ filename.file”需要到“\ servername2 \ share \ path1 \ path2 \ path3 \ filename.file” 但是,由于它是44个项目(至less这次,下次或多或less),我需要一种循环遍历列表的方法,并为列表中的每个项目启动一个副本,只需更改服务器名称即可。 我确信有一种方法可以用Powershell来做到这一点,但是对于PS或一般的脚本来说,我并不是最强大的。 有任何想法吗?
我正在创build一个PowerShell模块,当我导入它时,得到以下警告。 WARNING: The names of some imported commands from the module 'ModuleName' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb. 这是由我的cmdlet Is-WindowsServer引起的。 它根据服务器是否运行Windows操作系统返回$true或$false 。 但事实certificate,“是”不是一个批准的PowerShell动词。 我已经查看了PowerShell批准的dynamic列表,但是我没有看到可以工作的列表。 https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx 在这种情况下使用的最佳练习动词是什么?
我正在创build一个脚本,将所有的计算机名称和模型输出到Excel文件。 代码工作没有Export-Csvpipe道,但我不知道如何创buildExcel文件。 如果我拿出循环,并使用Export-Csv只使用一台计算机,它也可以正常工作。 #Query AD $Computers = Get-ADComputer -Filter * -searchbase "DC=domain,DC=org" #loop foreach ($computer in $Computers) { $comp=$computer.Name Get-WmiObject -Class Win32_ComputerSystem -ComputerName $comp | Where-Object {$_.model -like "*G2*"} | Select-Object Name, Model | Export-Csv "C:\User\xxxxxx\Desktop\8200s.csv" -NoTypeInformation -Encoding UTF8 -Append }
我有文字,包含一些行。 所以,我需要做几行GREP。 例如,我有重复的文字,我应该GREP得到线,有这个重复的关键词。 grep -o "test|test2" textfile 我的文字: 123|never for your|test 123421|never for your|test2 123412|never for your|test3 12341|never for your|test4 12311|never for your|test2 123312312|never for your|test 123321312|never for your|test2 我应该: 123|never for your|test 123421|never for your|test2 123312312|never for your|test 123321312|never for your|test2 它的工作,但它不工作,我想要的。 它在文本中search所有单词“test”和“test2”。 但是我想得到的文本块,就像一些模式,只有在“testing”来到“test2”之后。 你有什么想法吗?
我正在创build一个shell脚本来自动化我们的证书导入过程。 它将以root身份运行以更新组策略。 一旦完成,我们怎么能改变根login用户名在MAC? 例如: #!/bin/bash VERSION=1 #Internal network check if ping -c 2 source.vmware.com ; then OK ; else echo “Exiting, not connected to internal network” ; fi sudo gpupdate 发布这个,我们将不得不运行一个命令“SCC”,它将导入证书,但它只作为login的用户(AD用户名)运行? 需要帮忙…
概要: 我有大约30个用户。 我正在寻找一种简单的方法来更新和pipe理这些用户的PowerShell脚本,而不会强迫他们下载或运行命令来更新。 我有一个隐含的远程服务器,但是,由于某些限制,我无法运行某些脚本。 例如,一个脚本依赖于在用户证书存储中查找特定证书并枚举该值以访问Web应用程序。 这不能通过隐式远程进行,因为远程服务器上不存在用户cert存储。 题: 有没有一种简单的方法来pipe理用户的PowerShell脚本而不强迫他们进行更新?
我知道安全的SSH服务器还有更重要的事情,只允许基于密钥的authentication,更改端口或使用端口敲除,实现fail2ban等。 但是,如果有什么事实来确保用户名对于SSH服务器的安全性没有任何影响呢? 或者是否有任何参数(例如,基于包含用户名计数的蛮力企图的统计数据)支持具有简单或可猜测的用户名将使试图访问我们的服务器的人变得容易? 我还没有find任何关于用户名是安全的SSH服务器的威胁的具体信息来源,所以它可能不是,但我想确认它为什么可能是逻辑或为什么它不是基于事实,参考或具体的专业知识。