天道酬勤,学无止境

Windows 10 OSD image 过程中 enroll machine cert

因为covid19, 目前大部分用户都是在家办公,对的依赖程度不言而喻,而一旦出现问题,做远程troubleshooting就比较麻烦。

最近偶然发现了几个case,最新image的2-3台机器无法连接,原因是没有检测到machine cert,过不了的host check。

但机器是新做的image,windows 10 部署完成后应该会自动刷新GPO,出发machine cert auto enroll的policy从而可以从internal CA获取到machine cert。

分析下来可能是image刚刚做好就断网关机,没有来得及更新GPO导致的。

经过一番research,发现除了刷新GPO意外,还可以利用windows远程的CertReq来或者machine cert

添加一步在TaskSequence技术之前执行PowerShell脚本如下

$cert = gci Cert:\LocalMachine\My\ | ? subject -match $env:computername | ?  subject -match "contoso.com" | select Thumbprint, Subject, NotAfter, NotBefore, Issuer | sort-object NotBefore -Descending | select -First 1
if (!($cert))
{
    $Process = Start-Process -FilePath certreq.exe -ArgumentList "-q -v -machine -enroll %CertTemplate%" -Wait -PassThru
    Write-Log "Machine Cert not detected, start to enroll machine cert"
    if ($Process.ExitCode -eq 0)
    {
        Write-Log "command executed successfully"
    }
    else
    {

        write-log "command executed failed with error code $($Process.ExitCode)"
    }
}

