小编Tre*_*van的帖子

获取定义PowerShell函数的文件的路径

我试图找到一种方法来获取定义PowerShell 函数的文件路径(例如Test1或Test2),而不是调用者的路径,这可以通过$PSScriptRoot自动变量轻松获得.

考虑以下文件夹结构:

c:\Scripts\Test.ps1
c:\Scripts\Test1\Test1.ps1
c:\Scripts\Test2\Test2.ps1
Run Code Online (Sandbox Code Playgroud)

Test.ps1

Set-Location $PSScriptRoot;
. .\Test1\Test1.ps1;
. .\Test2\Test2.ps1;

Test1;
Test2;
Run Code Online (Sandbox Code Playgroud)

Test1.ps1

function Test1 {
    [CmdletBinding()]
    param (
    )
    Write-Host -Object "Entering Test1";
    Write-Host -Object "Exiting Test1";
}
Run Code Online (Sandbox Code Playgroud)

Test2.ps1

function Test2 {
    [CmdletBinding()]
    param (
    )
    Write-Host -Object "Test2";
    Write-Host -Object "Exiting Test2";
}
Run Code Online (Sandbox Code Playgroud)

我已经使用了各种关于性的尝试$PSCmdlet$MyInvocation自动变量,但似乎无法找到一个方法来获取到的路径定义函数,而不是通常是主叫所在的文件.

换句话说,当C:\Scripts\Test1\Test1.ps1Test1函数中调用时,我如何从函数内部获取路径Test.ps1?这同样适用于该Test2.ps1脚本,和Test2功能.我如何C:\Scripts\Test2\Test2.ps1Test2函数内部获取路径?

这是不可能的,因为我正在使用.呼叫运算符,将函数导入当前会话?

powershell powershell-3.0

6
推荐指数
2
解决办法
3410
查看次数

读取包含命名空间PowerShell的XML文件

全部,我试图RoleAzure Cloud Service Definitionxml文件或Azure Cloud Service Configurexml文件中读取信息.

但发现XPath对他们没有用.两个xml文件都包含名称空间.默认情况下,命名空间没有别名.如果我为它添加别名.Visual studio会提醒我不允许.

说你的定义如下.和XmlPath是/ServiceDefinition/WebRole/@vmsize.我在XPath在线工具中测试了它.它也无法为我找到合适的价值.

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="test" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WebRole name="test" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="HttpsEndpoint" />
          <Binding name="Endpoint2" endpointName="HttpEndpoint" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="HttpsEndpoint" protocol="https" port="443" certificate="Certificate1" />
      <InputEndpoint name="HttpEndpoint" protocol="http" port="80" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
    <Certificates>
      <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    <ConfigurationSettings>
      <Setting …
Run Code Online (Sandbox Code Playgroud)

xml powershell xpath azure

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

使用标头重定向到 OAuth URL

我正在尝试编写一个 Python 3.5 Flask 应用程序,将用户重定向到 OAuth URL,以进行身份​​验证/授权。作为该重定向的一部分,我必须包括Authorization标题。redirect()Flask 中的内置方法似乎不支持添加 HTTP 标头。

在这样的应用程序中处理这个问题的正确方法是什么?

python oauth flask python-3.x

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

检查用户是否是远程服务器上本地管理员组的成员

用户是AD安全组"Domain\Sql Admins"的成员,安全组"Domain\Sql Admins"是Windows Server上本地Administrators组的成员.

我尝试了以下PowerShell脚本:

 $u = "Username"; net localgroup administrators | Where {$_ -match $u}
Run Code Online (Sandbox Code Playgroud)

如果用户直接添加到管理员组,则此脚本将仅返回该用户.在找到我的用户之前,是否必须遍历管理组中的所有组?或者还有另一种方式吗?

powershell active-directory

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

应用PowerShell DSC配置时出错

我有一个简单的PowerShell DSC配置块,可确保用户帐户不存在,当我尝试将其应用到本地系统时Start-DscConfiguration,我收到类似于以下内容的错误消息:

