Articles of PowerShell的

如何在Windows 8.1 Update 2操作系统中使用PowerShell环境中的Win32 API FindWindow()来查找桌面窗口(通过窗口名称)?

我不记得在较老的Windows操作系统中find一个窗口有任何问题,但是,我没有在Windows 8.1 Update 2操作系统中使用PowerShell v4.0获得成功 。 这是我使用的PowerShell v4.0代码(非常简单): $sig=@' [DllImport("user32.dll")] public static extern IntPtr FindWindow(String sClassName, String sAppName); '@ $fw = Add-Type -Namespace Win32 -Name Funcs -MemberDefinition $sig -PassThru $wname='Form1' # any existing window name $fw::FindWindow($null -as [String], $wname) # returns 0, always! 最后一个命令总是返回0 。 将DllImport属性更改为 [DllImport("user32.dll", CharSet = CharSet.Unicode)] 不改变任何东西; 0以相同的方式返回。 有趣的是, C#中的等效代码返回正确的HWND值。 有谁知道什么是错的(以及如何解决)上面的PowerShell […]

为什么“Set-Item”不能在Windows 7 PowerShell上运行?

我正在尝试在我的Raspberry Pi 2上安装Windows 10 IoT。PowerShell文档告诉我要放入: Set-Item WSMan:\localhost\Client\TrustedHosts -Value <minwinpc> 但是,当我把它放到我的Windows 7 PowerShell中, 这出来了: At line:1 char:54 + Set-Item WSMan:\localhost\Client\TrustedHosts -Value <minwinpc> + ~ The '<' operator is reserved for future use. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : RedirectionNotSupported 我该如何解决?

在任务计划程序中运行PowerShell

我正在使用PowerShell从电子邮件下载数据。 我想通过PowerShell运行这个过程。 当我像这样运行脚本: D:\script.ps1 在powershell.exe它工作正常。 当我安排在任务计划程序中没有任何反应。 我试过把它设置为程序/脚本: powershell Powershell.exe powershell.exe 添加参数: -executionpolicy bypass -file D:\script.ps1 -file D:\script.ps1 -file "D:\script.ps1" 没有任何工作。 我正在使用Windows 2008 R2。

Powershell脚本卡住了,从batch file调用时不会退出

我有一个PowerShell脚本连接到一个网站,并parsing其返回的数据(这是关于导入一个以前上传的SQL文件到网站的数据库)。 PowerShell脚本使用wget ,稍后我可能会用本机函数replace。 导入过程被embedded到由第三方程序scriptFTP执行的脚本中。 当我从一个单一的.bat文件调用它时,脚本运行良好,如下所示: powershell "& "C:\data\etc\run_import_script.ps1" exit %ERRORLEVEL% 但是,当我从较大的ScriptFTP上下文中调用该.bat文件时,会发生以下情况: PowerShell脚本被执行 。 我证实了这一点,每次远程导入脚本被调用时,我都会给自己发一封电子邮件。 PowerShell似乎没有退出,脚本执行卡住了 。 我仍然可以用Ctrl + C取消整个事情,但是下面的命令永远不会被执行。 当我将batch file更改为以下内容时: start powershell "& "C:\data\etc\run_import_script.ps1" exit %ERRORLEVEL% 它工作 ,在新的控制台中运行PowerShell脚本,但我不能抓住PowerShell返回的错误级别。 我试图直接从ScriptFTP调用PowerShell,绕过batch file,但结果相同:它只是卡住了。 我没有PowerShell脚本使用Write-Output或Write-Host任何输出不显示。 所有程序在同一个用户下运行,我。 有没有人有什么想法做什么?

在PowerShell中如何将文件从远程PSsession复制到另一个Windows服务器

我试图将一个文件夹从一个远程服务器复制到另一个PSSession内,这就给了访问被拒绝的错误。 我有两个服务器的pipe理员权限。 如果我尝试它没有PSSession它的作品。 在远程服务器A. PS C:\Users\Automation\Documents> [System.Net.Dns]::GetHostName() sql PS C:\Users\Automation\Documents> Copy-Item -Path .\abc.csv -Destination "\\jump\c$" PS C:\Users\Automation\Documents> 在远程服务器B. PS C:\Users\Automation\Documents\sample\SQL Final Scripts> Copy-Item -Path ".\SQL_queries.csv" -Destination "\\sql\c$\" PS C:\Users\Automation\Documents\sample\SQL Final Scripts> Enter-PSSession -ComputerName sql -Credential "automation@lab" [sql]: PS C:\Users\Automation\Documents> Copy-Item -Path ".\SQL_queries.csv" -Destination "\\jump\c$\" Copy-Item : Access to the path '\\jump\c$\' is denied. + CategoryInfo […]

将IIS AppPool \ ASP.NET v4.0添加到本地Windows组

