问题标签 [mmc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用 MMC 自动化对象模型获取 MMC 管理单元节点的 html dom 对象
我正在为现有的 mmc 文件使用自动化对象模型,并且只是试图遍历它的所有节点,我能够这样做。
我的查询是:如何获取特定节点的 html dom 对象的访问权限。节点的结果窗格中存在一个 html 页面,我想访问它,以便我可以在该表单上执行一些自动化操作。
下面是我用于 MMC 自动化对象模型的链接。 http://msdn.microsoft.com/en-us/library/aa815049(v=vs.85).aspx
我发现如果OCX控件在任何节点的结果视图中,那么“视图对象->控件对象属性”返回结果视图中控件提供的自动化接口。
但是,如果结果视图是 HTML 视图,那么如何获取该结果视图的自动化界面。
windows - 限制 windows server 2008 R2 远程 mmc
我正在寻找一种方法如何以最少的管理工作禁用对单个 Windows Server 2008 R2 管理控制台的远程访问。
服务器在域中,并且域中有大量其他计算机和用户,因此寻找一些本地选项而不是更改域级别的某些设置。
我可以在服务器 A 上禁用远程服务器管理的使用,它可以按我的意愿工作 - 我无法从服务器 B 访问其服务器管理。但是,如果我将在服务器 B 上打开 mmc 并添加例如“服务”或“计算机管理”管理单元,我可以通过这种方式远程访问服务器 A
需要避免用户限制使用 mmc 和特定的管理单元,最好尝试找到一种不使用 windows 防火墙并阻止此类通信的方法。我内心深处确实相信,可能有一些注册表项或本地策略设置会简单地禁用 mmc 类的远程访问。
显然必须避免任何进一步的第 3 方工具......
任何人都知道如何实现这一目标?或者至少一些提示将不胜感激。
谢谢
c# - 尝试加载证书的私钥时出现“指定的提供程序类型无效”CryptographicException
我正在尝试读取第三方服务提供商与我共享的证书的私钥,因此我可以使用它来加密一些 XML,然后再通过网络将其发送给他们。我在 C# 中以编程方式这样做,但我认为这是一个权限或配置错误的问题,所以我将专注于似乎最相关的事实:
- 我认为这个问题与代码无关;我的代码可以在其他计算机上运行,并且该问题会影响 Microsoft 的示例代码。
- 该证书以 PFX 文件的形式提供,仅用于测试目的,因此它还包括一个虚拟证书颁发机构。
- 使用 MMC.exe,我可以将证书导入本地计算机的个人存储中,然后将私钥的权限授予所有相关帐户,并将证书颁发机构拖放到受信任的根证书颁发机构中。
- 使用 C#,我可以加载证书(由其指纹识别)并使用
X509Certificate2.HasPrivateKey
. 但是,尝试读取密钥会导致错误。在 .NETCryptographicException
中,在尝试访问属性时会抛出消息“指定的提供程序类型无效”X509Certificate2.PrivateKey
。在 Win32 中,调用该方法CryptAcquireCertificatePrivateKey
会返回等效的 HRESULTNTE_BAD_PROV_TYPE
,. - 这与使用 Microsoft 自己的两个代码示例读取证书的私钥时也会发生的异常相同。
- 在当前用户的等效存储中(而不是本地计算机)安装相同的证书,可以成功加载私钥。
- 我在具有本地管理员权限的 Windows 8.1 上,我尝试在正常模式和提升模式下运行我的代码。Windows 7 和 Windows 8 上的同事已经能够从本地机器存储中加载相同证书的密钥。
- 我可以成功读取位于同一存储位置的自签名 IIS 测试证书的私钥。
- 我已经针对 .NET 4.5(一些旧版本的框架报告了这个错误)。
- 我不认为这是证书模板的问题,因为我希望这会同时影响本地计算机和当前用户存储?
与我的同事不同,我之前曾多次尝试以各种方式卸载和重新安装证书,包括通过 IIS 管理器,还包括来自同一颁发者的旧证书。我在 MMC 中看不到任何旧证书或重复证书的痕迹。但是,我确实有许多大小相同的私钥文件,根据最后一次写入时间,在我进行各种安装尝试后,这些文件肯定被遗忘了。这些位于以下位置,分别用于本地计算机和当前用户存储:
c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
c:\Users\\AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-[其余用户 ID]
那么,任何人都可以请告知是否:
- 最好使用 MMC 卸载证书,删除所有看起来像孤立私钥的文件,然后重新安装证书并重试?
- 还有其他我应该尝试手动删除的文件吗?
- 还有什么我应该尝试的吗?
更新 - 添加了显示尝试读取私钥的代码示例:
permissions - 空白、损坏的清单文件 Windows Server 2008
我有一个 Windows Server 2008 实例的问题,其中服务器管理器不会打开,powershell 或其他任何东西也不会打开。我研究了解决方案并尝试了十几个修复程序,包括用 .NET/Framework/etcetc 中的已知产品替换 machine.config、运行系统更新准备修复损坏的文件、DISM 等。我相信问题源于特定的清单文件。远程事件日志查看显示了数十个 SideBySide 错误,这些错误指向声明无效 XML 的清单文件,仔细检查后,它看起来就像是直接的空白。我有一份来自已知良好服务器配置的相同清单的副本,所以我正在考虑替换它。
首先:这是一个愚蠢的想法吗?有什么我不知道的东西会在我脸上炸开吗?
第二:我似乎无法替换清单文件。权限对我不利。经过仔细检查,似乎 TrustedInstaller 是唯一对该文件夹具有写访问权限及以上权限的帐户,即使我以具有提升访问权限的管理员身份运行,这些权限也被我锁定。我猜这是为了防止我在脚上开枪,但我需要这样做。所以第二个问题:如何提升我的权限以访问 C:\Windows\WinSxs\ 中的清单文件夹?
感谢您花时间阅读本文。我非常感谢您的集体知识和帮助。
ssl - 为什么我们需要在 Windows 中安装 .pfx 证书(而不是 .cer)才能使用客户端证书拨打电话?
我编写了一个小型控制台应用程序来使用客户端证书对服务器进行 HTTP 调用。我编写的代码从指定位置读取 .cer 文件以发出请求:
但是,除非您将证书安装在证书管理器中当前用户的个人文件夹中,否则此代码不起作用。更具体地说,它仅在我安装了.pfx证书时才有效,而不是.cer
据我了解,客户端证书仅用于身份验证而不用于加密,对吗?所以,
为什么我们需要安装证书?为什么我的程序不能从该位置选择 .cer 文件并将其与请求一起发送?和,
同样,更具体地说,为什么我们需要安装.pfx证书?为什么.cer不做这项工作?
windows - msc 二进制文件格式
我管理了很多环境,可能有很多机器——我正在寻找一个按钮来创建和打开一个环境的 MSC 文件——也就是说,为服务和计算机管理添加一个管理单元, 对于环境中的每台服务器。
创建 xml 完全没有问题 - 然而,对于服务管理单元,服务器的名称隐藏在魔法文本编码的二进制 blob 中的某处。鉴于我知道服务器名称,有人知道我如何创建二进制数据吗?
sql - MMC 无法创建管理单元 SQL Server 配置管理器
当我尝试在 sql server 2008 中连接到 sql server 配置管理器时。它显示错误 MMC 无法创建管理单元。
直到昨晚它都工作得很好。可能是什么原因,我该如何解决。但在后台 sql server 运行完美。
c# - 调试器未附加到进程
我有一个正在尝试调试的 MMC 管理单元。目前,位于管理单元的构造函数中的以下代码用于将调试器附加到它:
但是总是必须将调试器附加到 Visual Studio 真的很烦人。我想自动化这个过程。理想情况下,我只需要按 F5,它就会自动附加调试器。我尝试了以下方法:
- 项目属性 -> 启动外部程序 -> 输入“C:\Windows\System32\mmc.exe”
- 项目属性 -> 命令行参数 -> 给它一个 .msc 文件的路径(存储管理单元布局,这样每次都可以更轻松地加载它,这样你就不必总是文件 -> 添加/删除管理单元)。
这没有用。调试器不会自动附加。我怎样才能自动化这个过程,或者是什么阻止了调试器自动附加?
c# - 为什么复制/粘贴证书指纹字符串时相等性检查失败?
我有两个从 Microsoft 管理控制台检索到的证书指纹。
当我将值复制/粘贴到我的程序中,然后手动键入相同的值以执行相等检查时,它们会失败。
有谁知道为什么,在粘贴字符串值时,它没有通过相等性检查,但是当手动输入它时呢?据我所知,它们是相同的值,所以不应该都是真的吗?
这是 Visual Studio 中比较结果的图像:
c++ - 在 MMC 管理单元中嵌入 MFC 对话框
我在 MFC 中创建了一些从 MMC 管理单元生成的对话框。经过审查,我被告知最好将对话框嵌入到 SnapIn 中(在结果窗格中作为自定义视图)。
问题是我不知道如何做到这一点:我猜我必须创建一个 COM 接口,作为当用户与 MMC 交互时 MMC 生成的 COM 事件的接收器,并且我必须将这些事件转换为对话框期望的 Windows 消息。
我不知道这是否正确,有人能指出我正确的方向吗?