小编Pao*_*sco的帖子

在grep之后得到一条线的一部分

我的unix服务器上有一个巨大的文件,我需要从中提取某些部分

这条线的格式是

aNumber timestamp commandInformation
Run Code Online (Sandbox Code Playgroud)

我用这个命令

grep LATENCY file.log | grep CMDTYPE=NEW
Run Code Online (Sandbox Code Playgroud)

过滤掉我想要的某些行.我只希望返回部分时间戳和行中的最后9个字符,而不是整行.我怎样才能做到这一点?

unix grep file

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

将枚举值传递给PowerShell中的函数

我有一个函数接受枚举值作为参数.举个例子,考虑如下:

(PS) > function IsItFriday([System.DayOfWeek] $dayOfWeek) { 
    if($dayOfWeek -eq [System.DayOfWeek]::Friday) {
        "yes"
    } else {
        "no"
    } 
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我像这样调用它,一切都很好:

(PS) > $m = [System.DayOfWeek]::Monday
(PS) > IsItFriday $m
no
Run Code Online (Sandbox Code Playgroud)

但是,如果我调用函数直接传递枚举值,我会得到一个相当神秘的错误:

(PS) > IsItFriday [System.DayOfWeek]::Monday
IsItFriday : Cannot convert value "[System.DayOfWeek]::Monday" to type "System.DayOfWeek" 
due to invalid enumeration values. Specify one of the following enumeration values and 
try again. The possible enumeration values are "Sunday, Monday, Tuesday, Wednesday, 
Thursday, Friday, Saturday".
At line:1 char:11
+ IsItFriday  <<<< [System.DayOfWeek]::Monday
Run Code Online (Sandbox Code Playgroud)

将变量初始化为枚举值并直接传递枚举值有什么区别?

powershell enums

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

配置在Visual Studio中触发intellisense完成的键

我希望Visual Studio只在我点击tab时自动填充intellisense菜单中的当前条目.

例如,当我按下句号时,自动完成被触发,迫使我每次写一些尚未自动完成的东西时都会逃脱,以避免我输入的内容被随机条目替换.

有配置可选吗?

我正在使用Visual Studio 2015,并使用C#编程.

自动完成示例

示例:这里我正在键入Log,这是一个我还没有添加适当using语句的类.没有一个建议是好的.如果我.现在点击,自动完成功能将写入EventLogProcessor,这不是我想要的.

请注意,此问题与VIM无关,这与顶部链接的问题不重复.

c# intellisense visual-studio

11
推荐指数
1
解决办法
4049
查看次数

奇怪的重复模板模式和泛型约束(C#)

我想在基类泛型类中创建一个方法来返回派生对象的专用集合并对它们执行一些操作,如下例所示:

using System;
using System.Collections.Generic;

namespace test {

    class Base<T> {

        public static List<T> DoSomething() {
            List<T> objects = new List<T>();
            // fill the list somehow...
            foreach (T t in objects) {
                if (t.DoSomeTest()) { // error !!!
                    // ...
                }
            }
            return objects;
        }

        public virtual bool DoSomeTest() {
            return true;
        }

    }

    class Derived : Base<Derived> {
        public override bool DoSomeTest() {
            // return a random bool value
            return (0 == new Random().Next() % 2);
        }
    }

    class …
Run Code Online (Sandbox Code Playgroud)

c# generics constraints

10
推荐指数
2
解决办法
4354
查看次数

模仿和NetworkCredential

我需要将NetworkCredential具有当前模拟用户凭据的对象从asp.net应用程序传递给Web服务.
我的代码看起来像这样:

WindowsIdentity windowsIdentity = HttpContext.Current.User.Identity as WindowsIdentity;
WindowsImpersonationContext context = windowsIdentity.Impersonate();
try {
    var client = GetClient();
    client.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
    Log("WindowsIdentity = {0}", windowsIdentity.Name);
    Log("DefaultNetworkCredentials = {0}", CredentialCache.DefaultNetworkCredentials.UserName);
    client.DoSomething();
} finally {
    context.Undo();
}
Run Code Online (Sandbox Code Playgroud)

我已经明白CredentialCache.DefaultNetworkCredentials应该提供当前模拟用户的凭据,但事实并非如此.
我得到的日志消息是

WindowsIdentity = TESTDOMAIN\TESTUSER
DefaultNetworkCredentials = 
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?如果是这样,您如何获得当前模拟用户的NetworkCredential对象?

c# asp.net impersonation web-services

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

PowerShell:抑制Write-Progress输出

我有一个PowerShell脚本调用CmdLet,后者使用Write-Progress报告其进度,我想隐藏进度条.
In是否可以抑制或重定向Write-Progress CmdLet的输出?

powershell redirect progress

8
推荐指数
1
解决办法
2125
查看次数

Format-List:按名称排序属性

是否可以按属性名称对Format-List cmdlet的输出进行排序?
假设我有一个带有两个属性"A"和"B"的对象$ x,当我用它运行Format-List时,我得到了

(PS) > $x | Format-List
B : value b
A : value a
Run Code Online (Sandbox Code Playgroud)

我想拥有

(PS) > $x | Format-List 
A : value a
B : value b
Run Code Online (Sandbox Code Playgroud)

注意:我应该从一开始就指定,与具有"A"和"B"属性的示例不同,我必须处理的真实对象具有相当多的属性,并且将来可以添加新的属性,所以我事先并不知道所有的房产名称.

sorting powershell

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

无法登录管理控制台:潜在的跨站点请求伪造(CSRF)攻击受阻

我正在尝试WSO2身份服务器.
我下载了5.4.0版本,并在我的Windows机器上启动了服务器wso2server.bat --run.
如果我尝试使用默认凭据(admin/admin)登录控制台,则会收到错误403 - Forbidden,并且控制台显示以下消息:

WARN {org.owasp.csrfguard.log.JavaLogger} - potential cross-site request forgery (CSRF) attack thwarted (user:<anonymous>, ip:0:0:0:0:0:0:0:1, method:POST, uri:/carbon/admin/login_action.jsp, error:required token is missing from the request)

在我试用控制台之前还有其他需要配置的东西吗?

wso2 wso2is

8
推荐指数
1
解决办法
4366
查看次数

以递归方式获取Active Directory组的成员,即包括子组

在Active Directory中给出这样的组:

MainGroup
  GroupA
    User1
    User2
  GroupB
    User3
  User4
Run Code Online (Sandbox Code Playgroud)

我可以轻松确定User3是否是MainGroup或其任何子组的成员,代码如下:

using System;
using System.DirectoryServices;

static class Program {
    static void Main() {
        DirectoryEntry user = new DirectoryEntry("LDAP://CN=User3,DC=X,DC=y");
        string filter = "(memberOf:1.2.840.113556.1.4.1941:=CN=MainGroup,DC=X,DC=y)";
        DirectorySearcher searcher = new DirectorySearcher(user, filter);
        searcher.SearchScope = SearchScope.Subtree;
        var r = searcher.FindOne();
        bool isMember = (r != null);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有类似的方法来获取作为组或其任何子组成员的所有用户,即在MainGroup的示例中获取User1,User2,User3和User4.

获取所有用户的显而易见的方法是递归查询每个子组,但我想知道是否有更简单的方法.

使用与memberOf:1.2.840.113556.1.4.1941:过滤器相同的方法,但使用域根而不是用户作为搜索库是不可行的,因为查询花费的时间太长(可能它会为域中的所有用户递归计算所有组成员资格并检查它们是否存在是特定组的成员).

获取组中所有成员(包括其子组)的最佳方法是什么?

c# active-directory active-directory-group

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

Active Directory:PropertiesToLoad获取所有属性

我尝试从Active Directory中的对象获取所有属性的列表.

我现在拥有的是:

List<User> users = new List<User>();
try
{
    DirectoryEntry root = new DirectoryEntry("LDAP://RootDSE");
    root = new DirectoryEntry("LDAP://" + root.Properties["defaultNamingContext"][0]);
    DirectorySearcher search = new DirectorySearcher(root);
    search.Filter = "(&(objectClass=user)(objectCategory=person))";

    search.PropertiesToLoad.Add("samaccountname");
    search.PropertiesToLoad.Add("displayname");
    search.PropertiesToLoad.Add("mail");
    search.PropertiesToLoad.Add("telephoneNumber");
    search.PropertiesToLoad.Add("department");
    search.PropertiesToLoad.Add("title");

    SearchResultCollection results = search.FindAll();
    if (results != null)
    {
        foreach (SearchResult result in results)
        {
            foreach (DictionaryEntry property in result.Properties)
            {
                Debug.Write(property.Key + ": ");
                foreach (var val in (property.Value as ResultPropertyValueCollection)) { 
                    Debug.Write(val +"; ");
                }
                Debug.WriteLine("");
            }
        }
    }
}
catch (Exception ex) …
Run Code Online (Sandbox Code Playgroud)

c# active-directory

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