小编H20*_*der的帖子

在Windows服务中模拟用户

我试图在Windows服务中模拟域用户,并将该服务作为本地系统帐户登录.

到目前为止,我只能通过记录服务并使用用户凭据设置进程来实现此功能,如下所示.

        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = CommandDetails.Command;
        startInfo.WorkingDirectory = Settings.RoboCopyWorkingDirectory;
        startInfo.Arguments = commandLine;

        startInfo.UseShellExecute = false;
        startInfo.CreateNoWindow = true;
        startInfo.RedirectStandardError = true;
        startInfo.RedirectStandardOutput = true;

        // Credentials
        startInfo.Domain = ImperDomain;
        startInfo.UserName = ImperUsername;
        startInfo.Password = ImperPasswordSecure;

        process = Process.Start(startInfo);
Run Code Online (Sandbox Code Playgroud)

我的目标是不在域用户中使用服务日志,而是将域帐户密码重置为本地系统.

当我使用本地系统时,我得到Access被拒绝

任何想法如何实现这一目标?

StackTace

Access is denied

   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Ace.WindowsService.ProcessCmd.ProcessCommand.StartProcess(ProcessStartInfo startInfo) in 
Run Code Online (Sandbox Code Playgroud)

我已经尝试将代码包装在下面列出的Impersonate代码中但没有成功.

冒充代码

public class Impersonation2 : IDisposable
{
    private WindowsImpersonationContext _impersonatedUserContext;