我正在尝试使用PowerShell脚本将用户IIS AppPool \ ASP.NET v4.0添加到性能监视器用户组,以便能够使用ASP.NET应用程序中的自定义性能计数器。 但是,我不知道如何解决使用ADSI自动创build的ASP.NET用户。 这适用于我: $computer = $env:COMPUTERNAME; $user = [ADSI]"WinNT://$computer/Administrator,user" $groupToAddTo = "TestGroup" $parent = [ADSI]"WinNT://$computer/$groupToAddTo,group" $parent.Add($user.Path) 但是,我无法弄清楚如何findASP.NET v4.0用户: $computer = $env:COMPUTERNAME; # $user = [ADSI]"WinNT://$computer/IIS AppPool/ASP.NET v4.0,user" # <– Doesn't work $groupToAddTo = "TestGroup" $parent = [ADSI]"WinNT://$computer/$groupToAddTo,group" $parent.Add($user.Path) 有关如何使用ADSI解决该用户的任何线索? 或者,使用Powershell或其他命令行工具来实现我想要的任何其他出色的方法? GUI工作正常,但是,自动化是这里的关键。

Powershell在windows和unix中正确生成文件path

我想为PowerShell脚本中的文件path生成一个string。 我希望这在Windows和Mac都可以工作。 目前代码被硬编码到窗口中,如path(“\” – > windows,“/” – > unix): $templatep="$CoreRoot\templates\$serviceName" 我改变了这个: $templatep= Join-Path $CoreRoot "templates" $serviceName它在与Powershell 6.0的mac中工作。 但它不能在我的Windows服务器与Powershell 4.我必须做这样的事情: $templatep= Join-Path $CoreRoot -ChildPath "templates" | Join-Path -ChildPath $serviceName 任何想法,为什么这只是在我的Mac? 这是在PowerShell 5或6的新function? 我不喜欢pipe道多个joinpath。 有一个更好的方法吗? 谢谢!

通过PowerShell加载types库并编写Windows Live Writer脚本

一般来说,我对COM和Windows编程/脚本非常陌生。 我正在做的是脚本Windows Live Writer; 根据文件之前,我可以打电话 $o = New-Object -c WindowsLiveWriter.Application 我需要首先加载TLB,所以我应该调用add-type命令,不幸的是它失败了: PS C:\Users\NoWhereMan> add-type windowslivewriter.application Add-Type : c:\Users\NoWhereMan\AppData\Local\Temp\a7ifbimo.0.cs(1) : A namespace does not directly contain members such as fields or methods c:\Users\NoWhereMan\AppData\Local\Temp\a7ifbimo.0.cs(1) : >>> windowslivewriter.application At line:1 char:9 + add-type <<<< windowslivewriter.application + CategoryInfo : InvalidData: (c:\Users\NoWher…elds or methods:CompilerError) [Add-Type], Exception + FullyQualifiedErrorId : SOURCE_CODE_ERROR,Microsoft.PowerShell.Commands.AddTypeCommand […]

使用PowerShell获取图像的调色板

我正在尝试获取图像的Color Palette 。 我尝试了各种方法,现在我在PowerShell使用下面的代码,但是我无法得到正确的结果: $filename = "C:\Users\schoo\Desktop\bb.jpg" $BitMap = [System.Drawing.Bitmap]::FromFile((Get-Item $filename).fullname) Foreach($y in (1..($BitMap.Height-1))){ Foreach($x in (1..($BitMap.Width-1))){ $Pixel = $BitMap.GetPixel($X,$Y) $BackGround = $Pixel.Name } $R = $Pixel | select -ExpandProperty R $G = $Pixel | select -ExpandProperty G $B = $Pixel | select -ExpandProperty B $A = $Pixel | select -ExpandProperty A $allClr = "$R" […]

Powershell:捕获标准和过程对象的错误

我想从powershell启动一个Java程序,并获得打印在控制台上的结果。 我遵循这个问题的说明: 捕获标准输出和错误与启动过程 但对我来说,这不像我所期望的那样。 我做错了什么? 这是脚本: $psi = New-object System.Diagnostics.ProcessStartInfo $psi.CreateNoWindow = $true $psi.UseShellExecute = $false $psi.RedirectStandardOutput = $true $psi.RedirectStandardError = $true $psi.FileName = 'java.exe' $psi.Arguments = @("-jar","tools\compiler.jar","–compilation_level", "ADVANCED_OPTIMIZATIONS", "–js", $BuildFile, "–js_output_file", $BuildMinFile) $process = New-Object System.Diagnostics.Process $process.StartInfo = $psi $process.Start() | Out-Null $process.WaitForExit() $output = $process.StandardOutput.ReadToEnd() $output $ outputvariables总是空的(当然没有任何东西被打印在控制台上)。