批量根據計算機名稱移動到相應OU中腳步

2021-09-21 05:06:51 字數 4777 閱讀 9113

目的:

根據定製化的計算機名,將其定期移動到指定的ou中,方便管理.

csvde -d cn=computers,dc=contoso,dc=intra -l cn -r "(objectclass=computer)" -f pclist.csv for /f "skip=1 eol=; tokens=2,3* delims=,=" %%a in (pclist.csv) do echo %%a >>pclist2.csv

上述語句若需要在命令列下單獨執行,請去掉乙個百分號.其中根據你ad實際替換dc值.在這個例子裡使用了"csvde"匯出所有計算機到乙個csv檔案裡,然後用for語句篩選有用的資訊重新輸出到另乙個檔案.在這裡csvde可以用dsquery 命令去執行,功能更強大.

findstr /c c pclist2

.csv 

>

>c.

csvfindstr /b m pclist2

.csv 

>

>m.

csvfindstr /b sales pclist2

.csv 

>

>

sales

.csv

在這裡根據計算名裡的字段匯出幾個列表.

for/f "eol=; tokens=1,2,3* delims= "

%%a in(

c.csv)

do dsmove cn=%

%a,cn

=computers,dc

=contoso,dc

=intra

-newparent ou=c

,ou=company,dc

=contoso,dc

=intra

for/f 

"eol=; tokens=1,2,3* delims= "

%%a in(

m.csv)

do dsmove cn=%

%a,cn

=computers,dc

=contoso,dc

=intra

-newparent ou=m

,ou=company,dc

=contoso,dc

=intra

for/f 

"eol=; tokens=1,2,3* delims= "

%%a in(

sales

.csv

)do dsmove cn=%

%a,cn

=computers,dc

=contoso,dc

=intra

-newparent ou

=sales,ou

=company,dc

=contoso,dc

=intra

這裡就是根據從匯出來的列表移動到相應的ou.

csvde 

-d cn

=computers,dc

=h,dc

=com 

-l cn -r 

"(objectclass=computer)"

-f pclist

.csv

for/

f "skip=1 eol=; tokens=2,3* delims=,="%%

a in 

(pclist

.csv)do

echo %%

a >

>

pclist2

.csv

findstr 

/c cn

-a pclist2

.csv 

>

>cw.

csvfindstr 

/b cn

-l pclist2

.csv 

>

>cl.

csvfindstr 

/b us

-a pclist2

.csv 

>

>uw.

csvfindstr 

/b us

-l pclist2

.csv 

>

>ul.

csvfor/f 

"eol=; tokens=1,2,3* delims= "%%

a in (cw

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=workstation,ou

=china,ou

=company,dc

=h,dc

=com

for/

f "eol=; tokens=1,2,3* delims= "%%

a in (cl

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=laptop,ou

=china,ou

=company,dc

=h,dc

=com

for/

f "eol=; tokens=1,2,3* delims= "%%

a in (uw

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=workstation,ou

=us,ou

=company,dc

=h,dc

=com

for/

f "eol=; tokens=1,2,3* delims= "%%

a in (ul

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=laptop,ou

=us,ou

=company,dc

=h,dc

=com

ifexist *.

csv del *.

csv最後的效果是:所有以cn-a開頭的pc都移動到china裡的workstation裡.cn-l就移動到china裡的laptop.這樣可以有效的分開管理.

dsquery computer 

-o rdn cn

=computers,dc

=h,dc

=com 

>

>

pclist2

.csv 

findstr cn

-a pclist2

.csv 

>

>cw.

csvfindstr cn

-l pclist2

.csv 

>

>cl.

csvfindstr us

-a pclist2

.csv 

>

>uw.

csvfindstr us

-l pclist2

.csv 

>

>ul.

csvfor/f 

"eol=; tokens=1,2,3* delims= "%%

ain (cw

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=workstation,ou

=china,ou

=company,dc

=h,dc

=com

for/

f "eol=; tokens=1,2,3* delims= "%%

ain (cl

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=laptop,ou

=china,ou

=company,dc

=h,dc

=com

for/

f "eol=; tokens=1,2,3* delims= "%%

ain (uw

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=workstation,ou

=us,ou

=company,dc

=h,dc

=com

for/

f "eol=; tokens=1,2,3* delims= "%%

ain (ul

.csv)do

dsmove cn=%

%a,cn

=computers,dc

=h,dc

=com 

-newparent ou

=laptop,ou

=us,ou

=company,dc

=h,dc

=com

ifexist *.

csv del *.

csv

根據計算機名獲取該計算機的所有IP

1.工程中新增命令列引數 socket程式設計 include winsock2.h pragma comment lib,ws2 32.lib include ws2tcpip.h 注意位置 int main int argc,char argv if argc 2 struct addrinfo...

關於加入域的計算機名稱修改

最近在做加入域的客戶端更名,由於計算機數量眾多且較分散,通過ipsec鏈結的網路並不穩定,改名退域然後加域,太過繁瑣耗時。對於加入域的計算機,預設情況下,只有計算機域管理員級別的使用者才能更改,普通使用者無法更改名稱 這種現象很明顯是許可權導致。當然,普通使用者肯定不能加入域管理員組,一般情況下,普...

CRM匯入組織報例項名稱必須與計算機名稱相同的問題

今天採用p2v拷貝了一台crm資料庫到虛機上,因為要加域必須得把計算機名改了,然後再重新匯入組織的時候報錯了 例項名稱必須與計算機名稱相同 google了下沒有匹配的問題答案,但從乙個帖子裡得到了靈感,明顯的是計算機名的改變導致的問題,通過如下 檢視了定義的本地例項名稱 select servern...