这样machine cert没有检测到的话,会自动去CA申请证书。
需要替换%CertTemplate%"为自己环境内的machine cert template name.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何使用C#创建自签名证书?(How can I create a self-signed certificate using C#?)
    问题 我需要使用C#创建一个自签名证书(用于本地加密-它不用于保护通信)。 我已经看到一些使用带有Crypt32.dll的P / Invoke的实现,但是它们很复杂并且很难更新参数-而且我也想尽可能避免使用P / Invoke。 我不需要跨平台的东西-仅在Windows上运行就足够了。 理想情况下,结果将是X509Certificate2对象,我可以使用该对象将其插入Windows证书存储区或导出到PFX文件。 回答1 此实现使用CX509CertificateRequestCertificate COM对象(和朋友certenroll.dll doc)创建自签名证书请求并对其进行签名。 下面的示例非常简单(如果您忽略此处出现的COM内容),并且代码中的某些部分实际上是可选的(例如EKU),这些部分仍然有用且易于使用适应您的使用。 public static X509Certificate2 CreateSelfSignedCertificate(string subjectName) { // create DN for subject and issuer var dn = new CX500DistinguishedName(); dn.Encode("CN=" + subjectName, X500NameFlags.XCN_CERT_NAME_STR_NONE); //
  • Docker无法连接到Docker守护程序(Docker can't connect to docker daemon)
    问题 将Docker版本更新为0.8.0 ,输入sudo docker version时收到错误消息: Client version: 0.8.0 Go version (client): go1.2 Git commit (client): cc3a8c8 2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host? 我已经按照说明进行操作,并输入了命令sudo docker -d ,我得到了: [/var/lib/docker|2462000b] +job initserver() [/var/lib/docker|2462000b.initserver()] Creating server open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1) 2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs
  • ceph最佳实践
    基础环境:Centos7.2192.168.200.126 ceph1192.168.200.127 ceph2192.168.200.129 ceph3关闭防火墙和selinux# setenforce 0# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/confi# systemctl stop firewalld# systemctl disable firewalldceph Yum源:[root@ceph1 ~]# cat /etc/yum.repos.d/ceph.repo[Ceph-mimic]name=Ceph x86_64 packagesbaseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/enabled=1gpgcheck=0ceph-deploy Yum源[root@ceph1 ~]# cat /etc/yum.repos.d/ceph-deploy.repo[ceph-deploy]name=ceph-deploybaseurl=https://download.ceph.com/rpm-mimic/el7/noarch/enabled=1gpgcheck=0所有节点安装ntp后进行时间同步# yum
  • ceph详细安装部署教程(多监控节点)
    一、前期准备安装ceph-deploy工具 所有的服务器都是用root用户登录的1、安装环境 系统centos-6.5 设备:1台admin-node (ceph-ploy) 1台 monistor 2台 osd2、关闭所有节点的防火墙及关闭selinux,重启机器。 service iptables stop sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config chkconfig iptables off 3、编辑admin-node节点的ceph yum仓库vi /etc/yum.repos.d/ceph.repo [ceph-noarch]name=Ceph noarch packagesbaseurl=http://ceph.com/rpm/el6/noarch/enabled=1gpgcheck=1type=rpm-mdgpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc4、安装搜狐的epel仓库 rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm5、更新admin-node节点的yum源 yum
  • Ceph集群部署与Dashboard管理
    一. 环境准备:1.关闭防火墙、selinux(所有节点):# systemctl stop firewalld ; systemctl disable firewalld# setenforce 0# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config //注意,网上说这种关闭selinux方法,可能导致selinux无法临时开启,可以使用以下谨慎的方法# vim /etc/sysconfig/selinux //将SELINUX=disabled修改即可,重启虚机# init 62.修改主机名(所有节点):# hostnamectl set-hostname ceph01# hostnamectl set-hostname ceph02# hostnamectl set-hostname ceph03随便找一台虚机比如ceph01上,修改hosts文件:# vim /etc/hosts# scp /etc/hosts 192.168.10.11:/etc/# scp /etc/hosts 192.168.10.12:/etc/3. SSH登录免密(ceph01控制节点):# ssh-keygen //一路回车,生成RSA公钥# ssh-copy-id ceph02# ssh-copy-id
  • 看Ceph如何实现原生的ISCSI
    今天我们来体验下Ceph原生的ISCSI,可能会有人说哪来的原生ISCSI啊,相信细心的童鞋在Ceph L版本发布的时候官网手册里面就出现了一个iscsi的字样。是的,没错,这就是原声版的ISCSI雏形,有好消息就有坏消息,不幸的是,截至到目前为止还不能使用rpm安装,因为红帽没有把rpm释放出来,只能通过git源码或别人分享的rpm包进行安装。 简单来说下iscsi的前生今世,分为两种一种是tgt实现方式,一种是lio实现方式,那么在Ceph原生里面使用的是lio方式,在原生的lio方式出来之前大家普遍采用的是tgt方式来进行Ceph的ISCSI实现。 什么是tgt?Linux target framework(tgt)是为创建、维护SCSI target 驱动(包括iSCSI、FC、SRP等)提供支持。它的关键目标是简洁地集成到scsi-mid层,并且实现大部分应用层空间的tgt。以 Linux 2.6.38 为分界线,此前Linux 中默认的SCSI target是STGT,之后的标准是 Linux-IO Target。什么是lio?Linux-IO Target在Linux内核中(linux 2.6.38后),用软件实现各种SCSI Target,其支持的SAN技术中所有流行的存储协议包括Fibre Channel(Qlogic,linux3.5)、FCoE(linux3
  • Pytesseract OCR多个配置选项(Pytesseract OCR multiple config options)
    问题 我在pytesseract遇到了一些问题。 我需要将Tesseract配置为可以接受单个数字,同时也只能接受数字,因为数字0经常与'O'混淆。 像这样: target = pytesseract.image_to_string(im,config='-psm 7',config='outputbase digits') 回答1 tesseract-4.0.0a支持psm以下。 如果要识别单个字符,请设置psm = 10 。 并且如果您的文本仅包含数字,则可以设置tessedit_char_whitelist=0123456789 。 Page segmentation modes: 0 Orientation and script detection (OSD) only. 1 Automatic page segmentation with OSD. 2 Automatic page segmentation, but no OSD, or OCR. 3 Fully automatic page segmentation, but no OSD. (Default) 4 Assume a single column of text of variable sizes. 5 Assume a single uniform block of vertically aligned
  • 【Hyperledger Fabric入门】(二) Fabric账号服务器:Fabric-ca
    目录 一、Fabric-ca的编译和安装二、 Fabric-ca-server的启动和配置1. Fabric-ca-server命令行选项2. Fabric-ca-server的选项3. Fabric-ca-server初始化4. Fabric-ca-server启动 三、 Fabric-ca-client的使用1. Fabric-ca-client模块子命令2. Fabric-ca-client模块参数选项 四、将fabric-ca-server集成到现有项目中1. 绑定fabric-ca-server到现有组织2. 通过客户端从已经绑定的fabric-ca-server中生成账号 Fabric-ca项目是专门为解决Fabric账号问题而发起的一个开源项目,它非常完美地解决了Fabric账号生成的问题。由Fabric-ca-server和Fabric-ca-client两个模块组成。Fabric-ca-server在Fabric-ca项目中占有非常重要的作用。 一、Fabric-ca的编译和安装 第一步:安装系统组件包 sudo apt-get install libtool libltdl-dev 第二步:下载源代码并编译 cd $GOPATH/src/github.com/hyperledger/ git clone http://gerrit.hyperledger.org
  • 如何测试Windows DLL文件以确定它是32位还是64位? [复制](How can I test a Windows DLL file to determine if it is 32 bit or 64 bit? [duplicate])
    问题 这个问题已经在这里有了答案: 如何确定可执行文件在哪个平台上编译? (11个答案) 8年前关闭。 我想编写一个测试脚本或程序来断言给定目录中的所有DLL文件都是特定的构建类型。 在SDK的构建过程结束时,我将其用作完整性检查,以确保64位版本没有以某种方式在其中获得一些32位DLL文件,反之亦然。 有没有一种简单的方法可以查看DLL文件并确定其类型? 该解决方案应同时在xp32和xp64上运行。 回答1 血腥细节 DLL使用PE可执行文件格式,并且从文件中读取该信息也不太麻烦。 有关概述,请参阅PE文件格式上的此MSDN文章。 您需要读取MS-DOS标头,然后读取IMAGE_NT_HEADERS结构。 它包含IMAGE_FILE_HEADER结构,该结构包含您在Machine成员中所需的信息,该成员包含以下值之一 IMAGE_FILE_MACHINE_I386(0x014c) IMAGE_FILE_MACHINE_IA64(0x0200) IMAGE_FILE_MACHINE_AMD64(0x8664) 此信息应在文件中的固定偏移处,但是我仍然建议遍历文件并检查MS-DOS标头和IMAGE_NT_HEADERS的签名,以确保将来可以应付任何更改。 使用ImageHelp读取标题... 您还可以使用ImageHelp API来执行此操作-使用LoadImage加载DLL
  • CEPH块存储
    1. 安装 Ceph 块存储客户端 Ceph块设备,以前称为 RADOS 块设备,为客户机提供可靠的、分布式的和高性能的块存储磁盘。 RADOS 块设备利用 librbd 库并以顺序的形式在 Ceph 集群中的多个 osd 上存储数据块。RBD是由 Ceph 的 RADOS 层支持的,因此每个块设备都分布在多个 Ceph 节点上,提供了高性能和优异的可靠性。RBD 有 linux 内核的本地支持。 任何普通的 linux 主机都可以充当 Ceph 的客户机。客户端通过网络与 Ceph 存储集群交互以存储或检索用户数据。Ceph RBD 支持已经添加到 Linux主线内核中,从 2.6.34和以后的版本开始。192.168.3.158为客户端做如下操作1.1 修改主机名[root@localhost ~]# cat /etc/hosts …… 192.168.3.165 ceph165 192.168.3.166 ceph166 192.168.3.167 ceph167 192.168.3.158 ceph158 [root@localhost ~]# hostnamectl set-hostname ceph1581.2 修改 ceph 源文件# wget -O /etc/yum.repos.d/ceph.repo https://raw.githubusercontent
  • SSL证书被拒绝尝试通过防火墙后的HTTPS访问GitHub(SSL certificate rejected trying to access GitHub over HTTPS behind firewall)
    问题 我被困在防火墙后面,因此必须使用HTTPS来访问我的GitHub存储库。 我在Windows XP上使用cygwin 1.7.7。 我尝试将遥控器设置为https://username@github.com/username/ExcelANT.git ,但是在提示输入密码时提示我,但是一旦输入密码就什么也没做。 https://username:<password>github.com/username/ExcelANT.git并从头开始克隆空的https://username:<password>github.com/username/ExcelANT.git ,但是每次给我相同的错误 错误:SSL证书问题,请验证CA证书是否正确。 细节: 错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:访问https://github.com/username/ExcelANT.git/info/refs时证书验证失败 开启GIT_CURL_VERBOSE=1给我 *关于connect()到github.com端口443(#0) *尝试207.97.227.239 ... *成功设置证书验证位置: * CAfile:无 CApath:/ usr / ssl / certs * SSL证书问题,请验证CA证书是否正确。 细节: 错误
  • Cehp-学习1
    一、概述Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目。随着云计算的发展,ceph乘上了OpenStack的春风,进而成为了开源社区受关注较高的项目之一。Ceph有以下优势:1. CRUSH算法Crush算法是ceph的两大创新之一,简单来说,ceph摒弃了传统的集中式存储元数据寻址的方案,转而使用CRUSH算法完成数据的寻址操作。CRUSH在一致性哈希基础上很好的考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。Crush算法有相当强大的扩展性,理论上支持数千个存储节点。2. 高可用Ceph中的数据副本数量可以由管理员自行定义,并可以通过CRUSH算法指定副本的物理存储位置以分隔故障域,支持数据强一致性; ceph可以忍受多种故障场景并自动尝试并行修复。3. 高扩展性Ceph不同于swift,客户端所有的读写操作都要经过代理节点。一旦集群并发量增大时,代理节点很容易成为单点瓶颈。Ceph本身并没有主控节点,扩展起来比较容易,并且理论上,它的性能会随着磁盘数量的增加而线性增长。4. 特性丰富Ceph支持三种调用接口:对象存储,块存储,文件系统挂载。三种方式可以一同使用。在国内一些公司的云环境中,通常会采用ceph作为openstack的唯一后端存储来提升数据转发效率。二
  • 为本地主机创建一个受信任的自签名SSL证书(用于Express / Node)(create a trusted self-signed SSL cert for localhost (for use with Express/Node))
    问题 尝试遵循有关创建与本地主机一起使用的自签名证书的各种说明,大多数说明似乎是针对IIS的,但是我正在尝试使用Nodejs / Express。 它们均无法正常工作,因为在安装证书时,该证书不受信任。 这是我尝试失败的方法: 如何为本地主机创建自签名证书? https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-nginx-for-ubuntu-12-04/ http://blogs.developerforce.com/developer-relations/2011/05/generating-valid-self-signed-certificates.html http://www.robbagby.com/iis/self-signed-certificates-on-iis-7-the-easy-way-and-the-most-effective-way/ 有人可以提供可以做到这一点的工作流程吗? 我可以安装证书,但是无法在chrome(v32)或IE(v10)中信任该证书。 编辑:在评论中建议该问题不是受信任的证书根。 我通过IE安装了该证书,但仍然不受信任。 回答1 上面的答案是不完整的。 我花了很多时间来使它工作,这太疯狂了。 请注意我未来的自我
  • Ceph 集群管理-入门篇
    存储集群 存储设备 有两个在磁盘上存储数据的 Ceph 守护程序: Ceph OSD 是大多数数据存储在 Ceph 中的地方。一般而言,每个 OSD 都由单个存储设备支持。OSD 还可以由多种设备组合来支持,例如用于大多数数据的 HDD 和用于某些元数据的 SSD。群集中 OSD 的数量通常取决于存储的数据量,每个存储设备的容量以及冗余(复制或Erasure)的级别和类型 Ceph Monitor 管理关键的群集状态,例如群集成员身份和身份验证信息。对于较小的群集,只需要几 GB 的容量,尽管对于较大的群集,监控器数据库可以达到数十或数百GB的容量 OSD 后端 OSD 可以通过两种方式管理它们存储的数据。从 Luminous 12.2.z 版本开始,新的默认(推荐)后端是 BlueStore。在 Luminous 之前,默认(也是唯一的选项)是 FileStore BlueStore BlueStore 是专用于存储的后端,专门用于管理 Ceph OSD 中的数据。BlueStore 的主要功能包括: 直接管理存储设备:BlueStore 构建在裸磁盘设备之上,直接使用原始块设备或分区 RocksDB 的元数据管理:嵌入 RocksDB 的键/值数据库管理内部元数据,例如从对象名称到磁盘上块位置的映射 完整的数据和元数据校验和:默认情况下,所有写入 BlueStore
  • 最新ceph集群常用命令梳理
    结合网络、官网、手动查询等多方渠道,整理ceph维护管理常用命令,并且梳理常规命令在使用过程中的逻辑顺序。另外整理期间发现ceph 集群的命令体系有点乱,详细情况各自体验。一:ceph集群启动、重启、停止1:ceph 命令的选项如下:选项简写描述--verbose-v详细的日志。--valgrindN/A(只适合开发者和质检人员)用 Valgrind 调试。--allhosts-a在 ceph.conf 里配置的所有主机上执行,否 则它只在本机执行。--restartN/A核心转储后自动重启。--norestartN/A核心转储后不自动重启。--conf-c使用另外一个配置文件。Ceph 子命令包括:命令描述start启动守护进程。stop停止守护进程。forcestop暴力停止守护进程,等价于 kill -9killall杀死某一类守护进程。cleanlogs清理掉日志目录。cleanalllogs清理掉日志目录内的所有文件。2:启动所有守护进程要启动、关闭、重启 Ceph 集群,执行 ceph 时加上 相关命令,语法如下:/etc/init.d/ceph [options] [start|restart|stop] [daemonType|daemonID]下面是个典型启动实例:sudo /etc/init.d/ceph -a start加 -a (即在所有节点上执行
  • oracle数据库ORA-00210:无法打开指定的控制文件
    最近处理了一起windows server 2012服务器oracle12c数据库新增实例,导致旧实例无法正常对外提供服务. 1、trace日志报错内容 控制文件无法打开报错提示: Errors in file D:\APP\ADMINISTRATOR\VIRTUAL\diag\rdbms\crm\crm\trace\crm_m000_6260.trc: ORA-00210: 无法打开指定的控制文件 ORA-00202: 控制文件: &apos;&apos;D:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\CRM\CONTROL01.CTL&apos;&apos; ORA-27041: 无法打开文件 OSD-04002: 无法打开文件 O/S-Error: (OS 5) 拒绝访问。 数据表空间文件无法打开报错提示: Errors in file D:\APP\ADMINISTRATOR\VIRTUAL\diag\rdbms\crm\crm\trace\crm_smon_2928.trc: ORA-01116: 打开数据库文件 8 时出错 ORA-01110: 数据文件 8: &apos;D:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\CRM\CRM_DATA01.DBF&apos; ORA-27041: 无法打开文件 OSD
  • 如何查找本机DLL文件是编译为x64还是x86?(How to find if a native DLL file is compiled as x64 or x86?)
    问题 我想确定是否从托管代码应用程序(C#)将本机程序集编译为x64或x86。 我认为它必须在PE标头中,因为操作系统加载程序需要知道此信息,但我找不到它。 当然,我更喜欢在托管代码中执行此操作,但是如果有必要,我可以使用本机C ++。 回答1 您也可以使用DUMPBIN。 使用/headers或/all标志及其列出的第一个文件头。 dumpbin /headers cv210.dll 64位 Microsoft (R) COFF/PE Dumper Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file cv210.dll PE signature found File Type: DLL FILE HEADER VALUES 8664 machine (x64) 6 number of sections 4BBAB813 time date stamp Tue Apr 06 12:26:59 2010 0 file pointer to symbol table 0 number of symbols F0 size of optional header 2022 characteristics Executable Application can
  • ProxmoxVE(V5.2) 之 使用外部ceph存储(luminous)
    上面左边是我的个人 微 信,如需进一步沟通,请加 微 信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。我的哔哩哔哩主页:https://space.bilibili.com/649988837 继上篇博文《ProxmoxVE 之集群安装(V5.2)》 ,本来想模拟生产环境实现3节点集群,并且使用ceph分布式存储实现虚拟机级别的HA,但是在使用pveceph 工具创建ceph环境的时候出错了,发现需要商业订阅才能使用(已解决,见下面的备注)。因此这篇博文想从另一个角度,先搭建外部ceph存储集群,供pve直接使用外部ceph存储 。2019年1月31日注: pveceph 工具可以使用,前提是需要更改pve的软件源,方法如下: 重要!!!更改软件源,默认是订阅版,如果不做修改,在使用pveceph init进行ceph初始化安装的时候会将整个环境破坏,切记!更改为非订阅版,如下:将/etc/apt/sources.list.d/pve-enterprise.list 文件内的唯一一条记录注释掉:#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprisewget -q -O- 'http://download.proxmox.com/debian/pve/dists/stretch
  • 如何在Docker容器中挂载主机目录(How to mount a host directory in a Docker container)
    问题 我正在尝试将主机目录挂载到Docker容器中,以便主机上完成的所有更新都将反映到Docker容器中。 我在哪里做错了。 这是我所做的: kishore$ cat Dockerfile FROM ubuntu:trusty RUN apt-get update RUN apt-get -y install git curl vim CMD ["/bin/bash"] WORKDIR /test_container VOLUME ["/test_container"] kishore$ tree . ├── Dockerfile └── main_folder ├── tfile1.txt ├── tfile2.txt ├── tfile3.txt └── tfile4.txt 1个目录,5个文件kishore $ pwd / Users / kishore / tdock kishore$ docker build --tag=k3_s3:latest . Uploading context 7.168 kB Uploading context Step 0 : FROM ubuntu:trusty ---> 99ec81b80c55 Step 1 : RUN apt-get update ---> Using cache ---> 1c7282005040 Step 2
  • ColdFusion https connection failure
    I have an API that runs fine on one of my two web servers but not on the other one or on my local machine, instead I get a connection failure when I send https requests as part the login process. The requests are very simple and works without a problem on one of the three servers it is being run on. The first one is as follows: <cfhttp url="https://accounts.ea.com/connect/auth?response_type=code&client_id=EASFC-web&state=59c5a8f1c4e7a991c1da0b54504c38e45f4d8d78&redirect_uri=http%3A%2F%2Fwww.easports.com%2Ffifa%2Ffootball-club%2Flogin_check&locale=uk&scope=basic.identity+basic.persona+signin