Articles of PowerShell的

Robocopy:复制保存文件夹结构但添加子文件夹的文件

我需要将包含子文件夹的文件夹复制到另一台机器上的共享文件夹中。 在此期间,脚本应在每个目标文件夹中创build一个自定义子文件夹,并将文件放置在那里 我希望这个例子说明了这个任务: 对于以下源文件夹: –Logs —-Application ——Service ——–Log1.txt ——–Log2.txt ——WebSite ——–Log1.txt ——–Log2.txt 目标文件夹应按以下方式创build: –Logs —-Application ——Service ——–Machine1 ———-Log1.txt ———-Log2.txt ——WebSite ——–Machine1 ———-Log1.txt ———-Log2.txt 正如你在最底层所看到的,子文件夹Machine1已经被创build了。 你能提供一个PowerShell脚本的例子吗? 我在ROBOCOPY命令中调查了input参数。 看来它不允许这样做直截了当。 另外我知道,我可以symply遍历所有文件夹结构,创build所需的子文件夹,并将文件复制到每个子文件夹。 但是这似乎太“长”了。 所以我想知道如果我错过了什么。 也许有一个更好的方法来做到这一点。

无法在Powershell中运行R.exe

我经常发现在命令行(Windows)上运行R更有用。 但是,当我在Powershell中尝试它时,我倾向于遇到问题,但是这很容易通过首先运行cmd克服,然后工作。 这是我做R CMD BATCH时得到的错误 Invoke-History: A positional parameter cannot be found that accepts the argument 'BATCH' 后来我意识到r是一个别名,它返回了直接的过去命令,因此我无法运行R. 随后,我发现使用完整的文件R.exe可执行文件(即R.exe )或使用Rcmd.exe(即Rcmd BATCH … )工作。 但是,我只是好奇,是否有一个工作,以防一个类似的冲突?

自动执行远程桌面连接

我们在开发环境中使用了许多远程桌面,并且在多个环境中部署了许多服务器。 记住他们的IP,用户名和密码非常繁琐。 我想写一个带有button的小工具。 点击后,我想启动这些远程桌面,自动从某个列表中获取用户名和密码。 我知道有一个相当于MS远程桌面的命令行: mstsc 。 这个线程build议这样做,如下所示: cmdkey /generic:TERMSRV/"computername or IP" /user:"username" /pass:"password" mstsc /v:"computer name or IP" 我跑第一线,它说成功添加凭据。 然后,当我运行第二行时,它只是运行指定的IP的远程桌面连接,并要求input用户名和密码。 我希望通过自动应用cmdkey指定的凭证,在指定的IP上打开远程连接的桌面。 这里有什么问题? 是否有可能使用这样的Powershell脚本? 我可以通过HTML页面调用这个脚本吗(因为还有很多其他的资源可以放到网页上,这样我们的开发人员就可以把它作为一个单独的链接,这样我们不会浪费时间和精力去find它们想要它们。是否可以通过注册应用程序到URIscheme ?) 有没有其他的(标准)方法?

在Windows服务器数据中心没有findWebAdministration的PowerShell模块

在Windows Server 2008 Datacenter中,找不到PowerShell webadministration模块。 我试过Get-PSSnapin和Get-Module -ListAvailable ,它们都没有显示Get-Module -ListAvailable 而我没有看到目录%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules下的webadministration %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules ! 我是否需要安装或启用某些东西才能在Datacenter上进行Webpipe理?

如何在PowerShell中批量重命名文件?

我正在尝试执行以下操作: Rename-Item c:\misc\*.xml *.tmp 我基本上想要将目录中每个文件的扩展名改为.tmp而不是.xml 。 我似乎无法find一个简单的方法来在PowerShell中做到这一点。

检测IPv6是否在Windows机器上启用

