小编Ste*_*ski的帖子

26
推荐指数
2
解决办法
2万
查看次数

CruiseControl.NET是否在IIS 7.0上运行?

我是新来的开发(通过贸易管理员),我建立我的开发环境,我想建立一个CruiseControl.Net服务器Server 2008上快速谷歌没来任何指令得到它运行在IIS 7.0上,所以我想知道是否有人有这方面的设置经验.

cruisecontrol.net iis-7

8
推荐指数
2
解决办法
3683
查看次数

PowerShell Remoting序列化和反序列化

是否提供了从PowerShell序列化和反序列化对象的例程(由PowerShell Remoting执行)?

我想避免将对象写入磁盘(使用Export-CliXML)并使用(Import-CliXML)将其读回.

基本上,我想获得反序列化创建的属性包,以便我可以将它们添加到AppFabric对象缓存中.否则,AppFabric会尝试使用.NET序列化,这对于许多标准对象类型都会失败.

也许通过$ host或$ executioncontext变量?

powershell serialization

6
推荐指数
1
解决办法
4507
查看次数

在Powershell中替换转义字符

我有一个由...组成的字符串

"some text \\computername.example.com\admin$".
Run Code Online (Sandbox Code Playgroud)

我怎么做替换所以我的最终结果只是"computername"

我的问题似乎不知道如何逃避两个反斜杠.为了简单起见,我宁愿不使用正则表达式:)

编辑:实际上看起来像stackoverflow也有双反斜杠的问题,它应该是一个双反斜杠,而不是单一的反斜杠

regex powershell

4
推荐指数
1
解决办法
1万
查看次数

在以编程方式创建参数块时无法生成ParameterSetMetadata

我正在尝试以编程方式为函数创建一个参数块(沿着这篇博文的内容).

我开始使用CommandMetadata对象(来自现有函数).我可以创建ParameterMetadata对象并设置类似ParameterType,名称以及一些属性的内容.

我遇到的问题是,当我使用ProxyCommand类GetParamBlock方法时,我没有生成我在ParameterMetadata的Attributes集合中设置的任何属性.

这导致的问题是,当调用GetParamBlock时,新参数不会使用适当的Parameter属性进行注释.

例:

function test 
{
    [CmdletBinding()]
    param (
    [Parameter()]
    $InitialParameter)

    Write-Host "I don't matter."
}

$MetaData = New-Object System.Management.Automation.CommandMetaData (get-command test)

$NewParameter = New-Object System.Management.Automation.ParameterMetadata 'NewParameter'

$NewParameter.ParameterType = [string[]]

$Attribute = New-Object System.Management.Automation.ParameterAttribute 
$Attribute.Position = 1
$Attribute.Mandatory = $true
$Attribute.ValueFromPipeline = $true

$NewParameter.Attributes.Add($Attribute)
$MetaData.Parameters.Add('NewParameter', $NewParameter)


[System.Management.Automation.ProxyCommand]::GetParamBlock($MetaData) 
Run Code Online (Sandbox Code Playgroud)

powershell metaprogramming powershell-2.0

2
推荐指数
1
解决办法
1740
查看次数

对于已编译的cmdlet和高级函数,scriptblock参数评估是否不同?

在试验scriptblocks时,我试图使用带有高级函数的scriptblock参数,并注意到它的执行方式与提供给编译的cmdlet时的执行方式不同.

在审查这个博客帖子从PowerShell团队博客,看来,如果一个脚本块是不是该参数的有效输入PowerShell引擎应评估脚本块.似乎在使用scriptblock参数调用函数时,它会尝试直接将scriptblock转换为参数类型,而不是根据管道中的当前对象来评估scriptblock.

我的意图是复制行为,如:

Import-CSV somecsv.csv | get-wmiobject -class {$_.class} -Computer {$_.computer}
Run Code Online (Sandbox Code Playgroud)

用于高级功能.

示例脚本:

$sb = {throw "If there was an error, the scriptblock was evaluated!"}

function test ()
{
  param (
    [Parameter()]
    [string]
    $ThisShouldBeEvaluatedForEachItem,
    [Parameter(ValueFromPipelineByPropertyName = $true)]
    [string]
    $FullName
 )  

 process 
 {  
  write-host $Fullname, $ThisShouldBeEvaluatedForEachItem
 }
} 
Get-ChildItem | test -ThisShouldBeEvaluatedForEachItem $sb
Run Code Online (Sandbox Code Playgroud)

这是预期的行为,还是我朝错误的方向前进?

基于Keith的响应,我将ValueFromPipeline和ValueFromPipelineByPropertyName(在两个单独的测试中)添加到ThisShouldBeEvaluatedForEachItem参数的Parameter属性中.这样做会使示例工作,尽管它似乎从团队博客帖子中击败了scriptblock参数的既定目的.

powershell powershell-2.0

2
推荐指数
1
解决办法
1679
查看次数