Articles of PowerShell的

使用Powershell的Invoke-Command来调用带有参数的batch file

我想使用Powershell来调用远程机器上的batch file。 这个batch file有参数。 以下是我到目前为止: $script = "\\fileshare\script.cmd" $server = $args[0] $args [string]::join(',',$args[1 .. ($args.count-1)]) Invoke-Command -computername $server {$script + ' ' + $args} 经过一番search,我发现Invoke-Command函数在一个全新的过程中运行它的脚本块,所以你不能把variables放在里面(它们不会被扩展)。 这就是-ArgumentList标签的用途。 所以我试着这个,而不是… Invoke-Command -computername $server {\\fileshare\script.cmd} -ArgumentList "FirstArgument" 这也没有工作…我的批处理脚本告诉我,它没有被传递任何参数。 我找不到任何明确说明的东西,但它看起来像-ArgumentList参数只适用于Powershell脚本(它不会将它们馈送到批处理脚本)。 任何想法如何使用Invoke-Command调用带有参数的batch file?

Windows Powershell SDK和System.Management.Automation.PSObject

我在一个Windows Server(2008,我猜)SP 2 64位操作系统上的Visual Studio 2008中编译的ac sharp程序中有一个编译错误。 它说“System.Management.Automation.PSObject”是在未引用的程序集中定义的。 我在MSDN中进行了一些search,发现这似乎是Windows Power Shell SDK的一部分。 http://msdn.microsoft.com/en-us/library/system.management.automation.psobject(VS.85).aspx 问题是我已经有了Windows Powershell。 如果这是我所需要的,我该如何使用它或在C Sharp IDE中引用它。 如果我需要下载一些额外的东西(比如SDK),我该在哪里去做这个并安装它? 我在网上找不到任何东西。

用Powershell计算文件夹

有谁知道一个PowerShell 2.0命令/脚本来计算特定文件夹中的所有文件夹和子文件夹(recursion;没有文件)(例如在C:\ folder1 \ folder2中的所有子文件夹的数量)? 另外我还需要所有“叶子” – 文件夹的数量。 换句话说,我只想计算没有子文件夹的文件夹。

将parameter passing给PowerShell脚本

我试图从运行对话框(将用作一个计划的任务)运行一个PowerShell脚本,并有麻烦传递参数。 该脚本将包含两个名为title和msg的参数。 该脚本位于: D:\Tasks Scripts\Powershell\script.ps1 这就是我想要做的: powershell.exe -noexit 'D:\Tasks Scripts\Powershell\script.ps1' -title 'Hello world' -msg 'This is a test message' 但是读取参数失败。 运行.\script.ps1 -title 'Hello world' -msg 'This is a test message'在PowerShell工作正常。

从命令行(CMD)编辑Windows组策略

我想添加一些组策略,我需要通过batch file添加如何编辑窗口组策略从Windows命令行?

Powershell:捕获程序stdout和stderr来分离variables

在一次运行中,是否可以将外部程序的stdoutredirect到外部程序的variables和stderr? 例如: $global:ERRORS = @(); $global:PROGERR = @(); function test(){ # Can we redirect errors to $PROGERR here, leaving stdout for $OUTPUT? $OUTPUT = (& myprogram.exe 'argv[0]', 'argv[1]'); if ( $OUTPUT | select-string -Pattern "foo" ) { # do stuff } else { $global:ERRORS += "test(): oh noes! 'foo' missing!"; } } test; if ( […]

使用Powershell或命令行在Windows中创build压缩/压缩文件夹

我正在创build一个夜间数据库模式文件,并希望将每个晚上创build的所有文件(每个数据库一个文件)放入一个文件夹并压缩该文件夹。 我有一个PowerShell脚本来创build模式。只有数据库的创build脚本,然后将所有文件添加到一个新的文件夹。 问题在于这个过程的压缩部分。 有没有人有任何想法,如果这可以完成与预处理文件夹压缩的Windows实用工具? 如果可能,最好使用该工具,而不是像7zip(我不想在每个客户的服务器上安装7zip,如果我问他们可能需要花费IT时间)。

从Windows cmd中检索文件属性

因为node.js没有提供在窗口上检索和修改文件属性的方法,所以我需要执行一个subprocess。 我想获得所有的文件属性,即: 尺寸 档案 隐 只读 系统 创build/修改/访问时间 文件?/目录?/符号链接? (结) 如果我要执行一个subprocess,我不想调用fs.stat,因为它是一个额外的I / O访问(并且Stats不提供太多的窗口信息)。 如果我执行一个subprocess,我想一次检索所有的数据。 所以,我写了一个PowerShell脚本: var cmd = "powershell -Command \"$item=get-item a -force;[bool]($item.attributes -band [io.fileattributes]::directory);[bool]($item.attributes -band [io.fileattributes]::archive);[bool]($item.attributes -band [io.fileattributes]::reparsepoint);[bool]($item.attributes -band [io.fileattributes]::hidden);[bool]($item.attributes -band [io.fileattributes]::readonly);[bool]($item.attributes -band [io.fileattributes]::system);$item.length;$tmp=$item.creationtime;$tmp.year;$tmp.month;$tmp.day;$tmp.hour;$tmp.minute;$tmp.second;$tmp.millisecond;$tmp=$item.lastaccesstime;$tmp.year;$tmp.month;$tmp.day;$tmp.hour;$tmp.minute;$tmp.second;$tmp.millisecond;$tmp=$item.lastwritetime;$tmp.year;$tmp.month;$tmp.day;$tmp.hour;$tmp.minute;$tmp.second;$tmp.millisecond;$s\""; 这将返回:(一次在javascript: split("\r\n") ) [ 'False', //directory? 'True', //archive? 'False', //symlink? 'False', //hidden 'False', //readonly? 'False', //system? '3', //length (if directory, […]

PowerShell中的echo和Write-Host有什么区别?

我对PowerShell中的echo和Write-Host之间的区别感到困惑。 我有两个文件, POC.ps1和validatePath.ps1 。 这些文件在我的本地机器上,我正在使用Invoke-Command在远程机器上运行它们。 我正在使用PowerShell v3.0。 要执行这两个脚本,我使用下面的命令: .\POC.ps1 -filename C:\Users -user Blaine 这是两个文件: POC.ps1: param($filename, $user) echo $filename echo "This" echo $user $responseObject = Invoke-Command testcomputer -FilePath .\validatePath.ps1 -ArgumentList($filename, $user) -AsJob while($responseObject.State -ne "Completed") { } $result = Receive-Job -Id $responseObject.Id -Keep echo $result 这里是奇怪的地方… validatePath.ps1: Param([string] $filename, [string] $user) function ValidatePath( $filename, $user, […]

从计算机名称列表中获取login用户

我想提取login到远程PC的用户列表,ps名称将使用.csv文件提供。 我能够得到一个命令 Get-WmiObject Win32_LoggedOnUser -ComputerName $Computer | Select Antecedent -Unique 要查询用户名,任何人可以帮助我更多的如何写这个代码?