Articles of PowerShell的

在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 \ […]

如何更改环境variablespowershell并启动应用程序

在PowerShell中,我需要更改系统pathvariables: $oldPath = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') [System.Environment]::SetEnvironmentVariable('Path', (Transform-It $oldPath), 'Machine') 然后启动一个程序: & $someExeName 'someargument' 我得到的问题是可执行文件正在使用旧的环境。 它不承认新的道路。 如果我还更改$ env.path,只更改此PowerShell会话的path,它也不会传播到新的进程。 如果我closuresPowerShell并在新窗口中启动可执行文件,那就没问题了。 推测它是从PowerShell进程inheritance(未更新)的环境 在PowerShell中更改环境variables并使其从该窗口启动的新进程识别的最佳做法是什么?

PowerShell 2.0命令行redirect

我正在寻找关于以下差异的解释: 鉴于下面的PowerShell脚本foo.ps1 : write-host "normal" write-error "error" write-host "yay" 运行它 C:\>powershell .\foo.ps1 > out.txt 2>&1 生产: normal C:\foo.ps1 : error At line:1 char:10 + .\foo.ps1 <<<< + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,foo.ps1 Write-Host : The OS handle's position is not what FileStream expected. Do not use a handle simultaneously in […]

System.Net.WebClient的powershell字符编码

我正在运行以下命令: ([xml](new-object net.webclient).DownloadString( "http://blogs.msdn.com/powershell/rss.aspx" )).rss.channel.item | format-table title,link 其中一个RSS项目的输出包含这个奇怪的文本: You Don’t Have to Be An Administrator to Run Remote PowerShell Commands 所以,问题是: 为什么混合在字符? 撇号发生了什么事? 为什么输出呈现为Don’t应该渲染为Don't ? 我将如何在PowerShell标准输出中获得正确的字符?