WS-Management服务无法处理请求.WMI服务返回"拒绝访问"错误.

如何成功应用DSC配置?

这是我正在使用的配置块:

configuration MyConfig {
    User Trevor2 {
        UserName = 'Trevor2';
        Ensure = 'Absent';
    }
}

$Path = 'c:\dsc\MyConfig';
MyConfig -OutputPath $Path;

Start-DscConfiguration -Wait -Verbose -Path $Path;
# Clean up MOF files
Remove-Item -Path $Path -Recurse;
Run Code Online (Sandbox Code Playgroud)

powershell dsc

5
推荐指数
1
解决办法
2970
查看次数

获取表示本地系统内置帐户的PSCredential实例

在Windows 10 Build 10240上运行PowerShell版本5.0。我需要获取一个PSCredential包含LocalSystem上下文的实例。我该如何实现?

https://msdn.microsoft.com/zh-CN/library/windows/desktop/ms684190(v=vs.85).aspx

windows powershell

5
推荐指数
1
解决办法
1982
查看次数

为什么New-AzureReservedIP返回ResourceNotFound:未找到任何部署?

我有一个云服务,里面有两个虚拟机.我正在尝试按照本文中列出的步骤来保留我的云服务的IP地址.

Login-AzureRmAccount -TenantId <my tenant id>
Set-AzureRmContext -SubscriptionId <my subscription id>
New-AzureReservedIP -ReservedIPName myname -Location "Central US" -ServiceName mycloudservicename
Run Code Online (Sandbox Code Playgroud)

我总是得到这个错误:

New-AzureReservedIP:ResourceNotFound:未找到任何部署.

VM是在新门户中创建的,但是是经典模式.我不确定这是不是我的问题.我尝试过其他cmdlet组合来添加帐户或设置订阅但没有任何帮助.

有任何想法吗?

virtual-machine azure azure-cloud-services

5
推荐指数
1
解决办法
2486
查看次数

使用AWS PowerShell将标签添加到AWS EC2实例吗?

如何使用Amazon Web Services(AWS)PowerShell模块向EC2实例添加标签(键值对)?

powershell aws-powershell

5
推荐指数
2
解决办法
4164
查看次数

是否有与Python的doctest模块等效的PowerShell?

我刚刚遇到了doctestPython中的模块,它可以帮助您针对嵌入在Python文档字符串中的示例代码执行自动测试。最终,这有助于确保Python模块的文档与模块的实际行为之间的一致性。

PowerShell中具有等效功能,因此我可以在.EXAMPLEPowerShell内置帮助的各部分中测试示例?

这是我要尝试做的一个例子:

function MyFunction ($x, $y) {
    <#
    .EXAMPLE

    > MyFunction -x 2 -y 2
    4
    #>
    return $x + $y
}

MyFunction -x 2 -y 2
Run Code Online (Sandbox Code Playgroud)

powershell

5
推荐指数
1
解决办法
57
查看次数

我可以使用正则表达式通过 CTRL+R 反向搜索来搜索 PowerShell 命令历史记录吗?

我运行了一系列 PowerShell 命令,我想通过CTRL + R使用正则表达式的后退搜索功能搜索历史记录。要么它现在没有实施,要么我做错了什么。

想象一下,您的历史记录中有一条命令: ssh username@host.name

我想按下CTRL+R并键入ssh.*host以将此命令返回到我的 PowerShell 提示符。现在,这似乎不起作用。

问题:我可以使用正则表达式通过 CTRL+R 反向搜索来搜索 PowerShell 命令历史记录吗?

预期结果

反向搜索返回基于正则表达式的结果。

back-i-search: <expression>
Run Code Online (Sandbox Code Playgroud)

实际结果

向后搜索失败。

failed-bck-i-search: <expression>
Run Code Online (Sandbox Code Playgroud)

powershell

5
推荐指数
1
解决办法
42
查看次数