Articles of PowerShell的

没有CR-LF的Powershellpipe柱

我在PowerShell中总是noob,我想传递一个包含空字符的string到一个命令(openssl在当前的工作目录中): powershell -command "& { \"`0myemail@gmail.com`0mypassword\" | %cd%\openssl enc -base64 }" 事情是我得到我的string编码,就好像它是通过一个回车符和一个新的行字符在它的末尾。 我错过了什么?

当使用POWERSHELL将数据添加到表中时,“该行已经属于该表”

下午好堆栈溢出。 我正在尝试使用Powershell自动化一些基于纸张的stream程。 我们已经有了一个Powershell解决scheme,其中的输出是一个Excel电子表格,但为了规划未来,我们觉得CSV输出比Excel更容易使用。 我们正在做的是非常基本的,我们正在接触到在AD的组的所有者,在一个文本文件中指定。 对于列出的每个组,我们循环并将项目添加到表中。 问题出在这里,我对Powershell还是很陌生,并且在循环遍历“for each”语句时遇到了问题。 我遇到以下错误: Exception calling "Add" with "1" argument(s): "This row already belongs to this table." At line:77 char:17 + $table2.Rows.Add <<<< ($row2) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException 我觉得分享我正在使用的代码是合适的: import-module activedirectory $strGroupList = get-content "C:\Users\MYUSERNAME\Documents\Group Audit\audit.txt" $strDate = Get-Date foreach ($strGroup in $strGroupList) { […]

FORFILES date -after-(cmd文件中的date计算)

我想在一个cmd文件中使用FORFILES,在给定的date之后通过“today”来处理所有文件。 我可以使用forfiles /d +07/10/2013 /c "cmd /c echo @fname"东西在7/10/13之后执行,但是我想要的只是从90天开始计算在“今天”之前。 是否有一个date计算的语法,将在一个cmd文件,将让我指定“今天之前x天”饲料到FORFILES? 我更喜欢不使用VBS(并且发现了可以在VBS中工作的代码片段),不过我可以重写Powershell脚本,但理想情况下我想使用cmd。 为了澄清,“-90”会find所有超过90天的文件; “+90”会发现所有文件比今天晚了90天(这基本上是无用的,因为文件很less会在未来的date编写),“+7 / 30/2013”​​会查找所有比7/30更新的文件/ 2013。 我想要最后一段时间,最好能够传递给CMD文件的天数variables,也就是说“在今天之前x天之后”,即“在最近x天”。 所以,而不是如上所示使用硬编码的date,我希望能够在cmd文件中计算该date。

确保在任何给定时间只有1个PowerShell脚本实例正在运行

我正在使用PowerShell v1编写一个批处理脚本,让它每分钟运行一次。 不可避免地,会有一段时间,这个工作需要1分多钟才能完成,现在我们有两个脚本运行的实例,然后可能有3个,等等。 我想通过让脚本本身检查是否有一个已经运行的实例来避免这种情况,如果是,脚本就会退出。 我在Linux上使用其他语言完成此操作,但从未在Windows上使用PowerShell完成此操作。 例如在PHP中,我可以这样做: exec("ps auxwww|grep mybatchscript.php|grep -v grep", $output); if($output){exit;} 在PowerShell v1中是否有这样的东西? 我还没有遇到过这样的事情。 在这些常见模式中,哪一个最适合使用经常运行的PowerShell脚本? locking文件 OS任务计划程序 无限循环与睡眠间隔

如何从RUN运行特定窗口大小的PowerShell?

如何从具有特定窗口大小的“RUN”启动PowerShell? 有没有像“-size:100×100”的任何争论。 这是可能的运行或有没有其他的方式来运行一个给定的大小的程序窗口?

将组“Everyone”添加到目录及其所有子目录中

我目前正在使用Vista 32位。 如何添加Windows安全组“Everyone”并完全控制目录及其所有子目录和所有文件? 有一个PowerShell脚本,我可以使用? 谢谢!

VBScript中Msgbox的替代方法

我想在基于VBS的login脚本运行后显示状态信息。 我可以简单地使用一个消息框,但是宁愿在用户login后短暂地在这个时钟之上出现这个信息。 我有什么替代scheme,而不是一个消息框?

根据大小(窗口)将文本文件拆分成较小的文件

有时会创build太大而无法打开(5GB +)的日志(.txt)文件,我需要创build一个解决scheme,将其分割成更小的可读块,以便在写字板中使用。 这是在Windows Server 2008 R2中。 我需要的解决scheme是一个batch file,PowerShell,或类似的东西。 理想情况下,它应该是硬编码,每个文本文件包含不超过999 MB,并不停止在一行的中间。 我发现了一个类似于我的需求的解决scheme,有时工作(按行数)在https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Split-large-log-6f2c4da0 ############################################# # Split a log/text file into smaller chunks # ############################################# # WARNING: This will take a long while with extremely large files and uses lots of memory to stage the file # Set the baseline counters # Set the line counter to 0 […]

外部驱动器盘符 – 备份

我正在编写一个PowerShell脚本,使用robocopy将我的Vista驱动器中的多个文件夹备份到外部USB驱动器。 Windows不保证它将始终将相同的驱动器号分配给外部驱动器。 解决这个问题的最好方法是什么? 如何编码目标path? 谢谢。

如何在Windowsbatch file中运行PowerShell脚本

如何在Windows批处理脚本中embedded与PowerShell脚本相同的文件? 我知道这种事情在其他情况下是可能的: 将SQLembedded到使用sqlcmd的批处理脚本中,并在文件开始处巧妙地安排了goto和注释 在具有程序名称的* nix环境中,您希望在脚本的第一行中注释脚本,例如#!/usr/local/bin/python 。 可能没有办法做到这一点 – 在这种情况下,我将不得不从启动脚本调用单独的PowerShell脚本。 我考虑的一个可能的解决scheme是回显PowerShell脚本,然后运行它。 不这样做的一个很好的理由是,尝试这样做的部分原因是要使用PowerShell环境的优势, 而不必担心例如转义字符 我有一些不寻常的限制,希望find一个优雅的解决scheme。 我怀疑这个问题可能是这个品种的诱饵反应:“你为什么不尝试解决这个不同的问题呢?” 只要说这些是我的约束,对此感到遗憾。 有任何想法吗? 是否有巧妙的注释和转义字符的组合,使我能够实现这一点? 关于如何实现这个的一些想法: 行尾的一个克拉^是一个延续 – 就像Visual Basic中的下划线一样 和号&通常用于分隔命令echo Hello & echo World在单独的行中产生两个回波 %0会给你正在运行的脚本 所以这样的事情(如果我能做到的话)会很好: # & call powershell -psconsolefile %0 # & goto :EOF /* From here on in we're running nice juicy powershell code */ Write-Output "Hello World" 除… […]