    // Declare signatures for Win32 LogonUser and …
Run Code Online (Sandbox Code Playgroud)

c# windows impersonation windows-services c#-4.0

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

访问'/ SVN/[repo name] /!svn/me'禁止访问

我与一些SVN用户有一些问题,他们收到以下消息

访问'/ SVN/[repo name] /!svn/me'禁止访问

我有一些问题找出它的根本原因.

当前设置在Windows上使用Visual SVN.我们正在为用户使用SVN安全性,而不是AD.有些问题的用户是供应商(但不是全部),因此他们拥有与普通用户不同的权限.但奇怪的是,我使用Live会议影响了用户.他们尝试提交并获取上述消息.我从Tortoise SVN清除他们的凭据并使用我的,一切都很好.用户自己登录服务器并使用我的SVN用户信息.但它们与SVN用户和Windows用户之间没有联系.用户最初也能够提交新文件.我查看了SVN,我没有看到任何错误.有任何想法吗?无论如何要获得有关错误的更多信息.

svn tortoisesvn visualsvn

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

Power shell:Import-Module

我一直试图在win2008标准服务器上使用app fabric缓存.当我执行follwowing命令时,我得到:Import-Module DistributedCacheAdministration Import-Module:未加载指定的模块"DistributedCacheAdministration",因为在任何模块目录中找不到有效的模块文件.

该目录位于何处,如何使用该模块

此外,似乎我有PowerShell 1.我似乎无法安装PowerShell 2

c# powershell caching appfabric

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

获取SQL Server中的存储过程的文本

我试图将旧的存储过程保存为字符串.当我使用以下内容时,我没有得到任何换行符.

SELECT @OldProcedure = Object_definition(object_id)
FROM   sys.procedures
WHERE  name = @ProcedureName
Run Code Online (Sandbox Code Playgroud)

有关如何使用换行符获取存储过程文本的任何建议?

我在考虑使用 sp_helptext

谢谢

更新

我正在复制并粘贴结果中的结果,这将显示一行.

至于脚本,因为我将结果存储在db字段中.我正在创建一个可以动态生成过程的工具,但我想创建它们的历史记录.

更新

原来,Object_definition做了我想要的,但出于某种原因,当我从结果中复制它时,我得到了一行.

Declare @sql varchar(max) ;
SELECT @sql=Object_definition(object_id)
FROM   sys.procedures
WHERE  name = 'Test_QueryBuilder';

drop procedure Test_QueryBuilder
exec( @sql)
print @sql
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures

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

无法加载文件或程序集'XXX,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一

我一直在尝试调试此错误:

System.IO.FileNotFoundException:无法加载文件或程序集"ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.该系统找不到指定的文件.文件名:'ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'

我看到很多解决方案并尝试所有解决方案.

我正在查看Fusion Viewer,我收到以下消息:

日志:此绑定在默认加载上下文中启动.日志:使用应用程序配置文件:I:\ Projects\ACE Explorer\AceV_1Explorer\AceExplorer\AceExplorer\bin\Debug\AceExplorer.exe.config日志:使用主机配置文件:日志:使用来自C:\ Windows\Microsoft的计算机配置文件.NET\Framework64\v4.0.30319\CONFIG\machine.config中.日志:后策略引用:ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null LOG:GAC Lookup不成功.日志:尝试下载新的URL文件:/// I:/ Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1.DLL.日志:尝试下载新的URL文件:/// I:/ Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1/ClassLibrary1.DLL.日志:尝试下载新的URL文件:/// I:/ Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1.EXE.日志:尝试下载新的URL文件:/// I:/ Projects/ACE Explorer/AceV_1Explorer/AceExplorer/AceExplorer/bin/Debug/ClassLibrary1/ClassLibrary1.EXE.日志:所有探测URL都已尝试失败.

我看到目录中的文件,目标框架是4.0,所有使用x86

找出破碎的想法

更新 抱歉混乱.在日志中,它是PublicKeyToken = null.我正在尝试一切.

更新 我在主程序中添加了一些代码,它们将使用ResolveEventHandler解析程序集.它起初没有用.但是,当我让程序在程序的开头加载那些外部程序集(LoadReferences())时,它确实有效.很奇怪,因为当我在开始LoadReferences()中加载它们时路径完全相同,然后当方法输入对触发CurrentDomain_AssemblyResolve的自定义汇编的引用时.空白路径解析为装配路径.正如您所看到的,在LoadReferences()中,我正在添加EntityFramework,这将导致相同的问题,即使我正在使用Nuget.

在Main()中我添加了:

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
LoadReferences();



private static void LoadReferences()
        {
            Assembly  objExecutingAssemblies;
            objExecutingAssemblies = Assembly.GetExecutingAssembly();
            AssemblyName[] arrReferencedAssmbNames = objExecutingAssemblies.GetReferencedAssemblies();
            Assembly asm;
            foreach (AssemblyName strAssmbName in arrReferencedAssmbNames)
            {
                if (strAssmbName.FullName.ToLower().Contains("[company].") || …
Run Code Online (Sandbox Code Playgroud)

c#

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

WPF - 检测转换器中的设计模式

我有一个转换器,我希望能够在设计模式下将值更改为 Visibility.Collapsed。没错,它忽略了 GetIsInDesignMode。

另外,我通过依赖注入(棱镜)绑定虚拟机

转换器:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {

        if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
            return Visibility.Collapsed;

        if (value != null && value is AllowedSourceCode)
        {
            var allowedSourceCode = (AllowedSourceCode)value;

            if (value == null)
                return Visibility.Visible;
            else if (allowedSourceCode.SupportedSourceCodes.Contains(allowedSourceCode.SelectedSourceCode))
            {
                return Visibility.Collapsed;
            }
            else
            return Visibility.Visible;

        }
        return Visibility.Collapsed;
    }
Run Code Online (Sandbox Code Playgroud)

看法:

        <Canvas Visibility="{Binding SupportedSourceCodes,Converter={StaticResource AllowedSourcesConverter}}" Background="Gray" Opacity="0.9"
            Grid.Row="0" Grid.Column="0" Grid.RowSpan="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Panel.ZIndex="5"  >
Run Code Online (Sandbox Code Playgroud)

xaml.cs:

        public ACARSubLedgerUC(ACARSubLedgerVM vm)
    {
        InitializeComponent();
        DataContext = vm;
    }
Run Code Online (Sandbox Code Playgroud)

c# wpf visual-studio-2015

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

重定向CreateProcessAsUser的输出

我最近实现了CreateProcessAsUser.我一直试图将输出结果重定向或管道传输到文件.优先流.我试过这个没有运气

更新

要求是:

  • Windows服务应用程序
  • 以系统帐户登录
  • CreateProcessAsUser作为提升用户模拟

码:

public class CreateProcess
{

    #region Constants

    const UInt32 INFINITE = 0xFFFFFFFF;
    const UInt32 WAIT_FAILED = 0xFFFFFFFF;

    #endregion


    #region ENUMS

    [Flags]
    public enum LogonType
    {
        LOGON32_LOGON_INTERACTIVE = 2,
        LOGON32_LOGON_NETWORK = 3,
        LOGON32_LOGON_BATCH = 4,
        LOGON32_LOGON_SERVICE = 5,
        LOGON32_LOGON_UNLOCK = 7,
        LOGON32_LOGON_NETWORK_CLEARTEXT = 8,
        LOGON32_LOGON_NEW_CREDENTIALS = 9
    }


    [Flags]
    public enum LogonProvider
    {
        LOGON32_PROVIDER_DEFAULT = 0,
        LOGON32_PROVIDER_WINNT35,
        LOGON32_PROVIDER_WINNT40,
        LOGON32_PROVIDER_WINNT50
    }

    #endregion


    #region Structs

    [StructLayout(LayoutKind.Sequential)]
    public struct STARTUPINFO
    {
        public Int32 cb; …
Run Code Online (Sandbox Code Playgroud)

c# pinvoke createprocessasuser

6
推荐指数
0
解决办法
1013
查看次数

目录存在在桌面与服务器上产生不一致的结果

我有一个C#程序,它检查特定目录是否存在.

它只是做:

Directory.Exists(path).
Run Code Online (Sandbox Code Playgroud)

我也试过其他方法.使用DirectoryInfo并使用AlphaFS

在我的本地计算机上,路径存在.当我在具有相同凭据的服务器上运行相同的程序时,它不存在.

我想知道这是否是一个群体政策问题.但我能够上升到一个水平并看到它.

\ server\volume\share\sub目录 - 远程不存在但在我的桌面上它确实是 \server\volume\share - 我的桌面和远程服务器上都存在

更新 我忘记提及,因为我可以访问我的桌面,所以我获得了ACL信息.没有一个小组能够翻译.

我真的只是想让这个应用程序以与服务器上相同的方式运行,并找出它的行为方式不同.

更新2 这些是物理服务器.我的桌面是Liquid VDI

以下是代码:

 var path = txtPath.Text;
        using (var user = new Impersonation(fuserdomain, fc_user, fc_pass))
        {
            var alphaExists = Alphaleonis.Win32.Filesystem.Directory.Exists(path);
            var alphaDIExists = new Alphaleonis.Win32.Filesystem.DirectoryInfo(path).Exists;
            var SystemExists = System.IO.Directory.Exists(path);
            var SystemDIExists = new System.IO.DirectoryInfo(path).Exists;
            var AlphaHasFiles = false;
            var AlphaDIHasFiles = false;
            var SystemHasFiles = false;
            var SystemDIHasFiles = false;
            try
            {
                Directory.GetFiles(path);
                AlphaHasFiles = true;
            } …
Run Code Online (Sandbox Code Playgroud)

c# windows

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

按多列分组 - LINQ

我已经看到了按列分组的示例,但是对于类.我正在尝试为EnumerableDataRowList执行此操作.但我得到"无效的匿名类型成员声明者."

                    EnumerableDataRowList<DataRow> enumerableRowCollection = new EnumerableDataRowList<DataRow>(reportData.Select("WeekKey <> '0'"));


                var groupedRows1 = from row in enumerableRowCollection
                                  group row by new {row["NETWORK"], row["Week"] };
Run Code Online (Sandbox Code Playgroud)

另外,我看到有些人在某些情况下将列组合起来得到相同的结果.这样做有什么好处

c# linq

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

Winform - 显示

我有一个ac#winform项目,它在我的屏幕上显示与服务器有很大不同.

在我的屏幕上,我将部分表格切断,并在不同区域进行一些控制.我已经将我的分辨率调整到相同的分辨率,然后比服务器更强.两个人都没有工作.此外,尽管分辨率相同,但字体和控件在服务器上看起来更大

有任何想法吗?

服务器构建使用VS.net 2008与我的2010年.我不认为这应该重要.

c# winforms

4
推荐指数
2
解决办法
1686
查看次数