运行环境:Windows Server 2012 R2

DFS复制组 PowerShell脚本命令

需要注意的是DFS依赖域,若此服务器未存在于域控上,或未存在域内,则此脚本会报错

此脚本可在域内任意服务器执行

脚本创建的是交错型拓扑结构,使用的默认计划

检测是否存在复制组时,有一种情况会检查错误,就是查看复制组时报错误。

# 创建DFS复制
# author:lttr <www.cnblogs.com/GoCircle>
# date:2019-08-09
# eg.
# C:\dfsr.ps1 -Domain "test.to" -DfsN "DFSN01" -GroupName "RG01" -FolderName "dfs" -ShareFolderPhysicalPath "C:\DFShare\dfs" -SourceComputerName "WIN01" -servers "WIN02","WIN03","WIN04" [CmdletBinding()]
param
(
# 域名
[Parameter(Mandatory=$true,Position=0)][string]$Domain,
# DFS命名空间名称
[Parameter(Mandatory=$true,Position=1)][string]$DfsN,
# 复制组名称
[Parameter(Mandatory=$true,Position=2)][string]$GroupName,
# 复制组文件夹名称
[Parameter(Mandatory=$true,Position=3)][string]$FolderName,
# 共享文件夹物理路径
[Parameter(Mandatory=$true,Position=4)][string]$ShareFolderPhysicalPath,
# DFS成员列表
[Parameter(Mandatory=$true,Position=6)][String[]]$servers
)
# 域内远程设置共享文件夹
function SET-Share($DriveLetter,$ShareFolderPhysicalPath,$ShareFolderNetworkPath,$Server){
if(!(Test-Path \\$Server\$DriveLetter$\$ShareFolderPhysicalPath)){
$null = New-Item -Path \\$Server\$DriveLetter$\$ShareFolderPhysicalPath -type directory -Force
}
$Shares = [WMICLASS]"\\$Server\root\cimv2:WIN32_Share"
$null = $Shares.Create($DriveLetter+":\"+$ShareFolderPhysicalPath,$ShareFolderNetworkPath,0)
} try {
#检测是否发布到命名空间
if(Get-DfsnFolderTarget -Path "\\$Domain\$DfsN\$FolderName" -ErrorAction SilentlyContinue) {
Write-Host "DFS复制组[$GroupName]已存在!" -ForegroundColor Red
}else{
# 设置复制组
$null = New-DfsReplicationGroup -GroupName $GroupName | New-DfsReplicatedFolder -GroupName $GroupName -FolderName $FolderName -DfsnPath "\\$Domain\$DfsN\$FolderName" -WarningAction silentlyContinue | Add-DfsrMember -ComputerName $servers
# 设置连接和成员身份
for($i=0;$i -le $servers.Length-1;$i++){
for($j=$i+1;$j -le $servers.Length-1;$j++){
$null = Add-DfsrConnection -GroupName $GroupName -SourceComputerName $servers[$i] -DestinationComputerName $servers[$j]
}
}
foreach ($server in $servers) {
# 为命名空间新建文件夹目标
$null = New-DfsnFolderTarget -Path "\\$Domain\$DfsN\$FolderName" -TargetPath "\\$server.$Domain\$FolderName" -State "Online" -ReferralPriorityClass "sitecostnormal"
# 设置共享文件夹
SET-Share ($ShareFolderPhysicalPath -split ":")[0] ($ShareFolderPhysicalPath -split ":\\")[-1] $FolderName $server
# 设置复制组成员的本地路径
$null = Set-DfsrMembership -GroupName $GroupName -FolderName $FolderName -ComputerName $server -PrimaryMember $True -ContentPath $ShareFolderPhysicalPath -Force
}
# 更新本地DFSR配置信息
Update-DfsrConfigurationFromAD -ComputerName $servers
#检测是否发布到命名空间
if(Get-DfsnFolderTarget -Path "\\$Domain\$DfsN\$FolderName" -ErrorAction SilentlyContinue) {
Write-Host "创建DFS复制组[$GroupName]成功!" -ForegroundColor Green
}else{
Write-Host "创建DFS复制组[$GroupName]失败!" -ForegroundColor Red
}
}
} catch {
Write-Host "创建DFS复制组[$GroupName]失败!" -ForegroundColor Red
}

使用PowerShell 自动创建DFS复制组的更多相关文章

  1. 使用PowerShell 自动创建DFS命名空间服务器

    运行环境:Windows Server 2012 R2 DFS命名空间概述 DFS命名空间 PowerShell脚本命令 Writing PowerShell DFS Scripts: Managin ...

  2. sql自动创建表并复制数据

    ---------------自动创建表并复制数据sql,需要自己设置主键----------- select * into 新表 from 旧表

  3. 使用MyBatis Generator自动创建代码

    SSM框架--使用MyBatis Generator自动创建代码 1. 目录说明 使用自动生成有很多方式,可以在eclipse中安装插件,但是以下将要介绍的这种方式我认为很轻松,最简单,不需要装插件, ...

  4. sql2008 计划自动创建数据库分区【转】

    本文转自:http://jingyan.baidu.com/article/6b97984d9a26ec1ca3b0bf77.html sql2008 计划自动创建数据库分区 固定增量的数据,自动创建 ...

  5. 1.5 外部销售自动创建为内部PR

    1.5          外部销售自动创建为内部PR 1.5.1   业务方案描述 外部销售订单登记后,在销售订单录入界面点击一个创建内部申请按钮,自动将外部销售订单创建为内部申请,创建后将不得再次创 ...

  6. Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板

    Scaffolding Template Intro 我们知道在Asp.Net MVC中,如果你使用的EF的DBContext的话,你可以在vs中通过右键解决方案-添加控制器-添加包含视图的控制器,然 ...

  7. 如何用SQL脚本在SQL Server Replication中创建合并复制,以及怎么创建分区合并复制

    假设我们要创建合并复制的发布端数据库是EFDemo其中有四张表,订阅端数据库是EFDemoSubscription,如下图所示: 首先创建发布端快照代理Sql agent job:"EFDe ...

  8. OpenCV(C++版)图像读取,创建,复制,保存,显示

    http://blog.163.com/yuyang_tech/blog/static/21605008320132642254689/ 一个小例子: #include "stdafx.h& ...

  9. SpringBoot+Mybatis 自动创建数据表(适用mysql)

    Mybatis用了快两年了,在我手上的发展史大概是这样的 第一个阶段 利用Mybatis-Generator自动生成实体类.DAO接口和Mapping映射文件.那时候觉得这个特别好用,大概的过程是这样 ...

随机推荐

  1. SQL进程死锁排查

    --进程执行状态 SELECT der.[session_id],der.[blocking_session_id], sp.lastwaittype,sp.hostname,sp.program_n ...

  2. hive2.3.4安装

    一.安装Hadoop Hive运行在Hadoop环境之上,因此需要hadoop环境,本次在安装在hadoop完全分布式模式的namennode节点上 请参考:hadoop搭建 二.安装Hive 下载 ...

  3. 油猴Tampermonkey离线安装流程(附文件)

    1.下载插件插件包,然后解压(解压到你想放插件的位置,其实任意位置都可以,记住解压的位置) 链接:https://pan.baidu.com/s/1aanhsb6ZlapnzBeBRtp3Hg 提取码 ...

  4. 快速拿下CSS盒子模型

    下面的图片就是Chrome浏览器审查元素里的盒子情况展示,我们可以看到一个容器由4个颜色代表的内容组成:内容(content).填充(padding).边框(border).边界(margin),在这 ...

  5. gulp 使用指南

    只放一个链接是不是太不负责任 https://gulpjs.com/ https://blog.csdn.net/guang_s/article/details/84664769 gulp安装过程在此 ...

  6. poi 1017 Packets 贪心+模拟

    Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 48349   Accepted: 16392 Descrip ...

  7. noi.ac #536 打地鼠

    题目链接:戳我 [问题描述] 小A在玩打地鼠游戏.有一个n×m的网格,每个位置上地鼠都会要么冒出头要么缩进去.地鼠很狡猾,每次小A选一个地鼠冒出头的格子(x,y)把它打下去,但同一行同一列的地鼠全都会 ...

  8. 2019牛客暑期多校训练营(第八场)A 单调栈

    题意 给一个\(n*m\)的01矩阵,找有多少个全1子矩阵不被其他全1子矩阵包括. 分析 用单调栈找到的全1子矩阵是不能向上扩展和向右扩展的,只需判断该子矩阵能否向左和向下扩展,若四个方向都不能扩展, ...

  9. easyUI datagrid中checkbox选中事件以及行点击事件,翻页之后还可以选中

    DataGrid其中与选择,勾选相关 DataGrid属性:singleSelect boolean 如果为true,则只允许选择一行. false ctrlSelect boolean 在启用多行选 ...

  10. Spring——顾问封装通知

    通知(advice)是Spring中的一种比较简单的切面,只能将切面织入到目标类的所有方法中,而无法对指定方法进行增强 顾问(advisor)是Spring提供的另外一种切面,可以织入到指定的方法中  ...