我写了一个PowerShell脚本,将作为我们的服务器构build一致性testing。 我需要做的事情之一是检测IPv6networking是否被禁用。 WMI表示此信息可以在Win32_NetworkAdapterConfiguration的IPAddress属性中find,但可以是IPv6或IPv4。 这不是给我一个我希望find的“是/否”的答案。 其他的注意事项是,我不希望通过直接访问registry来刮擦细节,也不会从ipconfig等命令的输出中刮擦。 鉴于我们的环境混合了2003/2008年的机器,任何人都可以想办法testingIPv6吗? 干杯

string比较不能在PowerShell函数中工作 – 我做错了什么?

我试图做一个别名的git commit也将日志logging到一个单独的文本文件。 但是,如果git commit返回"nothing to commit (working directory clean)" ,它不应该logging任何东西到单独的文件。 这是我的代码。 git commit别名的作品; 输出到文件的作品。 但是,无论从git commit返回什么,它都会logging消息。 function git-commit-and-log($msg) { $q = git commit -a -m $msg $q if ($q –notcontains "nothing to commit") { $msg | Out-File w:\log.txt -Append } } Set-Alias -Name gcomm -Value git-commit-and-log 我正在使用PowerShell 3。

使用PowerShell Invoke-Command和Process让stdout显示在控制台上

我有一个使用Invoke-Command的Powershell脚本。 以下是正在调用的代码: $scriptblock = { $process = New-Object system.Diagnostics.Process $si = New-Object System.Diagnostics.ProcessStartInfo $si.FileName = $cmd $si.Arguments = $cmd_args $si.UseShellExecute = false $si.RedirectStandardOutput = true $process.StartInfo = $si $process.Start() $processId = $process.Id $process.WaitForExit() } Invoke-Command -ScriptBlock $scriptblock 当脚本从PowerShell窗口运行时,问题与获取进程的标准输出显示给PowerShell控制台有关。 现在,我确信可执行文件$ cmd发出到标准输出,当我运行与cmd.exe的可执行文件,它显示输出到该控制台。 当我从NodeJS脚本调用这个Powershell脚本时,我也能够成功地redirect输出: var exec = require('child_process').exec, var cmd = 'powershell -ExecutionPolicy Bypass "' + launch_cmd + […]

使用Powershell远程编辑registry项

是否有可能使用Powershell脚本远程编辑registry项? 如果是,怎么样? 我有一个7台服务器的列表,我必须禁用Windows更新设置。 我编写了下面的脚本,但只能用localy: $regkey = "HKLM:\SOFTWARE\microsoft\……\auto update" set-itemproperty -path $regkey -name AUOptions -value 1 set-itemproperty -path $regkey -name ElevateNonAdmins -value 0 set-itemproperty -path $regkey -name IncludeRecommendedUpdates -value 0 任何build议? 谢谢!

如何在名称中使用正斜杠创buildregistry项

我需要创build以下registry项HKLM:\software\bmc software\control-m/agent但由于在“代理程序”之前的正斜杠, 我没有问题创build一个没有正斜杠的条目例如: PS C:\powershell> new-item -path 'HKLM:\software\bmc software\control-mXXXagent' 但用正斜杠创build失败。 PS C:\powershell> new-item -path 'HKLM:\software\bmc software\control-m/agent' New-Item:指定path的registry项不存在。 在行:1 char:10 + new-item <<<< -path'HKLM:\ software \ bmc software \ control-m / agent'+ CategoryInfo:InvalidArgument:(HKEY_LOCAL_MACHINE; tware \ control-m:String) [New-Item],ArgumentExceptio n + FullyQualifiedErrorId:System.ArgumentException,Microsoft.PowerShell.Commands.NewItemCommand 而使用PowerShell的“转义字符”也无济于事。 PS C:\powershell> new-item -path 'HKLM:\software\bmc software\control-m`/agent' New-Item:指定path的registry项不存在。 在行:1 char:10 + new-item <<<< -path'HKLM:\ software \ […]